* [Qemu-devel] [PATCH] hw: intel_iommu: initialize 'name' in vtd_find_add_as
@ 2019-08-01 16:28 Li Qiang
2019-08-02 10:51 ` Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: Li Qiang @ 2019-08-01 16:28 UTC (permalink / raw)
To: mst, pbonzini; +Cc: Li Qiang, liq3ea, qemu-devel
The 'name' variable in vtd_find_add_as function is not initialized
now, so when in gdb, we will got following output:
(gdb) p name
$1 = "vtd-00.0\000\000\000\000\000\000\000\000\060\330\377\377\377\177\000\000\001\000\000\000\000\000\000\000p\330\377\377\377\177\000\000\353\362\372VUU\000\000p\330\377\377\377\177\000\000 \000\000\060b\000\000\220\021\000\000\360a\000\000\200\"\002\000\020a\000\000 \000\000\060b\000\000\200\332\377\377\377\177\000\000\240\330\377\377\377\177\000\000<\364\372VUU\000\000\000\000\000\000\000\000\000\000 \000\000\060b\000"
After this patch, it is more clear:
(gdb) p name
$1 = "vtd-00.0", '\000' <repeats 119 times>
Signed-off-by: Li Qiang <liq3ea@163.com>
---
hw/i386/intel_iommu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index de86f53b4e..e379c2a512 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -3286,7 +3286,7 @@ VTDAddressSpace *vtd_find_add_as(IntelIOMMUState *s, PCIBus *bus, int devfn)
uintptr_t key = (uintptr_t)bus;
VTDBus *vtd_bus = g_hash_table_lookup(s->vtd_as_by_busptr, &key);
VTDAddressSpace *vtd_dev_as;
- char name[128];
+ char name[128] = {};
if (!vtd_bus) {
uintptr_t *new_key = g_malloc(sizeof(*new_key));
--
2.17.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] hw: intel_iommu: initialize 'name' in vtd_find_add_as
2019-08-01 16:28 [Qemu-devel] [PATCH] hw: intel_iommu: initialize 'name' in vtd_find_add_as Li Qiang
@ 2019-08-02 10:51 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2019-08-02 10:51 UTC (permalink / raw)
To: Li Qiang, mst; +Cc: liq3ea, qemu-devel
On 01/08/19 18:28, Li Qiang wrote:
> The 'name' variable in vtd_find_add_as function is not initialized
> now, so when in gdb, we will got following output:
>
> (gdb) p name
> $1 = "vtd-00.0\000\000\000\000\000\000\000\000\060\330\377\377\377\177\000\000\001\000\000\000\000\000\000\000p\330\377\377\377\177\000\000\353\362\372VUU\000\000p\330\377\377\377\177\000\000 \000\000\060b\000\000\220\021\000\000\360a\000\000\200\"\002\000\020a\000\000 \000\000\060b\000\000\200\332\377\377\377\177\000\000\240\330\377\377\377\177\000\000<\364\372VUU\000\000\000\000\000\000\000\000\000\000 \000\000\060b\000"
>
> After this patch, it is more clear:
>
> (gdb) p name
> $1 = "vtd-00.0", '\000' <repeats 119 times>
>
> Signed-off-by: Li Qiang <liq3ea@163.com>
There are hundreds of other occurrences of this same phenomenon. It's
not a bug, it's just how the debugger chooses to print character arrays.
Paolo
> ---
> hw/i386/intel_iommu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> index de86f53b4e..e379c2a512 100644
> --- a/hw/i386/intel_iommu.c
> +++ b/hw/i386/intel_iommu.c
> @@ -3286,7 +3286,7 @@ VTDAddressSpace *vtd_find_add_as(IntelIOMMUState *s, PCIBus *bus, int devfn)
> uintptr_t key = (uintptr_t)bus;
> VTDBus *vtd_bus = g_hash_table_lookup(s->vtd_as_by_busptr, &key);
> VTDAddressSpace *vtd_dev_as;
> - char name[128];
> + char name[128] = {};
>
> if (!vtd_bus) {
> uintptr_t *new_key = g_malloc(sizeof(*new_key));
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-08-02 10:51 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-01 16:28 [Qemu-devel] [PATCH] hw: intel_iommu: initialize 'name' in vtd_find_add_as Li Qiang
2019-08-02 10:51 ` Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).