summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/NotificationProxy.c1
-rw-r--r--src/iphone.c18
2 files changed, 11 insertions, 8 deletions
diff --git a/src/NotificationProxy.c b/src/NotificationProxy.c
index 726852e..bf837bf 100644
--- a/src/NotificationProxy.c
+++ b/src/NotificationProxy.c
@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <string.h>
#include <stdio.h>
#include <plist/plist.h>
#include "NotificationProxy.h"
diff --git a/src/iphone.c b/src/iphone.c
index 6eb56f7..5076b48 100644
--- a/src/iphone.c
+++ b/src/iphone.c
@@ -95,7 +95,7 @@ static void iphone_config_usb_device(iphone_device_t phone)
* descriptor on return.
* @return IPHONE_E_SUCCESS if ok, otherwise an error code.
*/
-static iphone_error_t iphone_get_specific_device(unsigned int bus_n, int dev_n, iphone_device_t * device)
+iphone_error_t iphone_get_specific_device(unsigned int bus_n, int dev_n, iphone_device_t * device)
{
struct usb_bus *bus, *busses;
struct usb_device *dev;
@@ -230,13 +230,15 @@ iphone_error_t iphone_free_device(iphone_device_t device)
unsigned char buf[512];
// read final package(s)
- do {
- bytes = usb_bulk_read(device->device, BULKIN, (void *) &buf, 512, 800);
- if (bytes > 0) {
- log_debug_msg("iphone_free_device: final read returned\n");
- log_debug_buffer(buf, bytes);
- }
- } while (bytes > 0);
+ if (device->device != NULL) {
+ do {
+ bytes = usb_bulk_read(device->device, BULKIN, (void *) &buf, 512, 800);
+ if (bytes > 0) {
+ log_debug_msg("iphone_free_device: final read returned\n");
+ log_debug_buffer(buf, bytes);
+ }
+ } while (bytes > 0);
+ }
if (device->buffer) {
free(device->buffer);