Author: kaushalye
Date: Wed Nov 28 00:23:31 2007
New Revision: 598903
URL: http://svn.apache.org/viewvc?rev=598903&view=rev
Log:
MEMORY LEAK FIXES
Modified:
webservices/rampart/trunk/c/samples/callback/pwcb.c
webservices/rampart/trunk/c/samples/client/sec_echo/update_n_run.bat
webservices/rampart/trunk/c/src/omxmlsec/axiom.c
webservices/rampart/trunk/c/src/omxmlsec/buffer.c
webservices/rampart/trunk/c/src/omxmlsec/derivation.c
webservices/rampart/trunk/c/src/omxmlsec/openssl/x509.c
webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c
webservices/rampart/trunk/c/src/omxmlsec/signature.c
webservices/rampart/trunk/c/src/omxmlsec/tokens/token_length.c
webservices/rampart/trunk/c/src/omxmlsec/tokens/token_offset.c
webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c
webservices/rampart/trunk/c/src/util/rampart_context.c
webservices/rampart/trunk/c/src/util/rampart_encryption.c
webservices/rampart/trunk/c/src/util/rampart_handler_util.c
webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c
webservices/rampart/trunk/c/src/util/rampart_username_token.c
webservices/rampart/trunk/c/src/util/rampart_util.c
Modified: webservices/rampart/trunk/c/samples/callback/pwcb.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/callback/pwcb.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/samples/callback/pwcb.c (original)
+++ webservices/rampart/trunk/c/samples/callback/pwcb.c Wed Nov 28 00:23:31 2007
@@ -29,6 +29,8 @@
my_free_function(rampart_callback_t *rcb,
const axutil_env_t *env)
{
+ AXIS2_FREE(env->allocator, rcb->ops);
+ AXIS2_FREE(env->allocator, rcb);
return AXIS2_SUCCESS;
}
@@ -128,7 +130,7 @@
axis2_status_t status = AXIS2_FAILURE;
if (inst)
{
- status = AXIS2_SVC_SKELETON_FREE(inst, env);
+ status = my_free_function(inst, env);
}
return status;
}
Modified: webservices/rampart/trunk/c/samples/client/sec_echo/update_n_run.bat
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/client/sec_echo/update_n_run.bat?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/samples/client/sec_echo/update_n_run.bat
(original)
+++ webservices/rampart/trunk/c/samples/client/sec_echo/update_n_run.bat Wed
Nov 28 00:23:31 2007
@@ -1,12 +1,11 @@
@echo off
rem if your client repository is different, change the value.
-set CLIENT_REPO=%AXIS2C_HOME%\clientrepo
+set CLIENT_REPO=%AXIS2C_HOME%\client_repo
rem INSTALL MODULE to make sure that both server and client have the same
module.
echo "Copying latest module to client_repo"
-xcopy /E /Y /I "%AXIS2C_HOME%\modules\rampart" "%CLIENT_REPO%\modules"
+xcopy /E /Y /I "%AXIS2C_HOME%\modules\rampart" "%CLIENT_REPO%\modules\rampart"
-echo RUN echo.exe http://localhost:9090/axis2/services/echo %CLIENT_REPO%
-"%AXIS2C_HOME%\bin\samples\rampart\client\enc_echo\enc_echo.exe"
http://localhost:9090/axis2/services/echo "%CLIENT_REPO%"
+%AXIS2C_HOME%\bin\samples\rampart\client\sec_echo\echo.exe
http://localhost:9090/axis2/services/sec_echo/echoString %CLIENT_REPO%
@echo on
Modified: webservices/rampart/trunk/c/src/omxmlsec/axiom.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/axiom.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/axiom.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/axiom.c Wed Nov 28 00:23:31 2007
@@ -293,15 +293,14 @@
axutil_qname_free(qname, env);
qname = NULL;
- parent_name = axiom_node_to_string(parent, env);
if (!node)
{
+ parent_name = axiom_node_to_string(parent, env);
oxs_error(env, ERROR_LOCATION, OXS_ERROR_INVALID_DATA,
"Cannot find child %s of %s", local_name, parent_name);
+ AXIS2_FREE(env->allocator, parent_name);
return NULL;
}
- AXIS2_FREE(env->allocator, parent_name);
- parent_name = NULL;
return node;
}
@@ -365,10 +364,14 @@
{
oxs_error(env, ERROR_LOCATION, OXS_ERROR_INVALID_DATA,
"Building node failed");
+ axiom_document_free(doc, env);
return NULL;
}
axiom_stax_builder_free_self(builder, env);
builder = NULL;
+
+ axiom_document_free_self(doc, env);
+ doc = NULL;
/*The stax builder will free the reader.*/
/*axiom_xml_reader_free(reader, env);
Modified: webservices/rampart/trunk/c/src/omxmlsec/buffer.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/buffer.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/buffer.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/buffer.c Wed Nov 28 00:23:31 2007
@@ -61,6 +61,7 @@
{
oxs_error(env, ERROR_LOCATION, OXS_ERROR_DEFAULT,
"oxs_buffer_set_max_size");
+ AXIS2_FREE(env->allocator, buffer);
return NULL;
}
Modified: webservices/rampart/trunk/c/src/omxmlsec/derivation.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/derivation.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/derivation.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/derivation.c Wed Nov 28 00:23:31
2007
@@ -153,6 +153,7 @@
dk_token = oxs_token_build_derived_key_token_element(env, parent, dk_id,
NULL);
str_token = oxs_token_build_security_token_reference_element(env,
dk_token);
ref_token = oxs_token_build_reference_element(env, str_token, uri,
stref_val_type);
+ AXIS2_FREE(env->allocator, uri);
/*Create offset*/
offset = oxs_key_get_offset(derived_key, env);
Modified: webservices/rampart/trunk/c/src/omxmlsec/openssl/x509.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/openssl/x509.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/openssl/x509.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/openssl/x509.c Wed Nov 28 00:23:31
2007
@@ -358,7 +358,8 @@
encoded_str = AXIS2_MALLOC(env->allocator,
axutil_base64_encode_len(_n));
axutil_base64_encode(encoded_str, (char*)md, SHA_DIGEST_LENGTH);
- BIO_printf(out, "%s", encoded_str);
+ BIO_printf(out, "%s", encoded_str);
+ AXIS2_FREE(env->allocator, encoded_str);
}
}else if(OPENSSL_X509_INFO_SIGNATURE == type){
int i = 0;
Modified: webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c Wed Nov 28 00:23:31 2007
@@ -273,6 +273,7 @@
sign_ctx->prv_key = NULL;
sign_ctx->pub_key = NULL;
sign_ctx->operation = OXS_SIGN_OPERATION_NONE;
+ sign_ctx->secret=NULL;
return sign_ctx;
}
Modified: webservices/rampart/trunk/c/src/omxmlsec/signature.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/signature.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/signature.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/signature.c Wed Nov 28 00:23:31
2007
@@ -177,11 +177,14 @@
status = oxs_sig_sign_hmac_sha1(env, sign_ctx, input_buf, output_buf);
signed_val = (axis2_char_t*)oxs_buffer_get_data(output_buf, env);
+ oxs_buffer_free(input_buf, env);
/*Compare the output with the signature. If tally; SUCCESS*/
if(axutil_strcmp(signature, signed_val)){
+ oxs_buffer_free(output_buf, env);
return AXIS2_SUCCESS;
}else{
oxs_error(env, ERROR_LOCATION, OXS_ERROR_SIG_VERIFICATION_FAILED,
"Signature verification failed using HMAC-SHA1");
+ oxs_buffer_free(output_buf, env);
return AXIS2_FAILURE;
}
}
Modified: webservices/rampart/trunk/c/src/omxmlsec/tokens/token_length.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/tokens/token_length.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/tokens/token_length.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/tokens/token_length.c Wed Nov 28
00:23:31 2007
@@ -63,6 +63,7 @@
if (length_val)
{
ret = axiom_element_set_text(length_ele, env, length_val,
length_node);
+ AXIS2_FREE(env->allocator, length_val);
}
return length_node;
Modified: webservices/rampart/trunk/c/src/omxmlsec/tokens/token_offset.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/tokens/token_offset.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/tokens/token_offset.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/tokens/token_offset.c Wed Nov 28
00:23:31 2007
@@ -67,6 +67,7 @@
if (offset_val)
{
ret = axiom_element_set_text(offset_ele, env, offset_val,
offset_node);
+ AXIS2_FREE(env->allocator, offset_val);
}
return offset_node;
Modified: webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/xml_signature.c Wed Nov 28
00:23:31 2007
@@ -146,14 +146,14 @@
id_name = oxs_sign_part_get_id_name(sign_part, env);
if(!id_name)
- id_name = axutil_strdup(env, OXS_ATTR_ID);
+ id_name = OXS_ATTR_ID;
ns = oxs_sign_part_get_sign_namespace(sign_part, env);
if(ns)
ns_uri = axiom_namespace_get_uri(ns, env);
else
- ns_uri = axutil_strdup(env, OXS_WSU_XMLNS);
+ ns_uri = OXS_WSU_XMLNS;
/*Get the reference ID from the node and hence to the ds:Reference node*/
id = oxs_axiom_get_attribute_value_of_node_by_name(env, node, id_name,
@@ -303,7 +303,7 @@
}
/*At this point we have a complete <SignedInfo> node. Now we need to sign
it*/
status = oxs_xml_sig_sign_signed_info(env, signature_node,
signed_info_node, sign_ctx);
- sig_id = axiom_node_to_string(parent, env);
+ /*sig_id = axiom_node_to_string(parent, env);*/
*sig_node = signature_node;
return status;
}
@@ -393,6 +393,8 @@
if(!axutil_strcmp(attr_val, ref_id2))
{
attr =
attribute;
+ if (env)
+
AXIS2_FREE(env->allocator, hi);
break;
}
}
Modified: webservices/rampart/trunk/c/src/util/rampart_context.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_context.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_context.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_context.c Wed Nov 28 00:23:31
2007
@@ -213,16 +213,17 @@
{
axutil_param_t *param = NULL;
param = rampart_context->password_callback_module->param;
+ /*User specific free logic*/
+ RAMPART_CALLBACK_FREE(rampart_context->password_callback_module ,
env);
+ rampart_context->password_callback_module = NULL;
if(param){
/*We actually free the dll_desc, which is set as the value of
the axutil parameter.*/
- axutil_dll_desc_t *dll_desc_l = NULL;
+ axutil_param_free(param, env);
+ /*axutil_dll_desc_t *dll_desc_l = NULL;
dll_desc_l = axutil_param_get_value(param, env);
status = axutil_class_loader_delete_dll(env, dll_desc_l);
- dll_desc_l = NULL;
+ dll_desc_l = NULL;*/
}
- /*User specific free logic*/
- /*RAMPART_CALLBACK_FREE(rampart_context->password_callback_module
, env);*/
- rampart_context->password_callback_module = NULL;
}
if(rampart_context->authn_provider)
@@ -248,6 +249,18 @@
}
/*TODO Free derived key list*/
+ if (rampart_context->dk_list)
+ {
+ int i;
+ for(i=0 ; i <
axutil_array_list_size(rampart_context->dk_list, env); i++)
+ {
+ oxs_key_t* dk = NULL;
+ dk =
(oxs_key_t*)axutil_array_list_get(rampart_context->dk_list, env, i);
+ oxs_key_free(dk, env);
+ }
+ axutil_array_list_free(rampart_context->dk_list, env);
+ rampart_context->dk_list = NULL;
+ }
if(rampart_context->certificate){
oxs_x509_cert_free(rampart_context->certificate, env);
Modified: webservices/rampart/trunk/c/src/util/rampart_encryption.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_encryption.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_encryption.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_encryption.c Wed Nov 28
00:23:31 2007
@@ -445,6 +445,7 @@
axis2_char_t *enc_sym_algo = NULL;
oxs_key_t *session_key = NULL;
axis2_bool_t server_side = AXIS2_FALSE;
+ axis2_bool_t free_session_key = AXIS2_FALSE;
rp_property_type_t token_type;
rp_property_t *token = NULL;
int i = 0;
@@ -478,6 +479,8 @@
{
AXIS2_LOG_INFO(env->log,
"[rampart][rampart_encryption] No parts specified
or specified parts can't be found for encryprion.");
+ axutil_array_list_free(nodes_to_encrypt, env);
+ nodes_to_encrypt = NULL;
return AXIS2_SUCCESS;
}
}
@@ -491,6 +494,8 @@
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[rampart][rampart_encryption]Encrypting
signature, Sigature Not found");
+ axutil_array_list_free(nodes_to_encrypt, env);
+ nodes_to_encrypt = NULL;
return AXIS2_FAILURE;
}
axutil_array_list_add(nodes_to_encrypt, env, sig_node);
@@ -504,6 +509,8 @@
{
AXIS2_LOG_INFO(env->log,
"[rampart][rampart_encryption]Encryption Token is not
specified");
+ axutil_array_list_free(nodes_to_encrypt, env);
+ nodes_to_encrypt = NULL;
return AXIS2_SUCCESS;
}
token_type = rp_property_get_type(token, env);
@@ -512,12 +519,16 @@
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[rampart][rampart_encryption]Specified token type not
supported.");
+ axutil_array_list_free(nodes_to_encrypt, env);
+ nodes_to_encrypt = NULL;
return AXIS2_FAILURE;
}
if(rampart_context_check_is_derived_keys(env,token))
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[rampart][rampart_encryption]We still do not support
derived keys");
+ axutil_array_list_free(nodes_to_encrypt, env);
+ nodes_to_encrypt = NULL;
return AXIS2_FAILURE;
}
@@ -538,20 +549,28 @@
session_key = oxs_key_create(env);
status = oxs_key_for_algo(session_key, env, enc_sym_algo);
rampart_context_set_session_key(rampart_context, env, session_key);
+ free_session_key = AXIS2_TRUE;
}
if(AXIS2_FAILURE == status)
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[rampart][rampart_encryption] Cannot generate the key
for the algorithm %s, ", enc_sym_algo);
+ axutil_array_list_free(nodes_to_encrypt, env);
+ nodes_to_encrypt = NULL;
+ if (free_session_key)
+ {
+ oxs_key_free(session_key, env);
+ session_key = NULL;
+ }
return AXIS2_FAILURE;
}
/*Key will be duplicated inside the function. So no worries freeing it
here*/
- if(rampart_context_is_encrypt_before_sign(rampart_context, env)
+ /*if(rampart_context_is_encrypt_before_sign(rampart_context, env)
&& signature_protection)
{
rampart_context_set_session_key(rampart_context, env, session_key);
- }
+ }*/
/*Create a list to store EncDataIds. This will be used in building the
ReferenceList*/
@@ -574,6 +593,13 @@
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[rampart][rampart_encryption] Cannot get the node
from the list to encrypt");
+ axutil_array_list_free(nodes_to_encrypt, env);
+ nodes_to_encrypt = NULL;
+ if (free_session_key)
+ {
+ oxs_key_free(session_key, env);
+ session_key = NULL;
+ }
return AXIS2_FAILURE;
}
/*Create the encryption context for OMXMLSEC*/
@@ -597,6 +623,13 @@
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[rampart][rampart_encryption] Cannot encrypt
the node " );
+ axutil_array_list_free(nodes_to_encrypt, env);
+ nodes_to_encrypt = NULL;
+ if (free_session_key)
+ {
+ oxs_key_free(session_key, env);
+ session_key = NULL;
+ }
return AXIS2_FAILURE;
}
}
@@ -605,12 +638,18 @@
}/*Eof For loop*/
- /*TODO free list*/
+ /*free nodes_to_encrypt list*/
axutil_array_list_free(nodes_to_encrypt, env);
nodes_to_encrypt = NULL;
/*We need to encrypt the session key.*/
status = rampart_enc_encrypt_session_key(env, session_key, msg_ctx,
rampart_context, soap_envelope, sec_node, id_list);
+ if (free_session_key)
+ {
+ oxs_key_free(session_key, env);
+ session_key = NULL;
+ }
+
if(AXIS2_FAILURE == status){
return AXIS2_FAILURE;
}
@@ -632,11 +671,6 @@
id_list = NULL;
}
-
-
- /*oxs_key_free(session_key, env);
- session_key = NULL;*/
-
return AXIS2_SUCCESS;
}
@@ -892,6 +926,9 @@
asym_key_id = oxs_axiom_get_attribute_value_of_node_by_name(env,
encrypted_key_node, OXS_ATTR_ID, NULL);
oxs_derivation_build_derived_key_token(env, derived_key, sec_node,
asym_key_id, OXS_WSS_11_VALUE_TYPE_ENCRYPTED_KEY);
+ /*now we can free the derived key*/
+ oxs_key_free(derived_key, env);
+ derived_key = NULL;
}
node_to_move = oxs_axiom_get_node_by_local_name(
Modified: webservices/rampart/trunk/c/src/util/rampart_handler_util.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_handler_util.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_handler_util.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_handler_util.c Wed Nov 28
00:23:31 2007
@@ -174,6 +174,7 @@
axis2_msg_ctx_set_fault_soap_envelope(msg_ctx, env, envelope);
/*free sub codes*/
+ axutil_array_list_free(sub_codes, env);
return;
}
Modified: webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_sec_header_builder.c Wed Nov
28 00:23:31 2007
@@ -354,6 +354,7 @@
sec_ns_obj = axiom_namespace_create(env, RAMPART_WSSE_XMLNS,
RAMPART_WSSE);
+ axiom_namespace_increment_ref(sec_ns_obj, env);
sec_header_block = axiom_soap_header_add_header_block(soap_header,
env, RAMPART_SECURITY, sec_ns_obj);
@@ -361,6 +362,7 @@
if(!sec_header_block)
{
AXIS2_LOG_INFO(env->log, "[rampart][shb] Security header block is
NULL");
+ axiom_namespace_free(sec_ns_obj, env);
return AXIS2_SUCCESS;
}
@@ -387,6 +389,7 @@
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[rampart][shb] Timestamp Token build failed.
ERROR");
+ axiom_namespace_free(sec_ns_obj, env);
return AXIS2_FAILURE;
}
}
@@ -411,6 +414,7 @@
{
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
"[rampart][shb] UsernmaeToken build failed.
ERROR");
+ axiom_namespace_free(sec_ns_obj, env);
return AXIS2_FAILURE;
}
}
@@ -434,6 +438,7 @@
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][shb] Asymmetric
Binding. ");
status = rampart_shb_do_asymmetric_binding(env, msg_ctx,
rampart_context, soap_envelope, sec_node, sec_ns_obj);
+ axiom_namespace_free(sec_ns_obj, env);
if(AXIS2_FAILURE == status){
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][shb] Asymmetric
Binding failed");
return AXIS2_FAILURE;
@@ -449,6 +454,7 @@
/*Do Symmetric_binding specific things*/
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][shb] Symmetric
Binding. ");
status = rampart_shb_do_symmetric_binding(env, msg_ctx,
rampart_context, soap_envelope, sec_node, sec_ns_obj);
+ axiom_namespace_free(sec_ns_obj, env);
if(AXIS2_FAILURE == status){
AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "[rampart][shb] Symmetric
Binding failed");
return AXIS2_FAILURE;
@@ -459,8 +465,10 @@
else if((rampart_context_get_binding_type(rampart_context,env)) ==
RP_PROPERTY_TRANSPORT_BINDING)
{
AXIS2_LOG_INFO(env->log, "[rampart][shb] Using transport binding");
+ axiom_namespace_free(sec_ns_obj, env);
return AXIS2_SUCCESS;
}else{
+ axiom_namespace_free(sec_ns_obj, env);
return AXIS2_FAILURE;
}
}
Modified: webservices/rampart/trunk/c/src/util/rampart_username_token.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_username_token.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_username_token.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_username_token.c Wed Nov 28
00:23:31 2007
@@ -111,7 +111,6 @@
}
axiom_namespace_increment_ref(sec_ns_obj, env);
- axiom_namespace_increment_ref(sec_ns_obj, env);
ut_ele = axiom_element_create(env, sec_node,
RAMPART_SECURITY_USERNAMETOKEN,
sec_ns_obj,
@@ -150,7 +149,6 @@
digest_val = rampart_crypto_sha1(env, nonce_val, created_val,
password);
axiom_namespace_increment_ref(sec_ns_obj, env);
-
pw_ele = axiom_element_create(env, ut_node,
RAMPART_SECURITY_USERNAMETOKEN_PASSWORD, sec_ns_obj, &pw_node);
if (pw_ele)
@@ -165,6 +163,7 @@
}
+ axiom_namespace_increment_ref(sec_ns_obj, env);
nonce_ele = axiom_element_create(env, ut_node,
RAMPART_SECURITY_USERNAMETOKEN_NONCE, sec_ns_obj, &nonce_node);
if (nonce_ele)
@@ -197,6 +196,7 @@
else /*default is passwordText*/
{
+ axiom_namespace_increment_ref(sec_ns_obj, env);
pw_ele = axiom_element_create(env, ut_node,
RAMPART_SECURITY_USERNAMETOKEN_PASSWORD, sec_ns_obj, &pw_node);
if (pw_ele)
Modified: webservices/rampart/trunk/c/src/util/rampart_util.c
URL:
http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_util.c?rev=598903&r1=598902&r2=598903&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_util.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_util.c Wed Nov 28 00:23:31 2007
@@ -158,7 +158,7 @@
AXIS2_LOG_INFO(env->log, "[rampart][rampart_util] Unable to identify
the callback module %s. ERROR", callback_module_name);
if (param)
{
- AXIS2_FREE(env->allocator, param);
+ axutil_param_free(param, env);
param = NULL;
}
return AXIS2_FAILURE;