Мне нужны некоторые пояснения по этому примеру, взятые из документации OpenSSL https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_tmp_dh.html
...
SSL_CTX ctx = SSL_CTX_new();
...
/* Set up ephemeral DH parameters. */
DH *dh_2048 = NULL;
FILE *paramfile;
paramfile = fopen("dh_param_2048.pem", "r");
if (paramfile) {
dh_2048 = PEM_read_DHparams(paramfile, NULL, NULL, NULL);
fclose(paramfile);
} else {
/* Error. */
}
if (dh_2048 == NULL) {
/* Error. */
}
if (SSL_CTX_set_tmp_dh(ctx, dh_2048) != 1) {
/* Error. */
}
...
Кто отвечает за освобождение памяти, выделенной для параметра DH?
Нужно ли вызывать DH_free (dh_2048) после уничтожения SSL_CTX или если SSL_CTX_set_tmp_dh возвращает ошибку?