axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick van Beem (JIRA)" <>
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
             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
    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:
For additional commands, e-mail:

View raw message