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/09 15:53:45 UTC

svn commit: r564206 - in /webservices/rampart/trunk/c: ./ samples/client/sec_echo/ samples/secpolicy/ src/omxmlsec/ src/omxmlsec/openssl/ src/util/

Author: kaushalye
Date: Thu Aug  9 06:53:44 2007
New Revision: 564206

URL: http://svn.apache.org/viewvc?view=rev&rev=564206
Log:
Memory leak fixes

Modified:
    webservices/rampart/trunk/c/configure.ac
    webservices/rampart/trunk/c/samples/client/sec_echo/echo.c
    webservices/rampart/trunk/c/samples/secpolicy/deploy.sh
    webservices/rampart/trunk/c/src/omxmlsec/axiom.c
    webservices/rampart/trunk/c/src/omxmlsec/openssl/pem.c
    webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c
    webservices/rampart/trunk/c/src/omxmlsec/x509_cert.c
    webservices/rampart/trunk/c/src/util/rampart_encryption.c
    webservices/rampart/trunk/c/src/util/rampart_signature.c

Modified: webservices/rampart/trunk/c/configure.ac
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/configure.ac?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/configure.ac (original)
+++ webservices/rampart/trunk/c/configure.ac Thu Aug  9 06:53:44 2007
@@ -47,7 +47,7 @@
 dnl Checks for libraries.
 AC_CHECK_LIB(dl, dlopen)
 
-CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
+CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE -g"
 if test "$GCC" = "yes"; then
     CFLAGS="$CFLAGS -ansi -Wall -Werror -Wno-implicit-function-declaration"
     #CFLAGS="$CFLAGS -ansi -Wall -Wno-implicit-function-declaration"

Modified: webservices/rampart/trunk/c/samples/client/sec_echo/echo.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/client/sec_echo/echo.c?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/samples/client/sec_echo/echo.c (original)
+++ webservices/rampart/trunk/c/samples/client/sec_echo/echo.c Thu Aug  9 06:53:44 2007
@@ -34,6 +34,7 @@
     const axis2_char_t *address = NULL;
     const axis2_char_t *client_home = NULL;
     axis2_char_t *file_name = NULL;
+    axis2_char_t *file_name2 = NULL;
     axis2_endpoint_ref_t* endpoint_ref = NULL;
     axis2_options_t *options = NULL;
     axis2_svc_client_t* svc_client = NULL;
@@ -94,18 +95,23 @@
     if(client_home)
     {
         file_name = axutil_stracat(env, client_home, AXIS2_PATH_SEP_STR);
-        file_name = axutil_stracat(env, file_name, "policy.xml" );
+        file_name2 = axutil_stracat(env, file_name, "policy.xml" );
+        AXIS2_FREE(env->allocator, file_name);
+        file_name = NULL;        
     }else{
         printf("Client Home not Specified\n");
         printf("echo client invoke FAILED!\n");
         return 0;
     }
     /*Create the policy, from file*/   
-    policy = neethi_util_create_policy_from_file(env, file_name);
-
+    policy = neethi_util_create_policy_from_file(env, file_name2);
+    if(file_name2){
+        AXIS2_FREE(env->allocator, file_name2);
+        file_name2 = NULL;
+    }
     if(!policy)
     {
-        printf("\nPolicy creation failed from the file. %s\n", file_name);
+        printf("\nPolicy creation failed from the file. %s\n", file_name2);
         /*printf("echo client invoke FAILED!\n");
         return 0;*/
     }

Modified: webservices/rampart/trunk/c/samples/secpolicy/deploy.sh
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/samples/secpolicy/deploy.sh?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/samples/secpolicy/deploy.sh (original)
+++ webservices/rampart/trunk/c/samples/secpolicy/deploy.sh Thu Aug  9 06:53:44 2007
@@ -9,6 +9,9 @@
 CLIENT_REPO="$INST_DIR/client_repo/"
 SERVICE_HOME="$INST_DIR/services/sec_echo"
 
+echo "Copying server's axis2.xml to " $AXIS2C_HOME
+cp ../server/sec_echo/server_axis2.xml $AXIS2C_HOME/axis2.xml
+
 #COPYING THE RELEVENT POLICY FILES TO CLIENT AND SERVER
 
 

Modified: webservices/rampart/trunk/c/src/omxmlsec/axiom.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/axiom.c?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/axiom.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/axiom.c Thu Aug  9 06:53:44 2007
@@ -273,6 +273,8 @@
                   "Cannot find child %s of %s", local_name, parent_name);
         return NULL;
     }
+    AXIS2_FREE(env->allocator, parent_name);
+    parent_name = NULL;
     return node;
 }
 

Modified: webservices/rampart/trunk/c/src/omxmlsec/openssl/pem.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/openssl/pem.c?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/openssl/pem.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/openssl/pem.c Thu Aug  9 06:53:44 2007
@@ -100,7 +100,7 @@
     }else{/*Type unknown*/
         /*Try to read the prv key first*/
         *pkey = PEM_read_bio_PrivateKey(bio, NULL, 0 , password);
-        if (!*pkey)
+        if(!*pkey)
         {
             /*If prv key is not found then read the public key*/
             ret  = BIO_reset(bio);

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?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/sign_ctx.c Thu Aug  9 06:53:44 2007
@@ -276,10 +276,28 @@
         sign_ctx->sig_val = NULL;
     }
 
-    sign_ctx->sign_parts = NULL;
-    sign_ctx->certificate = NULL;
-    sign_ctx->prv_key = NULL;
-    sign_ctx->pub_key = NULL;
+    if(sign_ctx->prv_key)
+    {
+        openssl_pkey_free(sign_ctx->prv_key, env);
+        sign_ctx->prv_key = NULL;
+    }
+    
+    if(sign_ctx->pub_key)
+    {
+        openssl_pkey_free(sign_ctx->pub_key, env);
+        sign_ctx->pub_key = NULL;
+    }
+
+    if(sign_ctx->sign_parts)
+    {    
+        axutil_array_list_free(sign_ctx->sign_parts, env);
+        sign_ctx->sign_parts = NULL;
+    }
+    
+    if(sign_ctx->certificate){
+        oxs_x509_cert_free(sign_ctx->certificate, env);
+        sign_ctx->certificate = NULL;
+    }
     sign_ctx->operation = OXS_SIGN_OPERATION_NONE;
 
     AXIS2_FREE(env->allocator,  sign_ctx);

Modified: webservices/rampart/trunk/c/src/omxmlsec/x509_cert.c
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/c/src/omxmlsec/x509_cert.c?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/src/omxmlsec/x509_cert.c (original)
+++ webservices/rampart/trunk/c/src/omxmlsec/x509_cert.c Thu Aug  9 06:53:44 2007
@@ -97,7 +97,7 @@
         AXIS2_FREE(env->allocator, x509_cert->data );
         x509_cert->data =NULL;
     }
-
+    /*Free public key???*/
     return AXIS2_SUCCESS;
 }
 

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?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_encryption.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_encryption.c Thu Aug  9 06:53:44 2007
@@ -278,6 +278,7 @@
     if(AXIS2_FAILURE == status){
         return AXIS2_FAILURE;
     }
+    oxs_asym_ctx_free(asym_ctx, env);
     return AXIS2_SUCCESS;
 }
 
@@ -408,7 +409,10 @@
 
     enc_data_node = oxs_token_build_encrypted_data_element(env, sec_node, OXS_TYPE_ENC_ELEMENT, id );
     enc_status = oxs_xml_enc_encrypt_node(env, enc_ctx, node_to_enc, &enc_data_node);
-
+    
+    /*FREE*/
+    oxs_ctx_free(enc_ctx, env);
+   
     if(enc_status != AXIS2_SUCCESS)
     {
         return AXIS2_FAILURE;
@@ -440,7 +444,9 @@
         AXIS2_LOG_INFO(env->log, "[rampart][rampart_encryption]Encrypting signature,Building reference list failed");
         return AXIS2_FAILURE;
     }
-        
-
+    
+    axutil_array_list_free(id_list, env);
+    id_list = NULL;
+    
     return AXIS2_SUCCESS;
 }

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?view=diff&rev=564206&r1=564205&r2=564206
==============================================================================
--- webservices/rampart/trunk/c/src/util/rampart_signature.c (original)
+++ webservices/rampart/trunk/c/src/util/rampart_signature.c Thu Aug  9 06:53:44 2007
@@ -380,6 +380,8 @@
         AXIS2_LOG_INFO(env->log, "[rampart][rampart_signature] Message signing failed.");
         return AXIS2_FAILURE;
     }
+    /*Free sig ctx*/
+    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);