Check return value of RSA_generate_key_ex().
authorGuus Sliepen <guus@tinc-vpn.org>
Wed, 22 Jun 2016 15:42:25 +0000 (17:42 +0200)
committerGuus Sliepen <guus@tinc-vpn.org>
Wed, 22 Jun 2016 15:42:25 +0000 (17:42 +0200)
src/openssl/rsagen.c

index 4a47619..cdd07f7 100644 (file)
@@ -89,11 +89,17 @@ rsa_t *rsa_generate(size_t bits, unsigned long exponent) {
        BN_set_word(bn_e, exponent);
        BN_GENCB_set(cb, indicator, NULL);
 
-       RSA_generate_key_ex(rsa, bits, bn_e, cb);
+       int result = RSA_generate_key_ex(rsa, bits, bn_e, cb);
 
        BN_GENCB_free(cb);
        BN_free(bn_e);
 
+       if(!result) {
+               fprintf(stderr, "Error during key generation!\n");
+               RSA_free(rsa);
+               return NULL;
+       }
+
        return rsa;
 }