From 4fc37bb6fed94048ab4eeb361ec7c261aae41333 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Thu, 13 Jun 2019 16:48:01 +0200 Subject: [PATCH] tests: Add more reproducers for valid and invalid Match exec blocks Fixes: T152 Signed-off-by: Jakub Jelen Reviewed-by: Andreas Schneider --- tests/unittests/torture_options.c | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/unittests/torture_options.c b/tests/unittests/torture_options.c index a4278623..6ae99e7b 100644 --- a/tests/unittests/torture_options.c +++ b/tests/unittests/torture_options.c @@ -699,6 +699,40 @@ static void torture_options_config_match(void **state) session->opts.port = 0; + /* The Match exec keyword can accept more arguments */ + torture_reset_config(session); + config = fopen("test_config", "w"); + assert_non_null(config); + fputs("Match exec /bin/true 1 \n" + "\tPort 33\n" + "Match all\n" + "\tPort 34\n", + config); + fclose(config); + + rv = ssh_options_parse_config(session, "test_config"); + assert_ssh_return_code(session, rv); + assert_int_equal(session->opts.port, 34); + + session->opts.port = 0; + + /* Commands containing whitespace characters must be quoted. */ + torture_reset_config(session); + config = fopen("test_config", "w"); + assert_non_null(config); + fputs("Match exec \"/bin/true 1\"\n" + "\tPort 33\n" + "Match all\n" + "\tPort 34\n", + config); + fclose(config); + + rv = ssh_options_parse_config(session, "test_config"); + assert_ssh_return_code(session, rv); + assert_int_equal(session->opts.port, 34); + + session->opts.port = 0; + unlink("test_config"); }