Fix some return values
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index f8e1748..e3f604f 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -2106,10 +2106,13 @@
 
             ecdsa_init( &ecdsa );
 
-            ret = ecdsa_from_keypair( &ecdsa, ssl->pk_key->pk_ctx ) ||
-                  ecdsa_write_signature( &ecdsa, hash, hashlen,
-                                         p + 2, &signature_len,
-                                         ssl->f_rng, ssl->p_rng );
+            ret = ecdsa_from_keypair( &ecdsa, ssl->pk_key->pk_ctx );
+            if( ret == 0 )
+            {
+                ret = ecdsa_write_signature( &ecdsa, hash, hashlen,
+                                             p + 2, &signature_len,
+                                             ssl->f_rng, ssl->p_rng );
+            }
 
             ecdsa_free( &ecdsa );