summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/fa.c
diff options
context:
space:
mode:
authorSander Vrijders <sander@ouroboros.rocks>2019-06-21 19:09:14 +0200
committerDimitri Staessens <dimitri@ouroboros.rocks>2019-06-21 19:46:40 +0200
commitc9232acef855b51d1bc199a68c03c0695ac11192 (patch)
treebd2827458e531a9bbb319724bdce40c2c2a9484d /src/ipcpd/normal/fa.c
parentdc6be97bccd86cfbd64586a5fd9faefb673b70a6 (diff)
downloadouroboros-c9232acef855b51d1bc199a68c03c0695ac11192.tar.gz
ouroboros-c9232acef855b51d1bc199a68c03c0695ac11192.zip
ipcpd: Fix use after free and uninitalized value
This fixes a use after free in an error condition, and makes sure that pid is set in the flow_set early on, so flow_set_destroy won't create a prefix with an uninitialized pid in case of an error in shm_flow_set_create. Signed-off-by: Sander Vrijders <sander@ouroboros.rocks> Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks>
Diffstat (limited to 'src/ipcpd/normal/fa.c')
-rw-r--r--src/ipcpd/normal/fa.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ipcpd/normal/fa.c b/src/ipcpd/normal/fa.c
index 76942143..fbcbc6fa 100644
--- a/src/ipcpd/normal/fa.c
+++ b/src/ipcpd/normal/fa.c
@@ -166,8 +166,8 @@ static void * fa_handle_packet(void * o)
buf = malloc(sizeof(*msg) + ipcp_dir_hash_len());
if (buf == NULL) {
log_err("Failed to allocate memory.");
- free(cmd);
ipcp_sdb_release(cmd->sdb);
+ free(cmd);
continue;
}