diff --git a/fips/dsa/fips_dssvs.c b/fips/dsa/fips_dssvs.c index e2f2297f00762a43396be1c369c86d4c00208725..6a0b40fc4119dae2eb507c6f178b88a1a88cf5d4 100644 --- a/fips/dsa/fips_dssvs.c +++ b/fips/dsa/fips_dssvs.c @@ -552,6 +552,11 @@ static void keypair(FILE *in, FILE *out) int n=atoi(value); dsa = FIPS_dsa_new(); + if (!dsa) + { + fprintf(stderr, "DSA allocation error\n"); + exit(1); + } if (!dsa2 && !dsa_builtin_paramgen(dsa, L, N, NULL, NULL, 0, NULL, NULL, NULL, NULL)) { @@ -578,8 +583,7 @@ static void keypair(FILE *in, FILE *out) do_bn_print_name(out, "Y",dsa->pub_key); fputs(RESP_EOL, out); } - if (dsa) - FIPS_dsa_free(dsa); + FIPS_dsa_free(dsa); } } }