diff mbox series

gdbstub: Fix SEGFAULT in find_cpu_clusters()

Message ID 20230914122558.2379-1-nikita.shubin@maquefel.me (mailing list archive)
State New, archived
Headers show
Series gdbstub: Fix SEGFAULT in find_cpu_clusters() | expand

Commit Message

Nikita Shubin Sept. 14, 2023, 12:25 p.m. UTC
From: Nikita Shubin <n.shubin@yadro.com>

target_xml is a dynamic GString, use NULL to initialize it.

Fixes: 56e534bd11 ("gdbstub: refactor get_feature_xml")

Signed-off-by: Nikita Shubin <n.shubin@yadro.com>
---
Observed with:
build-qemu/qemu-system-riscv64 -M sifive_u -bios none -nographic -s
Segmentation fault
---
 gdbstub/softmmu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Sept. 14, 2023, 12:29 p.m. UTC | #1
Hi Nikita,

On 14/9/23 14:25, Nikita Shubin wrote:
> From: Nikita Shubin <n.shubin@yadro.com>
> 
> target_xml is a dynamic GString, use NULL to initialize it.
> 
> Fixes: 56e534bd11 ("gdbstub: refactor get_feature_xml")
> 
> Signed-off-by: Nikita Shubin <n.shubin@yadro.com>
> ---
> Observed with:
> build-qemu/qemu-system-riscv64 -M sifive_u -bios none -nographic -s
> Segmentation fault
> ---
>   gdbstub/softmmu.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/gdbstub/softmmu.c b/gdbstub/softmmu.c
> index 9f0b8b5497..42645d2220 100644
> --- a/gdbstub/softmmu.c
> +++ b/gdbstub/softmmu.c
> @@ -292,7 +292,7 @@ static int find_cpu_clusters(Object *child, void *opaque)
>           assert(cluster->cluster_id != UINT32_MAX);
>           process->pid = cluster->cluster_id + 1;
>           process->attached = false;
> -        process->target_xml[0] = '\0';
> +        process->target_xml = NULL;

Yes, good catch. Akihiko also posted the same fix 2 days ago:
https://lore.kernel.org/qemu-devel/20230912065811.27796-2-akihiko.odaki@daynix.com/

>   
>           return 0;
>       }
diff mbox series

Patch

diff --git a/gdbstub/softmmu.c b/gdbstub/softmmu.c
index 9f0b8b5497..42645d2220 100644
--- a/gdbstub/softmmu.c
+++ b/gdbstub/softmmu.c
@@ -292,7 +292,7 @@  static int find_cpu_clusters(Object *child, void *opaque)
         assert(cluster->cluster_id != UINT32_MAX);
         process->pid = cluster->cluster_id + 1;
         process->attached = false;
-        process->target_xml[0] = '\0';
+        process->target_xml = NULL;
 
         return 0;
     }