projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix NULL deref in apps/pkcs7
[openssl.git]
/
apps
/
spkac.c
diff --git
a/apps/spkac.c
b/apps/spkac.c
index ee2e5969f01b01bd8c77ba328057653687dbfd45..07f36d370d60cc9ec27280afc081d1fdc3c5d169 100644
(file)
--- a/
apps/spkac.c
+++ b/
apps/spkac.c
@@
-95,12
+95,12
@@
OPTIONS spkac_options[] = {
int spkac_main(int argc, char **argv)
{
int spkac_main(int argc, char **argv)
{
- BIO *
in = NULL, *
out = NULL;
+ BIO *out = NULL;
CONF *conf = NULL;
ENGINE *e = NULL;
EVP_PKEY *pkey = NULL;
NETSCAPE_SPKI *spki = NULL;
CONF *conf = NULL;
ENGINE *e = NULL;
EVP_PKEY *pkey = NULL;
NETSCAPE_SPKI *spki = NULL;
- char *challenge = NULL, *keyfile = NULL
, *engine = NULL
;
+ char *challenge = NULL, *keyfile = NULL;
char *infile = NULL, *outfile = NULL, *passinarg = NULL, *passin = NULL;
char *spkstr = NULL, *prog;
const char *spkac = "SPKAC", *spksect = "default";
char *infile = NULL, *outfile = NULL, *passinarg = NULL, *passin = NULL;
char *spkstr = NULL, *prog;
const char *spkac = "SPKAC", *spksect = "default";
@@
-112,6
+112,7
@@
int spkac_main(int argc, char **argv)
switch (o) {
case OPT_EOF:
case OPT_ERR:
switch (o) {
case OPT_EOF:
case OPT_ERR:
+ opthelp:
BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
goto end;
case OPT_HELP:
BIO_printf(bio_err, "%s: Use -help for summary.\n", prog);
goto end;
case OPT_HELP:
@@
-149,21
+150,18
@@
int spkac_main(int argc, char **argv)
spksect = opt_arg();
break;
case OPT_ENGINE:
spksect = opt_arg();
break;
case OPT_ENGINE:
- e
ngine = opt_arg(
);
+ e
= setup_engine(opt_arg(), 0
);
break;
break;
-
}
}
argc = opt_num_rest();
}
}
argc = opt_num_rest();
- argv = opt_rest();
+ if (argc != 0)
+ goto opthelp;
if (!app_passwd(passinarg, NULL, &passin, NULL)) {
BIO_printf(bio_err, "Error getting password\n");
goto end;
}
if (!app_passwd(passinarg, NULL, &passin, NULL)) {
BIO_printf(bio_err, "Error getting password\n");
goto end;
}
-#ifndef OPENSSL_NO_ENGINE
- e = setup_engine(engine, 0);
-#endif
if (keyfile) {
pkey = load_key(strcmp(keyfile, "-") ? keyfile : NULL,
if (keyfile) {
pkey = load_key(strcmp(keyfile, "-") ? keyfile : NULL,
@@
-179,7
+177,7
@@
int spkac_main(int argc, char **argv)
NETSCAPE_SPKI_sign(spki, pkey, EVP_md5());
spkstr = NETSCAPE_SPKI_b64_encode(spki);
NETSCAPE_SPKI_sign(spki, pkey, EVP_md5());
spkstr = NETSCAPE_SPKI_b64_encode(spki);
- out = bio_open_default(outfile,
"w"
);
+ out = bio_open_default(outfile,
'w', FORMAT_TEXT
);
if (out == NULL)
goto end;
BIO_printf(out, "SPKAC=%s\n", spkstr);
if (out == NULL)
goto end;
BIO_printf(out, "SPKAC=%s\n", spkstr);
@@
-188,22
+186,12
@@
int spkac_main(int argc, char **argv)
goto end;
}
goto end;
}
- in = bio_open_default(infile, "r");
- if (in == NULL)
- goto end;
-
- conf = NCONF_new(NULL);
- i = NCONF_load_bio(conf, in, NULL);
-
- if (!i) {
- BIO_printf(bio_err, "Error parsing config file\n");
- ERR_print_errors(bio_err);
+ if ((conf = app_load_config(infile)) == NULL)
goto end;
goto end;
- }
spkstr = NCONF_get_string(conf, spksect, spkac);
spkstr = NCONF_get_string(conf, spksect, spkac);
- if (
!spkstr
) {
+ if (
spkstr == NULL
) {
BIO_printf(bio_err, "Can't find SPKAC called \"%s\"\n", spkac);
ERR_print_errors(bio_err);
goto end;
BIO_printf(bio_err, "Can't find SPKAC called \"%s\"\n", spkac);
ERR_print_errors(bio_err);
goto end;
@@
-217,7
+205,7
@@
int spkac_main(int argc, char **argv)
goto end;
}
goto end;
}
- out = bio_open_default(outfile,
"w"
);
+ out = bio_open_default(outfile,
'w', FORMAT_TEXT
);
if (out == NULL)
goto end;
if (out == NULL)
goto end;
@@
-242,10
+230,8
@@
int spkac_main(int argc, char **argv)
end:
NCONF_free(conf);
NETSCAPE_SPKI_free(spki);
end:
NCONF_free(conf);
NETSCAPE_SPKI_free(spki);
- BIO_free(in);
BIO_free_all(out);
EVP_PKEY_free(pkey);
BIO_free_all(out);
EVP_PKEY_free(pkey);
- if (passin)
- OPENSSL_free(passin);
+ OPENSSL_free(passin);
return (ret);
}
return (ret);
}