]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
esl: fix leak-on-error in esl_connect_timeout()
authorMathieu Rene <mrene@avgs.ca>
Thu, 12 Aug 2010 15:58:40 +0000 (11:58 -0400)
committerMathieu Rene <mrene@avgs.ca>
Thu, 12 Aug 2010 16:00:12 +0000 (12:00 -0400)
libs/esl/src/esl.c

index 98f0420179fd1c1b3f94d5cdd35973c936910cf3..48be3f93d1ea009b1cfc6fc1e6c53dc7cd233ef6 100644 (file)
@@ -646,9 +646,10 @@ ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char *
                goto fail;
        }
 
-       memcpy(&handle->sockaddr, result->ai_addr, result->ai_addrlen); 
+       memcpy(&handle->sockaddr, result->ai_addr, sizeof(handle->sockaddr));   
        handle->sockaddr.sin_family = AF_INET;
        handle->sockaddr.sin_port = htons(port);
+       freeaddrinfo(result);
 
        if (timeout) {
 #ifdef WIN32
@@ -711,7 +712,6 @@ ESL_DECLARE(esl_status_t) esl_connect_timeout(esl_handle_t *handle, const char *
                rval = 0;
        }
        
-       freeaddrinfo(result);
        result = NULL;
        
        if (rval) {