[
https://issues.apache.org/jira/browse/AXIS2C-1664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14000310#comment-14000310
]
Giorgio Zoppi commented on AXIS2C-1664:
---------------------------------------
Please assign this issue to me. Let's simplify.
> Memory leak when replacing value of item in hash table
> ------------------------------------------------------
>
> Key: AXIS2C-1664
> URL: https://issues.apache.org/jira/browse/AXIS2C-1664
> Project: Axis2-C
> Issue Type: Bug
> Components: core/transport
> Affects Versions: 1.7.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)
> {
> axutil_hash_expand_array(ht);
> }
> 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 was observed in v1.7.0.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]