summaryrefslogtreecommitdiff
path: root/toxcore/Messenger.c
diff options
context:
space:
mode:
authoriphydf <iphydf@users.noreply.github.com>2018-02-24 19:07:18 +0000
committeriphydf <iphydf@users.noreply.github.com>2018-02-24 19:07:53 +0000
commit25debce85074f6f0883905fa496829125ddad713 (patch)
tree7604f00b6c1e1345a55efdcd9e632190551f336a /toxcore/Messenger.c
parent4c8ee2a20f6525d74a6b9474310f397d355e2b10 (diff)
Fix memory leak of Logger instance on error paths.
Found using the infer static analyser. https://github.com/facebook/infer DETECTED=infer
Diffstat (limited to 'toxcore/Messenger.c')
-rw-r--r--toxcore/Messenger.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/toxcore/Messenger.c b/toxcore/Messenger.c
index a6bccfdc..935cb64c 100644
--- a/toxcore/Messenger.c
+++ b/toxcore/Messenger.c
@@ -2003,6 +2003,7 @@ Messenger *new_messenger(Messenger_Options *options, unsigned int *error)
2003 2003
2004 if (m->net == nullptr) { 2004 if (m->net == nullptr) {
2005 friendreq_kill(m->fr); 2005 friendreq_kill(m->fr);
2006 logger_kill(m->log);
2006 free(m); 2007 free(m);
2007 2008
2008 if (error && net_err == 1) { 2009 if (error && net_err == 1) {
@@ -2017,6 +2018,7 @@ Messenger *new_messenger(Messenger_Options *options, unsigned int *error)
2017 if (m->dht == nullptr) { 2018 if (m->dht == nullptr) {
2018 kill_networking(m->net); 2019 kill_networking(m->net);
2019 friendreq_kill(m->fr); 2020 friendreq_kill(m->fr);
2021 logger_kill(m->log);
2020 free(m); 2022 free(m);
2021 return nullptr; 2023 return nullptr;
2022 } 2024 }
@@ -2027,6 +2029,7 @@ Messenger *new_messenger(Messenger_Options *options, unsigned int *error)
2027 kill_networking(m->net); 2029 kill_networking(m->net);
2028 kill_DHT(m->dht); 2030 kill_DHT(m->dht);
2029 friendreq_kill(m->fr); 2031 friendreq_kill(m->fr);
2032 logger_kill(m->log);
2030 free(m); 2033 free(m);
2031 return nullptr; 2034 return nullptr;
2032 } 2035 }
@@ -2045,6 +2048,7 @@ Messenger *new_messenger(Messenger_Options *options, unsigned int *error)
2045 kill_DHT(m->dht); 2048 kill_DHT(m->dht);
2046 kill_networking(m->net); 2049 kill_networking(m->net);
2047 friendreq_kill(m->fr); 2050 friendreq_kill(m->fr);
2051 logger_kill(m->log);
2048 free(m); 2052 free(m);
2049 return nullptr; 2053 return nullptr;
2050 } 2054 }
@@ -2062,6 +2066,7 @@ Messenger *new_messenger(Messenger_Options *options, unsigned int *error)
2062 kill_DHT(m->dht); 2066 kill_DHT(m->dht);
2063 kill_networking(m->net); 2067 kill_networking(m->net);
2064 friendreq_kill(m->fr); 2068 friendreq_kill(m->fr);
2069 logger_kill(m->log);
2065 free(m); 2070 free(m);
2066 2071
2067 if (error) { 2072 if (error) {