From: Shane Lontis Date: Wed, 17 Jun 2020 23:03:32 +0000 (+1000) Subject: Fix segfault in openssl app called with no args. X-Git-Tag: openssl-3.0.0-alpha4~92 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b75f08cb13ca2e03946e0beeaac2e0ffa0d2aae7;p=thirdparty%2Fopenssl.git Fix segfault in openssl app called with no args. This is a result of removal of interactive mode. Redirected it to now use 'openssl help'. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/12164) --- diff --git a/apps/openssl.c b/apps/openssl.c index 7b0ccbcc092..4c97936824c 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -308,6 +308,13 @@ int help_main(int argc, char **argv) char *prog; HELP_CHOICE o; DISPLAY_COLUMNS dc; + char *new_argv[3]; + + if (argc == 0) { + new_argv[0] = "help"; + new_argv[1] = NULL; + return do_cmd(prog_init(), 1, new_argv); + } prog = opt_init(argc, argv, help_options); while ((o = opt_next()) != OPT_hEOF) { @@ -323,8 +330,6 @@ int help_main(int argc, char **argv) } if (opt_num_rest() == 1) { - char *new_argv[3]; - new_argv[0] = opt_rest()[0]; new_argv[1] = "--help"; new_argv[2] = NULL; diff --git a/test/recipes/20-test_app.t b/test/recipes/20-test_app.t new file mode 100644 index 00000000000..e7246565f2c --- /dev/null +++ b/test/recipes/20-test_app.t @@ -0,0 +1,25 @@ +#! /usr/bin/env perl +# Copyright 2020 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +use OpenSSL::Test; + +setup("test_app"); + +plan tests => 3; + +ok(run(app(["openssl"])), + "Run openssl app with no args"); + +ok(run(app(["openssl", "help"])), + "Run openssl app with help"); + +ok(!run(app(["openssl", "-help"])), + "Run openssl app with incorrect arg");