diff options
| author | 2014-09-23 17:50:43 +0200 | |
|---|---|---|
| committer | 2014-09-23 17:50:43 +0200 | |
| commit | 063c629baef6028e84838f77fd1401b05e41dc58 (patch) | |
| tree | d70b6a6678c436a6f4226bb08f315a7f751e5998 /src/bplist.c | |
| parent | 5ddbe5fa5ee011df10e288c405302a01e7c1dc71 (diff) | |
| download | libplist-063c629baef6028e84838f77fd1401b05e41dc58.tar.gz libplist-063c629baef6028e84838f77fd1401b05e41dc58.tar.bz2 | |
bplist: Prevent crash in plist_from_bin() when parsing unusually structured binary plist
Diffstat (limited to 'src/bplist.c')
| -rw-r--r-- | src/bplist.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/bplist.c b/src/bplist.c index 91d5578..181c150 100644 --- a/src/bplist.c +++ b/src/bplist.c | |||
| @@ -726,7 +726,7 @@ void plist_from_bin(const char *plist_bin, uint32_t length, plist_t * plist) | |||
| 726 | for (i = 0; i < num_objects; i++) { | 726 | for (i = 0; i < num_objects; i++) { |
| 727 | if (i == root_object) continue; | 727 | if (i == root_object) continue; |
| 728 | node_t* node = (node_t*)nodeslist[i]; | 728 | node_t* node = (node_t*)nodeslist[i]; |
| 729 | if (NODE_IS_ROOT(node)) { | 729 | if (node && NODE_IS_ROOT(node)) { |
| 730 | plist_free(node); | 730 | plist_free(node); |
| 731 | } | 731 | } |
| 732 | } | 732 | } |
