... | ... |
@@ -767,10 +767,16 @@ ole2_walk_property_tree(ole2_header_t * hdr, const char *dir, int32_t prop_index |
767 | 767 |
} |
768 | 768 |
else { |
769 | 769 |
ole2_list_delete(&node_list); |
770 |
+ if (dirname) |
|
771 |
+ free(dirname); |
|
770 | 772 |
return ret; |
771 | 773 |
} |
772 | 774 |
} |
773 | 775 |
} |
776 |
+ if (dirname) { |
|
777 |
+ free(dirname); |
|
778 |
+ dirname = NULL; |
|
779 |
+ } |
|
774 | 780 |
if ((int)(prop_block[idx].prev) != -1) { |
775 | 781 |
if ((ret=ole2_list_push(&node_list, prop_block[idx].prev)) != CL_SUCCESS) { |
776 | 782 |
ole2_list_delete(&node_list); |
... | ... |
@@ -783,8 +789,6 @@ ole2_walk_property_tree(ole2_header_t * hdr, const char *dir, int32_t prop_index |
783 | 783 |
return ret; |
784 | 784 |
} |
785 | 785 |
} |
786 |
- if (dirname) |
|
787 |
- free(dirname); |
|
788 | 786 |
break; |
789 | 787 |
default: |
790 | 788 |
cli_dbgmsg("ERROR: unknown OLE2 entry type: %d\n", prop_block[idx].type); |