浏览代码

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.
Maciej 3 年之前
父节点
当前提交
7fba41321e
共有 1 个文件被更改,包括 7 次插入6 次删除
  1. 7 6
      Userland/Utilities/netstat.cpp

+ 7 - 6
Userland/Utilities/netstat.cpp

@@ -24,12 +24,6 @@ constexpr int max_formatted_address_length = 21;
 ErrorOr<int> 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<int> 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();