summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2014-03-21 02:06:51 +0100
committerGravatar Martin Szulecki2014-03-21 02:06:51 +0100
commit80d3d2cfa9ae1c6cc8b0e004373e8bc8c368dd56 (patch)
treea51e972463000df88f4f48cf04f707ecc95b6a09
parentb5fa8eea8b41950af18db373d15115e0c900d3d4 (diff)
downloadlibimobiledevice-80d3d2cfa9ae1c6cc8b0e004373e8bc8c368dd56.tar.gz
libimobiledevice-80d3d2cfa9ae1c6cc8b0e004373e8bc8c368dd56.tar.bz2
userpref: Fix invalid plist_free() which caused pair process to fail
-rw-r--r--common/userpref.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/common/userpref.c b/common/userpref.c
index 65f1988..3399036 100644
--- a/common/userpref.c
+++ b/common/userpref.c
@@ -1006,6 +1006,7 @@ userpref_error_t pair_record_get_item_as_key_data(plist_t pair_record, const cha
1006 if (!pair_record || !value) 1006 if (!pair_record || !value)
1007 return USERPREF_E_INVALID_ARG; 1007 return USERPREF_E_INVALID_ARG;
1008 1008
1009 userpref_error_t ret = USERPREF_E_SUCCESS;
1009 char* buffer = NULL; 1010 char* buffer = NULL;
1010 uint64_t length = 0; 1011 uint64_t length = 0;
1011 1012
@@ -1018,12 +1019,14 @@ userpref_error_t pair_record_get_item_as_key_data(plist_t pair_record, const cha
1018 value->size = length; 1019 value->size = length;
1019 free(buffer); 1020 free(buffer);
1020 buffer = NULL; 1021 buffer = NULL;
1022 } else {
1023 ret = USERPREF_E_INVALID_CONF;
1021 } 1024 }
1022 1025
1023 if (node) 1026 if (buffer)
1024 plist_free(node); 1027 free(buffer);
1025 1028
1026 return USERPREF_E_SUCCESS; 1029 return ret;
1027} 1030}
1028 1031
1029userpref_error_t pair_record_set_item_from_key_data(plist_t pair_record, const char* name, key_data_t *value) 1032userpref_error_t pair_record_set_item_from_key_data(plist_t pair_record, const char* name, key_data_t *value)