From 4139838a936ab6dc9325baa912232432fb66c82d Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Tue, 26 May 2020 13:52:42 +0300 Subject: Userland et al: Pledge sigaction when needed * In some cases, we can first call sigaction()/signal(), then *not* pledge sigaction. * In other cases, we pledge sigaction at first, call sigaction()/signal() second, then pledge again, this time without sigaction. * In yet other cases, we keep the sigaction pledge. I suppose these could all be migrated to drop it or not pledge it at all, if somebody is interested in doing that. --- Userland/sleep.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'Userland/sleep.cpp') diff --git a/Userland/sleep.cpp b/Userland/sleep.cpp index 76d7440e21..e0e48612da 100644 --- a/Userland/sleep.cpp +++ b/Userland/sleep.cpp @@ -36,11 +36,6 @@ void handle_sigint(int) int main(int argc, char** argv) { - if (pledge("stdio", nullptr) < 0) { - perror("pledge"); - return 1; - } - int secs; Core::ArgsParser args_parser; @@ -51,6 +46,12 @@ int main(int argc, char** argv) memset(&sa, 0, sizeof(struct sigaction)); sa.sa_handler = handle_sigint; sigaction(SIGINT, &sa, nullptr); + + if (pledge("stdio", nullptr) < 0) { + perror("pledge"); + return 1; + } + unsigned remaining = sleep(secs); if (remaining) { printf("Sleep interrupted with %u seconds remaining.\n", remaining); -- cgit v1.2.3