Fix some return values
diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index dbc804a..274cb3a 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -2066,10 +2066,12 @@
 
         ecdsa_init( &ecdsa );
 
-        ret = ecdsa_from_keypair( &ecdsa, ssl->pk_key->pk_ctx ) ||
-              ecdsa_write_signature( &ecdsa, hash, hashlen,
-                      ssl->out_msg + 6 + offset, &n,
-                      ssl->f_rng, ssl->p_rng );
+        if( ( ret = ecdsa_from_keypair( &ecdsa, ssl->pk_key->pk_ctx ) ) == 0 )
+        {
+            ret = ecdsa_write_signature( &ecdsa, hash, hashlen,
+                                         ssl->out_msg + 6 + offset, &n,
+                                         ssl->f_rng, ssl->p_rng );
+        }
 
         ecdsa_free( &ecdsa );