Browse Source

Fixing 1668

Christian Grothoff 14 years ago
parent
commit
835e6c52c7

+ 7 - 1
src/testcurl/https/tls_session_time_out_test.c

@@ -68,6 +68,7 @@ test_tls_session_time_out (gnutls_session_t session)
   ret = gnutls_handshake (session);
   if (ret < 0)
     {
+      fprintf (stderr, "Handshake failed\n");
       return -1;
     }
 
@@ -77,6 +78,7 @@ test_tls_session_time_out (gnutls_session_t session)
   /* TODO better RST trigger */
   if (send (sd, "", 1, 0) == 0)
     {
+      fprintf (stderr, "Connection failed to time-out\n");
       return -1;
     }
 
@@ -111,7 +113,11 @@ main (int argc, char *const *argv)
       return -1;
     }
 
-  setup_session (&session, &key, &cert, &xcred);
+  if (0 != setup_session (&session, &key, &cert, &xcred))
+    {
+      fprintf (stderr, "failed to setup session\n");
+      return 1;
+    }
   errorCount += test_tls_session_time_out (session);
   teardown_session (session, &key, &cert, xcred);
 

+ 5 - 1
src/testcurl/https/tls_test_common.c

@@ -374,6 +374,7 @@ setup_session (gnutls_session_t * session,
   key->data = malloc (key->size);
   if (key->data == NULL) 
      {
+       gnutls_certificate_free_credentials (*xcred);
 	return -1;
      }
   memcpy (key->data, srv_key_pem, key->size);
@@ -381,6 +382,7 @@ setup_session (gnutls_session_t * session,
   cert->data = malloc (cert->size);
   if (cert->data == NULL)
     {
+        gnutls_certificate_free_credentials (*xcred);
 	free (key->data); 
 	return -1;
     }
@@ -392,12 +394,14 @@ setup_session (gnutls_session_t * session,
 				    "NORMAL", &err_pos);
   if (ret < 0)
     {
+       gnutls_deinit (*session);
+       gnutls_certificate_free_credentials (*xcred);
        free (key->data);
        return -1;
     }
   gnutls_credentials_set (*session, 
 			  GNUTLS_CRD_CERTIFICATE, 
-			  xcred);
+			  *xcred);
   return 0;
 }