Skip to content
Snippets Groups Projects
Commit 5dbfdc0b authored by rpcraig's avatar rpcraig
Browse files

Add double free protection to checkseapp.


A double free error occurs when building with non glibc
devices. The hdestroy() function frees all comparison
keys internally in these cases. So avoid an explicit
call to free().

Change-Id: If9c5dc1a969605cd1eeb9218de02a9f8dbbd3ae1
Signed-off-by: default avatarrpcraig <rpcraig@tycho.ncsc.mil>
parent 6766cc9e
Branches
Tags
No related merge requests found
......@@ -428,8 +428,11 @@ static void rule_map_free(rule_map *rm, rule_map_switch s) {
free(m->data);
}
/* hdestroy() frees comparsion keys for non glibc */
#ifdef __GLIBC__
if(s == rule_map_destroy_key && rm->key)
free(rm->key);
#endif
free(rm);
}
......@@ -778,7 +781,10 @@ static void rule_add(rule_map *rm) {
*/
preserved_key = tmp->r->key;
rule_map_free(tmp->r, rule_map_preserve_key);
/* hdestroy() frees comparsion keys for non glibc */
#ifdef __GLIBC__
free(rm->key);
#endif
rm->key = preserved_key;
tmp->r = rm;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment