hw/smbios/smbios.c | 1 + 1 file changed, 1 insertion(+)
Without it, it seems the data gets garbage at the end of the string.
Signed-off-by: Valentin David <valentin.david@canonical.com>
---
hw/smbios/smbios.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c
index 02a09eb9cd..7522e9a172 100644
--- a/hw/smbios/smbios.c
+++ b/hw/smbios/smbios.c
@@ -1283,6 +1283,7 @@ static int save_opt_one(void *opaque,
return -1;
}
g_byte_array_append(data, (guint8 *)buf, ret);
+ g_byte_array_append(data, (guint8 *)"\0", 1);
}
qemu_close(fd);
--
2.48.1
On Wed, Mar 26, 2025 at 04:52:54PM +0100, Valentin David wrote: > Without it, it seems the data gets garbage at the end of the string. > > Signed-off-by: Valentin David <valentin.david@canonical.com> > --- > hw/smbios/smbios.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/smbios/smbios.c b/hw/smbios/smbios.c > index 02a09eb9cd..7522e9a172 100644 > --- a/hw/smbios/smbios.c > +++ b/hw/smbios/smbios.c > @@ -1283,6 +1283,7 @@ static int save_opt_one(void *opaque, > return -1; > } > g_byte_array_append(data, (guint8 *)buf, ret); > + g_byte_array_append(data, (guint8 *)"\0", 1); That is inside the loop body, so it is appending an extra '\0' after every 'read'. The fix for this issue is posted here https://lists.nongnu.org/archive/html/qemu-devel/2025-03/msg05826.html > } > > qemu_close(fd); > -- > 2.48.1 > > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
© 2016 - 2025 Red Hat, Inc.