From 0496edd88632b0bf83a78bbf5f665569f5b71e1a Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Tue, 12 Aug 2008 22:01:18 +0200 Subject: Don't leak "version" in get_iPhone --- src/iphone.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/iphone.c') diff --git a/src/iphone.c b/src/iphone.c index 2bdb5c8..ecbb751 100644 --- a/src/iphone.c +++ b/src/iphone.c @@ -36,7 +36,6 @@ extern int debug; */ iPhone *get_iPhone() { iPhone *phone = (iPhone*)malloc(sizeof(iPhone)); - usbmux_version_header *version = version_header(); struct usb_bus *bus, *busses; struct usb_device *dev; @@ -79,6 +78,7 @@ iPhone *get_iPhone() { // Send the version command to the phone int bytes = 0; + usbmux_version_header *version = version_header(); bytes = usb_bulk_write(phone->device, BULKOUT, (char*)version, sizeof(*version), 800); if (bytes < 20 && debug) { fprintf(stderr, "get_iPhone(): libusb did NOT send enough!\n"); @@ -93,6 +93,7 @@ iPhone *get_iPhone() { // Check for bad response if (bytes < 20) { + free(version); free_iPhone(phone); free(version); if (debug) fprintf(stderr, "get_iPhone(): Invalid version message -- header too short.\n"); @@ -114,7 +115,6 @@ iPhone *get_iPhone() { if (debug) fprintf(stderr, "get_iPhone(): Received a bad header/invalid version number."); return NULL; } - // If it got to this point it's gotta be bad if (debug) fprintf(stderr, "get_iPhone(): Unknown error.\n"); -- cgit v1.1-32-gdbae