[libvirt] [PATCH] udev: Don't let strtoul parse USB busnum and devnum as octal
Dave Allan
dallan at redhat.com
Tue Feb 2 01:36:49 UTC 2010
On 02/01/2010 06:10 PM, Matthias Bolte wrote:
> udevGetUintProperty was called with base set to 0 for busnum and devnum.
> With base 0 strtoul parses the number as octal if it start with a 0. But
> busnum and devnum are decimal and udev returns them padded with leading
> zeros. So strtoul parses them as octal. This works for certain decimal
> values like 001-007, but fails for values like 008.
This is a good change, but I thought it was already fixed a couple of
weeks ago. You're sure they're returned decimal and not hex? ACK
assuming that's the case.
> Change udevProcessUSBDevice to use base 10 for busnum and devnum.
> ---
> src/node_device/node_device_udev.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
> index 734f3f7..0c0f29a 100644
> --- a/src/node_device/node_device_udev.c
> +++ b/src/node_device/node_device_udev.c
> @@ -500,14 +500,14 @@ static int udevProcessUSBDevice(struct udev_device *device,
> if (udevGetUintProperty(device,
> "BUSNUM",
> &data->usb_dev.bus,
> - 0) == PROPERTY_ERROR) {
> + 10) == PROPERTY_ERROR) {
> goto out;
> }
>
> if (udevGetUintProperty(device,
> "DEVNUM",
> &data->usb_dev.device,
> - 0) == PROPERTY_ERROR) {
> + 10) == PROPERTY_ERROR) {
> goto out;
> }
>
More information about the libvir-list
mailing list