- Set sane start values for structures that are closed or freed.

diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c
index a1db884..12a1224 100644
--- a/programs/x509/cert_app.c
+++ b/programs/x509/cert_app.c
@@ -89,6 +89,15 @@
     int i, j, n;
     char *p, *q;
 
+    /*
+     * Set to sane values
+     */
+    server_fd = 0;
+    memset( &ssl, 0, sizeof( ssl_context ) );
+    memset( &ssn, 0, sizeof( ssl_session ) );
+    memset( &clicert, 0, sizeof( x509_cert ) );
+    memset( &rsa, 0, sizeof( rsa_context ) );
+
     if( argc == 0 )
     {
     usage:
@@ -149,7 +158,6 @@
     if( opt.mode == MODE_FILE )
     {
         x509_cert crt;
-
         memset( &crt, 0, sizeof( x509_cert ) );
 
         /*
@@ -191,7 +199,6 @@
          * 1. Initialize the RNG and the session data
          */
         havege_init( &hs );
-        memset( &ssn, 0, sizeof( ssl_session ) );
 
         /*
          * 2. Start the connection
@@ -265,7 +272,8 @@
 
 exit:
 
-    net_close( server_fd );
+    if( server_fd )
+        net_close( server_fd );
     x509_free( &clicert );
     rsa_free( &rsa );
     ssl_free( &ssl );