fix warnings in linux_get_device_address
authorhjelmn <Nathan Hjelm hjelmn@cs.unm.edu>
Mon, 29 Jul 2013 16:11:33 +0000 (10:11 -0600)
committerhjelmn <Nathan Hjelm hjelmn@cs.unm.edu>
Tue, 30 Jul 2013 15:10:48 +0000 (09:10 -0600)
Warnings:

os/linux_usbfs.c: In function 'linux_get_device_address':
os/linux_usbfs.c:620: warning: comparison is always false due to limited range of data type
os/linux_usbfs.c:624: warning: comparison is always false due to limited range of data type
os/linux_usbfs.c:628: warning: comparison is always false due to limited range of data type
os/linux_usbfs.c:628: warning: comparison is always false due to limited range of data type

libusb/os/linux_usbfs.c
libusb/version_nano.h

index 09288af..9912d65 100644 (file)
@@ -1,3 +1,4 @@
+/* -*- Mode: C; c-basic-offset:8 ; indent-tabs-mode:t -*- */
 /*
  * Linux usbfs backend for libusbx
  * Copyright © 2007-2009 Daniel Drake <dsd@gentoo.org>
@@ -596,6 +597,8 @@ int linux_get_device_address (struct libusb_context *ctx, int detached,
        uint8_t *busnum, uint8_t *devaddr,const char *dev_node,
        const char *sys_name)
 {
+       int sysfs_attr;
+
        usbi_dbg("getting address for device: %s detached: %d", sys_name, detached);
        /* can't use sysfs to read the bus and device number if the
         * device has been detached */
@@ -616,17 +619,22 @@ int linux_get_device_address (struct libusb_context *ctx, int detached,
 
        usbi_dbg("scan %s", sys_name);
 
-       *busnum = __read_sysfs_attr(ctx, sys_name, "busnum");
-       if (0 > *busnum)
-               return *busnum;
+       sysfs_attr = __read_sysfs_attr(ctx, sys_name, "busnum");
+       if (0 > sysfs_attr)
+               return sysfs_attr;
+       if (sysfs_attr > 255)
+               return LIBUSB_ERROR_INVALID_PARAM;
+       *busnum = (uint8_t) sysfs_attr;
 
-       *devaddr = __read_sysfs_attr(ctx, sys_name, "devnum");
-       if (0 > *devaddr)
-               return *devaddr;
+       sysfs_attr = __read_sysfs_attr(ctx, sys_name, "devnum");
+       if (0 > sysfs_attr)
+               return sysfs_attr;
+       if (sysfs_attr > 255)
+               return LIBUSB_ERROR_INVALID_PARAM;
+
+       *devaddr = (uint8_t) sysfs_attr;
 
        usbi_dbg("bus=%d dev=%d", *busnum, *devaddr);
-       if (*busnum > 255 || *devaddr > 255)
-               return LIBUSB_ERROR_INVALID_PARAM;
 
        return LIBUSB_SUCCESS;
 }
index d3ce940..fc3efff 100644 (file)
@@ -1 +1 @@
-#define LIBUSB_NANO 10779
+#define LIBUSB_NANO 10780