diff options
| author | 2013-06-30 20:52:51 -0400 | |
|---|---|---|
| committer | 2013-06-30 21:28:58 -0400 | |
| commit | 8521693b1199e1e5274efed00c908afc8a128516 (patch) | |
| tree | ab35fa23365c1bcb66744d6af6a4d3db5faa45dd /tools | |
| parent | 8184f352eadf3cdfdb66db66dfe4b890525063b7 (diff) | |
| download | libimobiledevice-8521693b1199e1e5274efed00c908afc8a128516.tar.gz libimobiledevice-8521693b1199e1e5274efed00c908afc8a128516.tar.bz2 | |
Fixed multiple occurrences of memory leaks when empty plist dicts are passed to mobilebackup2_send_status_response().
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/idevicebackup2.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c index 45ff489..41591eb 100644 --- a/tools/idevicebackup2.c +++ b/tools/idevicebackup2.c | |||
| @@ -1006,7 +1006,10 @@ static int mb2_handle_receive_files(mobilebackup2_client_t mobilebackup2, plist_ | |||
| 1006 | free(dname); | 1006 | free(dname); |
| 1007 | 1007 | ||
| 1008 | // TODO error handling?! | 1008 | // TODO error handling?! |
| 1009 | mobilebackup2_send_status_response(mobilebackup2, 0, NULL, plist_new_dict()); | 1009 | plist_t empty_plist = plist_new_dict(); |
| 1010 | mobilebackup2_send_status_response(mobilebackup2, 0, NULL, empty_plist); | ||
| 1011 | plist_free(empty_plist); | ||
| 1012 | |||
| 1010 | return file_count; | 1013 | return file_count; |
| 1011 | } | 1014 | } |
| 1012 | 1015 | ||
| @@ -1997,7 +2000,9 @@ checkpoint: | |||
| 1997 | errdesc = "Could not create dict iterator"; | 2000 | errdesc = "Could not create dict iterator"; |
| 1998 | printf("Could not create dict iterator\n"); | 2001 | printf("Could not create dict iterator\n"); |
| 1999 | } | 2002 | } |
| 2000 | err = mobilebackup2_send_status_response(mobilebackup2, errcode, errdesc, plist_new_dict()); | 2003 | plist_t empty_dict = plist_new_dict(); |
| 2004 | err = mobilebackup2_send_status_response(mobilebackup2, errcode, errdesc, empty_dict); | ||
| 2005 | plist_free(empty_dict); | ||
| 2001 | if (err != MOBILEBACKUP2_E_SUCCESS) { | 2006 | if (err != MOBILEBACKUP2_E_SUCCESS) { |
| 2002 | printf("Could not send status response, error %d\n", err); | 2007 | printf("Could not send status response, error %d\n", err); |
| 2003 | } | 2008 | } |
| @@ -2049,7 +2054,9 @@ checkpoint: | |||
| 2049 | } | 2054 | } |
| 2050 | } | 2055 | } |
| 2051 | } | 2056 | } |
| 2052 | err = mobilebackup2_send_status_response(mobilebackup2, errcode, errdesc, plist_new_dict()); | 2057 | plist_t empty_dict = plist_new_dict(); |
| 2058 | err = mobilebackup2_send_status_response(mobilebackup2, errcode, errdesc, empty_dict); | ||
| 2059 | plist_free(empty_dict); | ||
| 2053 | if (err != MOBILEBACKUP2_E_SUCCESS) { | 2060 | if (err != MOBILEBACKUP2_E_SUCCESS) { |
| 2054 | printf("Could not send status response, error %d\n", err); | 2061 | printf("Could not send status response, error %d\n", err); |
| 2055 | } | 2062 | } |
| @@ -2082,8 +2089,9 @@ checkpoint: | |||
| 2082 | free(src); | 2089 | free(src); |
| 2083 | free(dst); | 2090 | free(dst); |
| 2084 | } | 2091 | } |
| 2085 | 2092 | plist_t empty_dict = plist_new_dict(); | |
| 2086 | err = mobilebackup2_send_status_response(mobilebackup2, errcode, errdesc, plist_new_dict()); | 2093 | err = mobilebackup2_send_status_response(mobilebackup2, errcode, errdesc, empty_dict); |
| 2094 | plist_free(empty_dict); | ||
| 2087 | if (err != MOBILEBACKUP2_E_SUCCESS) { | 2095 | if (err != MOBILEBACKUP2_E_SUCCESS) { |
| 2088 | printf("Could not send status response, error %d\n", err); | 2096 | printf("Could not send status response, error %d\n", err); |
| 2089 | } | 2097 | } |
