diff options
author | Pete Batard <pbatard@gmail.com> | 2011-01-23 00:22:07 +0000 |
---|---|---|
committer | Pete Batard <pbatard@gmail.com> | 2011-01-23 00:22:07 +0000 |
commit | 8293cbdc4e577ebcefce21d45112814ef202599e (patch) | |
tree | fb7155ef3f33c5b9e70d28f3701a80dbcc647450 | |
parent | 77815429f2f29b1e180140981040692dca4103e6 (diff) | |
download | libusb-8293cbdc4e577ebcefce21d45112814ef202599e.tar.gz |
fixed hotplug regsiter/unregister with default context
* plus additional parameter validation
-rw-r--r-- | libusb/core.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libusb/core.c b/libusb/core.c index 43632dd..a41f9f1 100644 --- a/libusb/core.c +++ b/libusb/core.c @@ -1884,6 +1884,7 @@ void API_EXPORTED libusb_register_hotplug_listeners( libusb_context *ctx, libusb_hotplug_cb_fn connected_cb, libusb_hotplug_cb_fn disconnected_cb, void *user_data) { + USBI_GET_CONTEXT(ctx); usbi_mutex_lock(&ctx->hotplug_listener_lock); ctx->hotplug_connected_listener = connected_cb; ctx->hotplug_disconnected_listener = disconnected_cb; @@ -1894,6 +1895,7 @@ void API_EXPORTED libusb_register_hotplug_listeners( /* TODO: doc */ void API_EXPORTED libusb_unregister_hotplug_listeners(libusb_context *ctx) { + USBI_GET_CONTEXT(ctx); usbi_mutex_lock(&ctx->hotplug_listener_lock); ctx->hotplug_connected_listener = 0; ctx->hotplug_disconnected_listener = 0; @@ -1904,6 +1906,8 @@ void API_EXPORTED libusb_unregister_hotplug_listeners(libusb_context *ctx) /* TODO: doc */ int API_EXPORTED libusb_get_status(libusb_device *dev) { + if (dev == NULL) + return LIBUSB_ERROR_INVALID_PARAM; return dev->status_online; } @@ -2034,6 +2038,8 @@ int usbi_notify_device_state(struct libusb_device *dev, int new_state) libusb_hotplug_cb_fn disconnected_cb; void* user_data; + if (dev == NULL) + return LIBUSB_ERROR_INVALID_PARAM; usbi_mutex_lock(&dev->ctx->hotplug_listener_lock); connected_cb = dev->ctx->hotplug_connected_listener; disconnected_cb = dev->ctx->hotplug_disconnected_listener; |