From b5dcf1db0abf3e12c02ff918e7c782e98d225196 Mon Sep 17 00:00:00 2001 From: vemax78 Date: Wed, 18 Sep 2013 22:37:29 +0200 Subject: [PATCH] Fix memory leak into join state --- src/ac/ac_dfa_join.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ac/ac_dfa_join.c b/src/ac/ac_dfa_join.c index f22b500..b6c976e 100644 --- a/src/ac/ac_dfa_join.c +++ b/src/ac/ac_dfa_join.c @@ -17,10 +17,14 @@ static int ac_dfa_state_join_check_authorizejoin(struct ac_session_t* session, s // Check return value xmlResult = xmlNodeGetContent(response->xmlResponseReturn); - if (xmlStrcmp(xmlResult, (const xmlChar *)"true")) { + if (!xmlResult) { + return CAPWAP_RESULTCODE_JOIN_FAILURE_UNKNOWN_SOURCE; + } else if (xmlStrcmp(xmlResult, (const xmlChar *)"true")) { + xmlFree(xmlResult); return CAPWAP_RESULTCODE_JOIN_FAILURE_UNKNOWN_SOURCE; } + xmlFree(xmlResult); return CAPWAP_RESULTCODE_SUCCESS; } @@ -354,6 +358,7 @@ static uint32_t ac_dfa_state_join_create_response(struct ac_session_t* session, length = xmlStrlen(xmlResult); if (!length) { + xmlFree(xmlResult); return CAPWAP_RESULTCODE_FAILURE; }