From: Karel Zak Date: Thu, 5 Mar 2015 09:47:59 +0000 (+0100) Subject: flock: fix timeout handler pointer usage X-Git-Tag: v2.27-rc1~407 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=46cd5b1767c3ca638a3f9170bfc4463bc83b62b4;p=thirdparty%2Futil-linux.git flock: fix timeout handler pointer usage Signed-off-by: Karel Zak --- diff --git a/include/monotonic.h b/include/monotonic.h index d5ff7c8e58..aca8b1fe4d 100644 --- a/include/monotonic.h +++ b/include/monotonic.h @@ -9,7 +9,7 @@ extern int get_boot_time(struct timeval *boot_time); extern int gettime_monotonic(struct timeval *tv); extern int setup_timer(timer_t * t_id, struct itimerval *timeout, - void (*timeout_handler)(void)); + void (*timeout_handler)(int, siginfo_t *, void *)); extern void cancel_timer(timer_t * t_id); #endif /* UTIL_LINUX_BOOTTIME_H */ diff --git a/lib/monotonic.c b/lib/monotonic.c index a124debba6..c6e0f7572a 100644 --- a/lib/monotonic.c +++ b/lib/monotonic.c @@ -69,7 +69,7 @@ int gettime_monotonic(struct timeval *tv) } int setup_timer(timer_t * t_id, struct itimerval *timeout, - void (*timeout_handler)(void)) + void (*timeout_handler)(int, siginfo_t *, void *)) { struct sigaction sig_a; static struct sigevent sig_e = { @@ -85,8 +85,10 @@ int setup_timer(timer_t * t_id, struct itimerval *timeout, if (sigemptyset(&sig_a.sa_mask)) return 1; + sig_a.sa_flags = SA_SIGINFO; - sig_a.sa_handler = timeout_handler; + sig_a.sa_sigaction = timeout_handler; + if (sigaction(SIGALRM, &sig_a, 0)) return 1; if (timer_create(CLOCK_MONOTONIC, &sig_e, t_id))