You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Patrick van Beem (JIRA)" <ji...@apache.org> on 2008/12/09 13:26:44 UTC
[jira] Updated: (AXIS2C-1313) Memory leak in axis2_desc_add_child
[ https://issues.apache.org/jira/browse/AXIS2C-1313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Patrick van Beem updated AXIS2C-1313:
-------------------------------------
Attachment: axis2_desc_add_child.diff
> Memory leak in axis2_desc_add_child
> -----------------------------------
>
> Key: AXIS2C-1313
> URL: https://issues.apache.org/jira/browse/AXIS2C-1313
> Project: Axis2-C
> Issue Type: Bug
> Components: core/description
> Environment: Win32/64
> Reporter: Patrick van Beem
> Fix For: Current (Nightly)
>
> Attachments: axis2_desc_add_child.diff
>
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> axis2_desc_add_child() overwrites existing children with the same name. These become orphaned and are leaking memory (they'll never get freed).
> Suggestion: Check for an existing child with the same key ad free it before replacing it with the new child:
> AXIS2_EXTERN axis2_status_t AXIS2_CALL
> axis2_desc_add_child(
> const axis2_desc_t * desc,
> const axutil_env_t * env,
> const axis2_char_t * key,
> const void *child)
> {
> if (desc->children)
> {
> /* Added from here */
> axis2_msg_t* msg = (axis2_msg_t *) axutil_hash_get(desc->children, key, AXIS2_HASH_KEY_STRING);
> if ( msg != NULL )
> {
> axis2_msg_free(msg, env);
> }
> /* Added to here */
> axutil_hash_set(desc->children, key, AXIS2_HASH_KEY_STRING, child);
> return AXIS2_SUCCESS;
> }
> return AXIS2_FAILURE;
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org