summaryrefslogtreecommitdiff
path: root/src/ipcpd
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipcpd')
-rw-r--r--src/ipcpd/normal/frct.c6
-rw-r--r--src/ipcpd/shim-eth-llc/main.c7
2 files changed, 8 insertions, 5 deletions
diff --git a/src/ipcpd/normal/frct.c b/src/ipcpd/normal/frct.c
index 662a47d8..d873beae 100644
--- a/src/ipcpd/normal/frct.c
+++ b/src/ipcpd/normal/frct.c
@@ -234,7 +234,11 @@ int frct_nm1_post_sdu(struct pci * pci,
id = instance->cep_id;
} else {
instance = frct.instances[pci->dst_cep_id];
- assert(instance);
+ if (instance == NULL) {
+ pthread_mutex_unlock(&frct.instances_lock);
+ ipcp_flow_del(sdb);
+ return -1;
+ }
id = pci->dst_cep_id;
instance->state = CONN_ESTABLISHED;
}
diff --git a/src/ipcpd/shim-eth-llc/main.c b/src/ipcpd/shim-eth-llc/main.c
index 34a25ee2..1b6e02c2 100644
--- a/src/ipcpd/shim-eth-llc/main.c
+++ b/src/ipcpd/shim-eth-llc/main.c
@@ -532,12 +532,11 @@ static void * eth_llc_ipcp_mgmt_handler(void * o)
continue;
}
- eth_llc_ipcp_mgmt_frame(frame->buf, frame->len, frame->r_addr);
-
list_del(&frame->next);
- free(frame);
-
pthread_mutex_unlock(&eth_llc_data.mgmt_lock);
+
+ eth_llc_ipcp_mgmt_frame(frame->buf, frame->len, frame->r_addr);
+ free(frame);
}
}