src/util/virpci.c | 2 ++ 1 file changed, 2 insertions(+)
The referenced commit removed trimming newline resulting in errors like:
Unusual value in /sys/bus/pci//devices/0000:00:17.0/class: 0x010601
It's a perfectly valid class, it's just the newline that virStrToLong_ui
didn't like (as it wasn't parsed and endptr is given NULL).
Restore stripping newline, but do so a bit nicer than hardcoded offset.
Fixes: 58b3a78aff "virPCIDeviceReadClass: Don't write beyond end of buffer from virFileReadAll"
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
---
src/util/virpci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 34fc70e261..66500132c9 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -488,6 +488,8 @@ virPCIDeviceReadClass(virPCIDevice *dev, uint16_t *device_class)
if (virFileReadAll(path, 9, &id_str) < 0)
return -1;
+ virStringTrimOptionalNewline(id_str);
+
if (virStrToLong_ui(id_str, NULL, 16, &value) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unusual value in %1$s/devices/%2$s/class: %3$s"),
--
2.54.0
On 10/16/26 02:04, Marek Marczykowski-Górecki wrote: > The referenced commit removed trimming newline resulting in errors like: > > Unusual value in /sys/bus/pci//devices/0000:00:17.0/class: 0x010601 > > It's a perfectly valid class, it's just the newline that virStrToLong_ui > didn't like (as it wasn't parsed and endptr is given NULL). > > Restore stripping newline, but do so a bit nicer than hardcoded offset. > > Fixes: 58b3a78aff "virPCIDeviceReadClass: Don't write beyond end of buffer from virFileReadAll" > Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> > --- > src/util/virpci.c | 2 ++ > 1 file changed, 2 insertions(+) > Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Michal
© 2016 - 2026 Red Hat, Inc.