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/08/24 07:46:32 UTC

svn commit: r569258 - in /webservices/rampart/trunk/c/src: omxmlsec/signature.c util/rampart_sec_header_processor.c util/rampart_signature.c

Author: kaushalye
Date: Thu Aug 23 22:46:32 2007
New Revision: 569258

URL: http://svn.apache.org/viewvc?rev=569258&view=rev
Log:
memory leak fixes in signature process

Modified:
    webservices/rampart/trunk/c/src/omxmlsec/signature.c
    webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
    webservices/rampart/trunk/c/src/util/rampart_signature.c

Modified: webservices/rampart/trunk/c/src/omxmlsec/signature.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/signature.c?rev=569258&r1=569257&r2=569258&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/signature.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/signature.c Thu Aug 23 22:46:32 2007
@@ -62,7 +62,11 @@
     /*Free signed_result_buf*/
     oxs_buffer_free(signed_result_buf, env);
     signed_result_buf = NULL;
-
+    
+    /*Free encoded_str*/
+    AXIS2_FREE(env->allocator, encoded_str);
+    encoded_str = NULL;
+    
     return AXIS2_SUCCESS;
 }
 

Modified: webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c?rev=569258&r1=569257&r2=569258&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_sec_header_processor.c Thu Aug 23 22:46:32 2007
@@ -429,8 +429,11 @@
         /*Free*/
         oxs_ctx_free(ctx, env);
         ctx = NULL;
-        
-
+       
+        if(decrypted_sym_key){
+            oxs_key_free(decrypted_sym_key, env);
+            decrypted_sym_key = NULL;
+        }
         AXIS2_LOG_INFO(env->log, "[rampart][shp] Node ID=%s decrypted successfuly", id);
     }
 
@@ -834,6 +837,11 @@
     {
         AXIS2_LOG_INFO(env->log,"[Rampart][shp]Signature Verification failed.");
         return AXIS2_FAILURE;
+    }
+
+    if(sign_ctx){
+        oxs_sign_ctx_free(sign_ctx, env);
+        sign_ctx = NULL;
     }
 
     return status;

Modified: webservices/rampart/trunk/c/src/util/rampart_signature.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/util/rampart_signature.c?rev=569258&r1=569257&r2=569258&view=diff
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_signature.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_signature.c Thu Aug 23 22:46:32 2007
@@ -391,7 +391,7 @@
     oxs_sign_ctx_free(sign_ctx, env);
     /*Now we must build the Key Info element*/
 
-    key_info_node = oxs_token_build_key_info_element(env,sig_node);
+    key_info_node = oxs_token_build_key_info_element(env, sig_node);
     if(!key_info_node)
     {
         AXIS2_LOG_INFO(env->log, "[rampart][rampart_signature] Key info element build failed.");
@@ -402,14 +402,14 @@
         axiom_node_t *str_node = NULL;
         axiom_node_t *reference_node = NULL;
         axis2_char_t *cert_id_ref = NULL;
-        str_node = oxs_token_build_security_token_reference_element(env,key_info_node);
+        str_node = oxs_token_build_security_token_reference_element(env, key_info_node);
         if(!str_node)
         {
             AXIS2_LOG_INFO(env->log, "[rampart][rampart_signature] Security Token element creation failed in Direct reference.");
             return AXIS2_FAILURE;
         }
         cert_id_ref = axutil_stracat(env, "#",cert_id);
-        reference_node = oxs_token_build_reference_element(env,str_node,cert_id_ref,OXS_VALUE_X509V3);
+        reference_node = oxs_token_build_reference_element(env, str_node, cert_id_ref, OXS_VALUE_X509V3);
         if(!reference_node)
         {
             AXIS2_LOG_INFO(env->log, "[rampart][rampart_signature] Security Token element creation failed in Direct reference.");
@@ -418,7 +418,7 @@
     }
     else
     {
-        cert = rampart_sig_get_cert(env,rampart_context);
+        cert = rampart_sig_get_cert(env, rampart_context);
         if(!cert)
         {
             return AXIS2_FAILURE;
@@ -444,9 +444,12 @@
         cert = NULL;
     }
 
+    /*FREE*/
+    if(cert_id){
+        AXIS2_FREE(env->allocator, cert_id);
+        cert_id = NULL;
+    }
 
-    AXIS2_FREE(env->allocator, cert_id);
-    cert_id = NULL;
     return status;
 }