summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Batard <pbatard@gmail.com>2011-01-23 00:22:07 +0000
committerPete Batard <pbatard@gmail.com>2011-01-23 00:22:07 +0000
commit8293cbdc4e577ebcefce21d45112814ef202599e (patch)
treefb7155ef3f33c5b9e70d28f3701a80dbcc647450
parent77815429f2f29b1e180140981040692dca4103e6 (diff)
downloadlibusb-8293cbdc4e577ebcefce21d45112814ef202599e.tar.gz
fixed hotplug regsiter/unregister with default context
* plus additional parameter validation
-rw-r--r--libusb/core.c6
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;