From 7fba41321e44e596cbf57309265e644d2b36ec4a Mon Sep 17 00:00:00 2001 From: Maciej Date: Thu, 26 May 2022 19:28:45 +0200 Subject: [PATCH] netstat: Stop needing LookupServer for parsing arguments Previously the netstat utility crashed when LookupServer wasn't running because it tried to unveil nonexistent /tmp/portal/lookup socket. This commit fixes that. --- Userland/Utilities/netstat.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Userland/Utilities/netstat.cpp b/Userland/Utilities/netstat.cpp index 778b503cc2f..0ae7af7dd8b 100644 --- a/Userland/Utilities/netstat.cpp +++ b/Userland/Utilities/netstat.cpp @@ -24,12 +24,6 @@ constexpr int max_formatted_address_length = 21; ErrorOr serenity_main(Main::Arguments arguments) { TRY(Core::System::pledge("stdio rpath unix")); - TRY(Core::System::unveil("/proc/net", "r")); - TRY(Core::System::unveil("/proc/all", "r")); - TRY(Core::System::unveil("/etc/passwd", "r")); - TRY(Core::System::unveil("/etc/services", "r")); - TRY(Core::System::unveil("/tmp/portal/lookup", "rw")); - TRY(Core::System::unveil(nullptr, nullptr)); bool flag_all = false; bool flag_list = false; @@ -50,6 +44,13 @@ ErrorOr serenity_main(Main::Arguments arguments) args_parser.add_option(flag_wide, "Do not truncate IP addresses by printing out the whole symbolic host", "wide", 'W'); args_parser.parse(arguments); + TRY(Core::System::unveil("/proc/net", "r")); + TRY(Core::System::unveil("/proc/all", "r")); + TRY(Core::System::unveil("/etc/passwd", "r")); + TRY(Core::System::unveil("/etc/services", "r")); + TRY(Core::System::unveil("/tmp/portal/lookup", "rw")); + TRY(Core::System::unveil(nullptr, nullptr)); + bool has_protocol_flag = (flag_tcp || flag_udp); uid_t current_uid = getuid();