OLD | NEW |
(Empty) | |
| 1 Index: src/libmtp.c |
| 2 =================================================================== |
| 3 --- src/libmtp.c (revision 178434) |
| 4 +++ src/libmtp.c (working copy) |
| 5 @@ -1778,6 +1778,8 @@ |
| 6 char *minorstr = strndup(element + i + 1, strlen(element) - i - 1); |
| 7 major = atoi(majorstr); |
| 8 minor = atoi(minorstr); |
| 9 + free(majorstr); |
| 10 + free(minorstr); |
| 11 extension = malloc(sizeof(LIBMTP_device_extension_t)); |
| 12 extension->name = name; |
| 13 extension->major = major; |
| 14 Index: src/libusb1-glue.c |
| 15 =================================================================== |
| 16 --- src/libusb1-glue.c (revision 178434) |
| 17 +++ src/libusb1-glue.c (working copy) |
| 18 @@ -541,6 +541,7 @@ |
| 19 } |
| 20 } |
| 21 } |
| 22 + libusb_free_device_list (devs, 0); |
| 23 |
| 24 /* If nothing was found we end up here. */ |
| 25 if(*mtp_device_list == NULL) { |
| 26 @@ -969,8 +970,10 @@ |
| 27 } |
| 28 } |
| 29 int getfunc_ret = handler->getfunc(NULL, handler->priv,towrite,bytes,&towri
te); |
| 30 - if (getfunc_ret != PTP_RC_OK) |
| 31 + if (getfunc_ret != PTP_RC_OK) { |
| 32 + free(bytes); |
| 33 return getfunc_ret; |
| 34 + } |
| 35 while (usbwritten < towrite) { |
| 36 ret = USB_BULK_WRITE(ptp_usb->handle, |
| 37 ptp_usb->outep, |
| 38 @@ -982,6 +985,7 @@ |
| 39 LIBMTP_USB_DEBUG("USB OUT==>\n"); |
| 40 |
| 41 if (ret != LIBUSB_SUCCESS) { |
| 42 + free(bytes); |
| 43 return PTP_ERROR_IO; |
| 44 } |
| 45 LIBMTP_USB_DATA(bytes+usbwritten, xwritten, 16); |
| 46 @@ -1004,6 +1008,7 @@ |
| 47 ptp_usb->current_transfer_total
, |
| 48 ptp_usb->current_transfer_callb
ack_data); |
| 49 if (ret != 0) { |
| 50 + free(bytes); |
| 51 return PTP_ERROR_CANCEL; |
| 52 } |
| 53 } |
| 54 @@ -2036,6 +2041,7 @@ |
| 55 /* Attempt to initialize this device */ |
| 56 if (init_ptp_usb(params, ptp_usb, ldevice) < 0) { |
| 57 LIBMTP_ERROR("LIBMTP PANIC: Unable to initialize device\n"); |
| 58 + libusb_free_device_list (devs, 0); |
| 59 return LIBMTP_ERROR_CONNECTING; |
| 60 } |
| 61 |
| 62 @@ -2051,12 +2057,14 @@ |
| 63 |
| 64 if(init_ptp_usb(params, ptp_usb, ldevice) <0) { |
| 65 LIBMTP_ERROR("LIBMTP PANIC: Could not init USB on second attempt\n"); |
| 66 + libusb_free_device_list (devs, 0); |
| 67 return LIBMTP_ERROR_CONNECTING; |
| 68 } |
| 69 |
| 70 /* Device has been reset, try again */ |
| 71 if ((ret = ptp_opensession(params, 1)) == PTP_ERROR_IO) { |
| 72 LIBMTP_ERROR("LIBMTP PANIC: failed to open session on second attempt\n"); |
| 73 + libusb_free_device_list (devs, 0); |
| 74 return LIBMTP_ERROR_CONNECTING; |
| 75 } |
| 76 } |
| 77 @@ -2073,11 +2081,13 @@ |
| 78 "(Return code %d)\n Try to reset the device.\n", |
| 79 ret); |
| 80 libusb_release_interface(ptp_usb->handle, ptp_usb->interface); |
| 81 + libusb_free_device_list (devs, 0); |
| 82 return LIBMTP_ERROR_CONNECTING; |
| 83 } |
| 84 |
| 85 /* OK configured properly */ |
| 86 *usbinfo = (void *) ptp_usb; |
| 87 + libusb_free_device_list (devs, 0); |
| 88 return LIBMTP_ERROR_NONE; |
| 89 } |
| 90 |
OLD | NEW |