axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Seth McCarus (JIRA)" <>
Subject [jira] [Created] (AXIS2C-1664) Memory leak when replacing value of item in hash table
Date Fri, 21 Feb 2014 16:38:19 GMT
Seth McCarus created AXIS2C-1664:

             Summary: Memory leak when replacing value of item in hash table
                 Key: AXIS2C-1664
             Project: Axis2-C
          Issue Type: Bug
          Components: core/transport
    Affects Versions: 1.6.0
         Environment: Windows 7
            Reporter: Seth McCarus
             Fix For: Next Version

axis2_libcurl_send() in axis2c\src\core\transport\http\sender\libcurl\axis2_libcurl.c has
this call:

axis2_transport_in_desc_add_param(transport_in, env, param_expose_http_headers);

this has the effect of replacing the existing "exposeHeaders" parameter in the http transport_in
object with a new parameter of the same name.  axis2_transport_in_desc_add_param() calls axutil_param_container_add_param(),
which calls axutil_hash_set() to replace the param in the hash table.  axutil_hash_set has
this code:

            /* replace entry */
            (*hep)->val = val;
            /* check that the collision rate isn't too high */
            if(ht->count > ht->max)

however the original "val" is not freed, so the existing parameter is leaked.  the proper
fix would be to delete val before replacing it, but I'm not sure how that could be done (in
my limited knowledge of Axis).  my fix was to delete the exposeHeaders param in axis2_transport_in_desc_add_param
by calling axutil_param_container_delete_param before calling axutil_param_container_add_param,
but this fixes only the specific case, and not other cases of hash table leaks.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message