--- contrib/sendmail/src/tls.c.x 2019-12-24 14:57:21.569610000 +0100 +++ contrib/sendmail/src/tls.c 2019-12-24 16:07:14.078702000 +0100 @@ -748,14 +748,26 @@ int rc; bn_rsa_r4 = BN_new(); - rc = BN_set_word(bn_rsa_r4, RSA_F4); - if ((bn_rsa_r4 != NULL) && BN_set_word(bn_rsa_r4, RSA_F4) && (rsa = RSA_new()) != NULL) + if (bn_rsa_r4 == NULL) { - if (!RSA_generate_key_ex(rsa, RSA_KEYLENGTH, bn_rsa_r4, NULL)) - { - RSA_free(rsa); - rsa = NULL; - } + return NULL; + } + rc = BN_set_word(bn_rsa_r4, e); + if (BN_set_word == 0) + { + BN_free(bn_rsa_r4); + return NULL; + } + rsa = RSA_new(); + if (rsa == NULL) + { + BN_free(bn_rsa_r4); + return NULL; + } + if (!RSA_generate_key_ex(rsa, num, bn_rsa_r4, NULL)) + { + BN_free(bn_rsa_r4); + RSA_free(rsa); return NULL; } BN_free(bn_rsa_r4);