From af1adf7eec8c1c8de2deb4e5a6b6301520630357 Mon Sep 17 00:00:00 2001 From: jsing <> Date: Thu, 28 Aug 2014 13:51:38 +0000 Subject: Ensure that a format option argument is a known specifier. --- src/usr.bin/openssl/apps.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/usr.bin/openssl/apps.c b/src/usr.bin/openssl/apps.c index f69613e586..e34aeaecba 100644 --- a/src/usr.bin/openssl/apps.c +++ b/src/usr.bin/openssl/apps.c @@ -1,4 +1,4 @@ -/* $OpenBSD: apps.c,v 1.5 2014/08/28 13:39:07 jsing Exp $ */ +/* $OpenBSD: apps.c,v 1.6 2014/08/28 13:51:38 jsing Exp $ */ /* * Copyright (c) 2014 Joel Sing * @@ -2259,6 +2259,7 @@ options_parse(int argc, char **argv, struct option *opts, char **unnamed) char *arg, *p; int ord = 0; int i, j; + int fmt; for (i = 1; i < argc; i++) { p = arg = argv[i]; @@ -2294,7 +2295,14 @@ options_parse(int argc, char **argv, struct option *opts, char **unnamed) break; case OPTION_ARG_FORMAT: - *opt->opt.value = str2fmt(argv[i]); + fmt = str2fmt(argv[i]); + if (fmt == FORMAT_UNDEF) { + fprintf(stderr, + "unknown %s '%s' for -%s\n", + opt->argname, argv[i], opt->name); + return (1); + } + *opt->opt.value = fmt; break; case OPTION_ARG_INT: -- cgit v1.2.3-55-g6feb