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;
 }