also switch to <inttypes.h> --- src/udev/udev-builtin-usb_id.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/src/udev/udev-builtin-usb_id.c b/src/udev/udev-builtin-usb_id.c index ab0d96e..b42b32e 100644 --- a/src/udev/udev-builtin-usb_id.c +++ b/src/udev/udev-builtin-usb_id.c @@ -28,6 +28,7 @@ #include <ctype.h> #include <fcntl.h> #include <errno.h> +#include <inttypes.h> #include "udev.h" @@ -153,15 +154,15 @@ static int dev_if_packed_info(struct udev_device *dev, char *ifs_str, size_t len int pos = 0; unsigned strpos = 0; struct usb_interface_descriptor { - u_int8_t bLength; - u_int8_t bDescriptorType; - u_int8_t bInterfaceNumber; - u_int8_t bAlternateSetting; - u_int8_t bNumEndpoints; - u_int8_t bInterfaceClass; - u_int8_t bInterfaceSubClass; - u_int8_t bInterfaceProtocol; - u_int8_t iInterface; + uint8_t bLength; + uint8_t bDescriptorType; + uint8_t bInterfaceNumber; + uint8_t bAlternateSetting; + uint8_t bNumEndpoints; + uint8_t bInterfaceClass; + uint8_t bInterfaceSubClass; + uint8_t bInterfaceProtocol; + uint8_t iInterface; } __attribute__((packed)); if (asprintf(&filename, "%s/descriptors", udev_device_get_syspath(dev)) < 0) @@ -179,21 +180,20 @@ static int dev_if_packed_info(struct udev_device *dev, char *ifs_str, size_t len ifs_str[0] = '\0'; while (pos < size && strpos+7 < len-2) { - struct usb_interface_descriptor *desc; + char *desc = &buf[pos]; char if_str[8]; - desc = (struct usb_interface_descriptor *) &buf[pos]; - if (desc->bLength < 3) + if (desc[offsetof(struct usb_interface_descriptor, bLength)] < 3) break; - pos += desc->bLength; + pos += desc[offsetof(struct usb_interface_descriptor, bLength)]; - if (desc->bDescriptorType != USB_DT_INTERFACE) + if (desc[offsetof(struct usb_interface_descriptor, bDescriptorType)] != USB_DT_INTERFACE) continue; if (snprintf(if_str, 8, ":%02x%02x%02x", - desc->bInterfaceClass, - desc->bInterfaceSubClass, - desc->bInterfaceProtocol) != 7) + desc[offsetof(struct usb_interface_descriptor, bInterfaceClass)], + desc[offsetof(struct usb_interface_descriptor, bInterfaceSubClass)], + desc[offsetof(struct usb_interface_descriptor, bInterfaceProtocol)]) != 7) continue; if (strstr(ifs_str, if_str) != NULL) -- 2.2.1.209.g41e5f3a _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel