axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick van Beem (JIRA)" <j...@apache.org>
Subject [jira] Created: (AXIS2C-1313) Memory leak in axis2_desc_add_child
Date Tue, 09 Dec 2008 12:26:44 GMT
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

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


Mime
View raw message