diff options
| -rw-r--r-- | src/xplist.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/xplist.c b/src/xplist.c index 5f63a94..f5ddddd 100644 --- a/src/xplist.c +++ b/src/xplist.c | |||
| @@ -1178,6 +1178,11 @@ static void node_from_xml(parse_ctx ctx, plist_t *plist, uint32_t depth) | |||
| 1178 | plist_t uid = plist_dict_get_item(subnode, "CF$UID"); | 1178 | plist_t uid = plist_dict_get_item(subnode, "CF$UID"); |
| 1179 | if (uid) { | 1179 | if (uid) { |
| 1180 | uint64_t val = 0; | 1180 | uint64_t val = 0; |
| 1181 | if (plist_get_node_type(uid) != PLIST_UINT) { | ||
| 1182 | ctx->err++; | ||
| 1183 | PLIST_XML_ERR("Invalid node type for CF$UID dict entry (must be PLIST_UINT)\n"); | ||
| 1184 | goto err_out; | ||
| 1185 | } | ||
| 1181 | plist_get_uint_val(uid, &val); | 1186 | plist_get_uint_val(uid, &val); |
| 1182 | plist_dict_remove_item(subnode, "CF$UID"); | 1187 | plist_dict_remove_item(subnode, "CF$UID"); |
| 1183 | plist_data_t nodedata = plist_get_data((node_t*)subnode); | 1188 | plist_data_t nodedata = plist_get_data((node_t*)subnode); |
