From fb06d494f00849f385bd7c2d5e5470ae838da4df Mon Sep 17 00:00:00 2001 From: David Lindbom Date: Sat, 22 Jan 2022 23:23:49 +0100 Subject: [PATCH] find: Fix crash on missing arguments Fixes #12075 --- Userland/Utilities/find.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Userland/Utilities/find.cpp b/Userland/Utilities/find.cpp index 068bf11f9a..8314198466 100644 --- a/Userland/Utilities/find.cpp +++ b/Userland/Utilities/find.cpp @@ -382,18 +382,32 @@ static OwnPtr parse_simple_command(Vector& args) return command; fatal_error("Unmatched \033[1m("); } else if (arg == "-type") { + if (args.is_empty()) + fatal_error("-type: requires additional arguments"); return make(args.take_first()); } else if (arg == "-links") { + if (args.is_empty()) + fatal_error("-links: requires additional arguments"); return make(args.take_first()); } else if (arg == "-user") { + if (args.is_empty()) + fatal_error("-user: requires additional arguments"); return make(args.take_first()); } else if (arg == "-group") { + if (args.is_empty()) + fatal_error("-group: requires additional arguments"); return make(args.take_first()); } else if (arg == "-size") { + if (args.is_empty()) + fatal_error("-size: requires additional arguments"); return make(args.take_first()); } else if (arg == "-name") { + if (args.is_empty()) + fatal_error("-name: requires additional arguments"); return make(args.take_first(), CaseSensitivity::CaseSensitive); } else if (arg == "-iname") { + if (args.is_empty()) + fatal_error("-iname: requires additional arguments"); return make(args.take_first(), CaseSensitivity::CaseInsensitive); } else if (arg == "-print") { g_have_seen_action_command = true; @@ -402,6 +416,8 @@ static OwnPtr parse_simple_command(Vector& args) g_have_seen_action_command = true; return make(0); } else if (arg == "-exec") { + if (args.is_empty()) + fatal_error("-exec: requires additional arguments"); g_have_seen_action_command = true; Vector command_argv; while (!args.is_empty()) {