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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]