Re: [PATCH v4] Bluetooth: btusb: Fix memory leak in play_deferred

From: kbuild test robot
Date: Wed Jul 19 2017 - 15:21:51 EST


Hi Jeffy,

[auto build test WARNING on bluetooth-next/master]
[also build test WARNING on v4.13-rc1 next-20170719]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Jeffy-Chen/Bluetooth-btusb-Fix-memory-leak-in-play_deferred/20170719-044201
base: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master
config: i386-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

drivers/bluetooth/btusb.c: In function 'btusb_resume':
>> drivers/bluetooth/btusb.c:3288:3: warning: 'err' may be used uninitialized in this function [-Wmaybe-uninitialized]
BT_ERR("%s urb %p submission failed (%d)",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/bluetooth/btusb.c:3266:6: note: 'err' was declared here
int err;
^~~

vim +/err +3288 drivers/bluetooth/btusb.c

3262
3263 static void play_deferred(struct btusb_data *data)
3264 {
3265 struct urb *urb;
3266 int err;
3267
3268 while ((urb = usb_get_from_anchor(&data->deferred))) {
3269 usb_anchor_urb(urb, &data->tx_anchor);
3270
3271 err = usb_submit_urb(urb, GFP_ATOMIC);
3272 if (err < 0) {
3273 if (err != -EPERM && err != -ENODEV)
3274 BT_ERR("%s urb %p submission failed (%d)",
3275 data->hdev->name, urb, -err);
3276 kfree(urb->setup_packet);
3277 usb_unanchor_urb(urb);
3278 usb_free_urb(urb);
3279 break;
3280 }
3281
3282 data->tx_in_flight++;
3283 usb_free_urb(urb);
3284 }
3285
3286 /* Cleanup the rest deferred urbs. */
3287 while ((urb = usb_get_from_anchor(&data->deferred))) {
> 3288 BT_ERR("%s urb %p submission failed (%d)",
3289 data->hdev->name, urb, -err);
3290 kfree(urb->setup_packet);
3291 usb_free_urb(urb);
3292 }
3293 }
3294

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip