mirror of
https://github.com/QuasarApp/openssl.git
synced 2025-05-17 20:09:41 +00:00
Don't free NCONF obtained values
Bug reported by Michel Sales. Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
e1d9f1ab39
commit
ebc4815fa5
20
apps/req.c
20
apps/req.c
@ -198,7 +198,9 @@ int req_main(int argc, char **argv)
|
|||||||
char *extensions = NULL, *infile = NULL;
|
char *extensions = NULL, *infile = NULL;
|
||||||
char *outfile = NULL, *keyfile = NULL, *inrand = NULL;
|
char *outfile = NULL, *keyfile = NULL, *inrand = NULL;
|
||||||
char *keyalgstr = NULL, *p, *prog, *passargin = NULL, *passargout = NULL;
|
char *keyalgstr = NULL, *p, *prog, *passargin = NULL, *passargout = NULL;
|
||||||
char *passin = NULL, *passout = NULL, *req_exts = NULL, *subj = NULL;
|
char *passin = NULL, *passout = NULL;
|
||||||
|
char *nofree_passin = NULL, *nofree_passout = NULL;
|
||||||
|
char *req_exts = NULL, *subj = NULL;
|
||||||
char *template = default_config_file, *keyout = NULL;
|
char *template = default_config_file, *keyout = NULL;
|
||||||
const char *keyalg = NULL;
|
const char *keyalg = NULL;
|
||||||
OPTION_CHOICE o;
|
OPTION_CHOICE o;
|
||||||
@ -436,15 +438,17 @@ int req_main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!passin) {
|
if (passin == NULL) {
|
||||||
passin = NCONF_get_string(req_conf, SECTION, "input_password");
|
passin = nofree_passin =
|
||||||
if (!passin)
|
NCONF_get_string(req_conf, SECTION, "input_password");
|
||||||
|
if (passin == NULL)
|
||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!passout) {
|
if (passout == NULL) {
|
||||||
passout = NCONF_get_string(req_conf, SECTION, "output_password");
|
passout = nofree_passout =
|
||||||
if (!passout)
|
NCONF_get_string(req_conf, SECTION, "output_password");
|
||||||
|
if (passout == NULL)
|
||||||
ERR_clear_error();
|
ERR_clear_error();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -862,7 +866,9 @@ int req_main(int argc, char **argv)
|
|||||||
X509_REQ_free(req);
|
X509_REQ_free(req);
|
||||||
X509_free(x509ss);
|
X509_free(x509ss);
|
||||||
ASN1_INTEGER_free(serial);
|
ASN1_INTEGER_free(serial);
|
||||||
|
if (passin != nofree_passin)
|
||||||
OPENSSL_free(passin);
|
OPENSSL_free(passin);
|
||||||
|
if (passout != nofree_passout)
|
||||||
OPENSSL_free(passout);
|
OPENSSL_free(passout);
|
||||||
OBJ_cleanup();
|
OBJ_cleanup();
|
||||||
return (ret);
|
return (ret);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user