summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Christophe Fergeau2008-08-12 21:47:01 +0200
committerGravatar Jonathan Beck2008-08-21 18:47:04 +0200
commita885ca9dbe929781144f3f1a00e565dfa31f68c6 (patch)
tree6ccec69d5dfc45d341ca85d24a7ad80d2f558652
parente5e5f21cae73230eaaa70273bd4400ff6b86641a (diff)
downloadlibplist-a885ca9dbe929781144f3f1a00e565dfa31f68c6.tar.gz
libplist-a885ca9dbe929781144f3f1a00e565dfa31f68c6.tar.bz2
Don't leak memory in error cases in ifuse_init
-rw-r--r--src/ifuse.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/ifuse.c b/src/ifuse.c
index 7ae4827..2a33405 100644
--- a/src/ifuse.c
+++ b/src/ifuse.c
@@ -197,12 +197,15 @@ void *ifuse_init(struct fuse_conn_info *conn) {
}
if (!lockdownd_init(phone, &control)) {
+ free_iPhone(phone);
fprintf(stderr, "Something went wrong in the lockdownd client.\n");
return NULL;
}
port = lockdownd_start_service(control, "com.apple.afc");
if (!port) {
+ lockdownd_close(control);
+ free_iphone(phone);
fprintf(stderr, "Something went wrong when starting AFC.");
return NULL;
}