Module: kamailio Branch: master Commit: 1128df71dcba1cd97898c2970e7cd3221256adb1 URL: https://github.com/kamailio/kamailio/commit/1128df71dcba1cd97898c2970e7cd322...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2023-06-13T09:45:13+02:00
cdp: safety checks on error cleanup for diameter_peer_init_real()
---
Modified: src/modules/cdp/diameter_peer.c
---
Diff: https://github.com/kamailio/kamailio/commit/1128df71dcba1cd97898c2970e7cd322... Patch: https://github.com/kamailio/kamailio/commit/1128df71dcba1cd97898c2970e7cd322...
---
diff --git a/src/modules/cdp/diameter_peer.c b/src/modules/cdp/diameter_peer.c index bea1d1f0717..294d8d640ea 100644 --- a/src/modules/cdp/diameter_peer.c +++ b/src/modules/cdp/diameter_peer.c @@ -151,7 +151,6 @@ int diameter_peer_init_real() if(!cdp_sessions_init(config->sessions_hash_size)) goto error;
- /* add callback for messages - used to implement the API */ cb_add(api_callback, 0);
@@ -162,16 +161,20 @@ int diameter_peer_init_real() shm_free(shutdownx); if(config) free_dp_config(config); - i = pid_list->head; - while(i) { - j = i->next; - shm_free(i); - i = j; + if(pid_list) { + i = pid_list->head; + while(i) { + j = i->next; + shm_free(i); + i = j; + } + shm_free(pid_list); + } + if(pid_list_lock) { + lock_get(pid_list_lock); + lock_destroy(pid_list_lock); + lock_dealloc((void *)pid_list_lock); } - shm_free(pid_list); - lock_get(pid_list_lock); - lock_destroy(pid_list_lock); - lock_dealloc((void *)pid_list_lock); return 0; }