Release 1.0.17

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
configure.ac: uclinux is also linux

When the tuple contains uclinux rather than just linux (nommu flat
targets) configure will fail with an unknown operating system.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
openbsd: Fix usbi_sanitize_device error handling

If usbi_sanitize_device fails we need to continue from the beginning of
the loop, rather then going on with the device we've just free-ed.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
openbsd: Fix a memleak

discovered_devs_append takes a reference to the past in dev, so we must
release our own reference.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Make usbi_get_device_by_session_id return a ref to the found device

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Fix darwin compilation broken by the usbi_get_device_by_session_id changes

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
examples: Fix a memory leak

Close the image file before exiting the function

Problem detected by the Coverity tool
CID 1042550 (#1 of 15): Resource leak (RESOURCE_LEAK)7. leaked_storage:
Variable "image" going out of scope leaks the storage it points to.
examples: Fix a memory leak

Close the image file before exiting the function

Problem detected by the Coverity tool
CID 1042549 (#2 of 3): Resource leak (RESOURCE_LEAK)9. leaked_storage:
Variable "image" going out of scope leaks the storage it points to.
linux: take newline into account for sysfs_get_active_config

bConfigurationValue in sysfs can be 3 digits (1byte value) + 1 new line
= 4 bytes

In it's current form a bConfigurationValue of 128 will be detected as
not null terminated due to the trailing newline, simple fix is to just
extend the array size to 5
examples: check the value returned by libusb_init()

Problem detected by the Coverity tool
CID 1042538 (#1 of 1): Unchecked return value (CHECKED_RETURN)4.
check_return: Calling function "libusb_init(libusb_context **)" without
checking return value (as is done elsewhere 11 out of 12 times).
examples: check the value returned by libusb_handle_events()

Problem detected by the Coverity tool
CID 1042539 (#1 of 1): Unchecked return value (CHECKED_RETURN)8.
check_return: Calling function "libusb_handle_events(libusb_context *)"
without checking return value (as is done elsewhere 6 out of 7 times).
examples: check value returned by libusb_bulk_transfer()

Problem detected by the Coverity tool
CID 1042540 (#1 of 1): Unchecked return value (CHECKED_RETURN)1.
check_return: Calling function "libusb_bulk_transfer(struct
libusb_device_handle *, unsigned char, unsigned char *, int, int *,
unsigned int)" without checking return value (as is done elsewhere 4 out
of 5 times).
tests: set output_file to a valid value

If fdopen(3) fails then ctx->output_file is NULL and should not be used
in cleanup_test_output() called next.

Problem detected by the Coverity tool
CID 1042543 (#1 of 1): Dereference after null check (FORWARD_NULL)9.
var_deref_model: Passing "ctx" to function
"cleanup_test_output(libusbx_testlib_ctx *)", which dereferences null
"ctx->output_file".
examples: fix warning

ezusb.c: In function 'ezusb_load_ram':
ezusb.c:719:6: warning: 'ret' may be used uninitialized in this function
[-Wmaybe-uninitialized]
  int ret;
examples: add an option to force a device request for WCID descriptors

* Add option 'w' to force the use of a Device Request rather than an
  Interface Request when querying the WCID OS Extended Properties descriptor.
* This is due to a WinUSB limitation where all Interface Requests have the
  wIndex set to the interface number.
* This assumes that the WCID firmware answers both Device and Interface requests
  equally.
Windows: Avoid potential mismatch in transfer error reporting

The default case in windows_transfer_callback() calls windows_error_str(0)
which will convert the error code returned by GetLastError() to a string.
This currently works because windows_transfer_callback() is either called
with io_result set to NO_ERROR or io_result set to GetLastError().

If windows_transfer_callback() will ever be called with io_result set
differently then the default case might report the wrong error message.

Call windows_error_str(io_result) instead to avoid this.

Closes #151
Merge remote-tracking branch 'upstream/master'
Enabled a few more Xcode warnings

(The codebase does not trigger these warnings)
Made LIBUSB_DEPRECATED_FOR work with clang

clang identifies itself as gcc 4.2, even though it supports many
gcc extensions newer than that, including the deprecated attribute.