You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by ka...@apache.org on 2007/09/04 10:19:31 UTC
svn commit: r572572 - in /webservices/rampart/trunk/c/src/omxmlsec:
openssl/rsa.c xml_encryption.c
Author: kaushalye
Date: Tue Sep 4 01:19:31 2007
New Revision: 572572
URL: http://svn.apache.org/viewvc?rev=572572&view=rev
Log:
Memory leak fixed in the decryption process
Modified:
webservices/rampart/trunk/c/src/omxmlsec/openssl/rsa.c
webservices/rampart/trunk/c/src/omxmlsec/xml_encryption.c
Modified: webservices/rampart/trunk/c/src/omxmlsec/openssl/rsa.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/openssl/rsa.c?rev=572572&r1=572571&r2=572572&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/openssl/rsa.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/openssl/rsa.c Tue Sep 4 01:19:31 2007
@@ -140,6 +140,8 @@
}
decrypted = AXIS2_MALLOC(env->allocator, RSA_size(key->pkey.rsa));
+
+ /*Here the ret is the length of decrypted data*/
ret = RSA_private_decrypt(RSA_size(key->pkey.rsa),
oxs_buffer_get_data(in, env),
decrypted,
@@ -153,6 +155,11 @@
return (-1);
}
oxs_buffer_populate(out, env, decrypted, ret);
+
+ /*Free*/
+ AXIS2_FREE(env->allocator, decrypted);
+ decrypted = NULL;
+
return ret;
}
Modified: webservices/rampart/trunk/c/src/omxmlsec/xml_encryption.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/xml_encryption.c?rev=572572&r1=572571&r2=572572&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/xml_encryption.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/xml_encryption.c Tue Sep 4 01:19:31 2007
@@ -337,9 +337,13 @@
parent_of_enc_node = axiom_node_get_parent(enc_type_node, env);
axiom_node_add_child(parent_of_enc_node, env, deserialized_node);
axiom_node_detach(enc_type_node, env);
- /*Free result buf*/
+
+ /*Free */
oxs_buffer_free(result_buf, env);
result_buf = NULL;
+
+ AXIS2_FREE(env->allocator, decrypted_data);
+ decrypted_data = NULL;
return AXIS2_SUCCESS;
}