diff -r fab0b8a61dcb -r 45e2bb06c88d librazor/merger.c --- a/librazor/merger.c Wed Aug 20 18:57:52 2014 +0100 +++ b/librazor/merger.c Fri Apr 15 16:57:55 2016 +0100 @@ -318,8 +318,14 @@ set2 = merger->source2.set; map1 = merger->source1.file_map; map2 = merger->source2.file_map; - pool1 = set1->file_string_pool.data; - pool2 = set2->file_string_pool.data; + if (set1->file_string_pool.size) + pool1 = set1->file_string_pool.data; + else + pool1 = NULL; + if (set2->file_string_pool.size) + pool2 = set2->file_string_pool.data; + else + pool2 = NULL; root1 = (struct razor_entry *) set1->files.data; root2 = (struct razor_entry *) set2->files.data; @@ -349,9 +355,9 @@ continue; } - if (!e1) + if (!e1 || !pool1) cmp = 1; - else if (!e2) + else if (!e2 || !pool2) cmp = -1; else { cmp = strcmp (&pool1[e1->name], @@ -631,5 +637,9 @@ hashtable_release(&merger->table); hashtable_release(&merger->file_table); hashtable_release(&merger->details_table); + free(merger->source1.property_map); + free(merger->source1.file_map); + free(merger->source2.property_map); + free(merger->source2.file_map); free(merger); }