summaryrefslogtreecommitdiffstats
path: root/src/plist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plist.c')
-rw-r--r--src/plist.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/plist.c b/src/plist.c
index 5453176..61b2913 100644
--- a/src/plist.c
+++ b/src/plist.c
@@ -183,18 +183,22 @@ PLIST_API int plist_is_binary(const char *plist_data, uint32_t length)
183} 183}
184 184
185 185
186PLIST_API void plist_from_memory(const char *plist_data, uint32_t length, plist_t * plist) 186PLIST_API plist_err_t plist_from_memory(const char *plist_data, uint32_t length, plist_t * plist)
187{ 187{
188 if (length < 8) { 188 int res = -1;
189 *plist = NULL; 189 if (!plist) {
190 return; 190 return PLIST_ERR_INVALID_ARG;
191 }
192 *plist = NULL;
193 if (!plist_data || length < 8) {
194 return PLIST_ERR_INVALID_ARG;
191 } 195 }
192
193 if (plist_is_binary(plist_data, length)) { 196 if (plist_is_binary(plist_data, length)) {
194 plist_from_bin(plist_data, length, plist); 197 res = plist_from_bin(plist_data, length, plist);
195 } else { 198 } else {
196 plist_from_xml(plist_data, length, plist); 199 res = plist_from_xml(plist_data, length, plist);
197 } 200 }
201 return res;
198} 202}
199 203
200plist_t plist_new_node(plist_data_t data) 204plist_t plist_new_node(plist_data_t data)