diff --git a/src/backend/libpq/be-secure-openssl.c b/src/backend/libpq/be-secure-openssl.c index a37b5e47c2e..f88779c6d28 100644 --- a/src/backend/libpq/be-secure-openssl.c +++ b/src/backend/libpq/be-secure-openssl.c @@ -899,6 +899,7 @@ load_dh_file(char *filename, bool isServerStart) (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("invalid DH parameters: %s", SSLerrmessage(ERR_get_error())))); + DH_free(dh); return NULL; } if (codes & DH_CHECK_P_NOT_PRIME) @@ -906,6 +907,7 @@ load_dh_file(char *filename, bool isServerStart) ereport(isServerStart ? FATAL : LOG, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("invalid DH parameters: p is not prime"))); + DH_free(dh); return NULL; } if ((codes & DH_NOT_SUITABLE_GENERATOR) && @@ -914,6 +916,7 @@ load_dh_file(char *filename, bool isServerStart) ereport(isServerStart ? FATAL : LOG, (errcode(ERRCODE_CONFIG_FILE_ERROR), errmsg("invalid DH parameters: neither suitable generator or safe prime"))); + DH_free(dh); return NULL; }