[ https://issues.apache.org/jira/browse/AXIS2C-1664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Seth McCarus updated AXIS2C-1664: --------------------------------- Affects Version/s: (was: 1.6.0) 1.7.0 > 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.1.5#6160) --------------------------------------------------------------------- To unsubscribe, e-mail: c-dev-unsubscr...@axis.apache.org For additional commands, e-mail: c-dev-h...@axis.apache.org