diff options
author | Karl Palsson <karlp@tweak.net.au> | 2018-07-26 01:11:25 +0300 |
---|---|---|
committer | Karl Palsson <karlp@tweak.net.au> | 2018-08-17 03:15:01 +0300 |
commit | f4bbe7c5bb39086a748810e83220e4e5a336bf50 (patch) | |
tree | ab8974ad03fc6825f82075e976ca4ae12525dbaf /lib/usb | |
parent | c55ec70f496d61c8731ccc08e15af500ab61beee (diff) |
usb: prevent registering duplicate config callbacks
Originally discussed at https://github.com/libopencm3/libopencm3/pull/722
Diffstat (limited to 'lib/usb')
-rw-r--r-- | lib/usb/usb_standard.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/usb/usb_standard.c b/lib/usb/usb_standard.c index fbe89d05..4ce7a8b1 100644 --- a/lib/usb/usb_standard.c +++ b/lib/usb/usb_standard.c @@ -46,6 +46,9 @@ int usbd_register_set_config_callback(usbd_device *usbd_dev, for (i = 0; i < MAX_USER_SET_CONFIG_CALLBACK; i++) { if (usbd_dev->user_callback_set_config[i]) { + if (usbd_dev->user_callback_set_config[i] == callback) { + return 0; + } continue; } |