]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #9726 from dkozovsk/master
authorLennart Poettering <lennart@poettering.net>
Fri, 27 Jul 2018 07:56:24 +0000 (09:56 +0200)
committerGitHub <noreply@github.com>
Fri, 27 Jul 2018 07:56:24 +0000 (09:56 +0200)
signal safety fixes exit ->_exit, call of page_size to prevent call of sysconf from signal handler

src/basic/sigbus.c
src/udev/collect/collect.c

index 70afba6bcf83d4213f67c166d632c87acf2be069..d5254eab9d3854f2eb52ccf3b8c3caf1cd9b5d66 100644 (file)
@@ -113,6 +113,10 @@ void sigbus_install(void) {
                 .sa_flags = SA_SIGINFO,
         };
 
+        /* make sure that sysconf() is not called from a signal handler because
+        * it is not guaranteed to be async-signal-safe since POSIX.1-2008 */
+        (void) page_size();
+
         n_installed++;
 
         if (n_installed == 1)
index 82b83547633589ff1289e49dde6f38b7d47c1627..39fd03d152c433595bbee0b2d7a569090a04614f 100644 (file)
@@ -59,7 +59,7 @@ static inline struct _mate *node_to_mate(struct udev_list_node *node)
 
 _noreturn_ static void sig_alrm(int signo)
 {
-        exit(4);
+        _exit(4);
 }
 
 static void usage(void)