test/x509aux.c: Fix argv loop

There are cases when argc is more trustable than proper argv termination.
Since we trust argc in all other test programs, we might as well treat it
the same way in this program.

Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
Richard Levitte 2016-09-21 14:44:42 +02:00
parent 3c10632529
commit 780bbb96bf

View File

@ -180,7 +180,6 @@ static int test_certs(BIO *fp)
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
BIO *bio_err; BIO *bio_err;
const char *certfile;
const char *p; const char *p;
int ret = 1; int ret = 1;
@ -197,24 +196,30 @@ int main(int argc, char *argv[])
CRYPTO_set_mem_debug(1); CRYPTO_set_mem_debug(1);
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
while ((certfile = *++argv) != NULL) { argc--;
BIO *f = BIO_new_file(certfile, "r"); argv++;
while (argc >= 1) {
BIO *f = BIO_new_file(*argv, "r");
int ok; int ok;
if (f == NULL) { if (f == NULL) {
fprintf(stderr, "%s: Error opening cert file: '%s': %s\n", fprintf(stderr, "%s: Error opening cert file: '%s': %s\n",
progname, certfile, strerror(errno)); progname, *argv, strerror(errno));
EXIT(ret); EXIT(ret);
} }
ret = !(ok = test_certs(f)); ret = !(ok = test_certs(f));
BIO_free(f); BIO_free(f);
if (!ok) { if (!ok) {
printf("%s ERROR\n", certfile); printf("%s ERROR\n", *argv);
ret = 1; ret = 1;
break; break;
} }
printf("%s OK\n", certfile); printf("%s OK\n", *argv);
argc--;
argv++;
} }
#ifndef OPENSSL_NO_CRYPTO_MDEBUG #ifndef OPENSSL_NO_CRYPTO_MDEBUG