aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-03-30 15:56:38 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-03-30 15:56:38 +0000
commitd943af058b36aa4847aabb07fe018780c994ae63 (patch)
treeddd31586a59d93416b26eec7191ed25458e488e9
parent5297809c03271977cc1187b82dd1756684edf93a (diff)
downloadbusybox-w32-d943af058b36aa4847aabb07fe018780c994ae63.tar.gz
busybox-w32-d943af058b36aa4847aabb07fe018780c994ae63.tar.bz2
busybox-w32-d943af058b36aa4847aabb07fe018780c994ae63.zip
libbb: preventive fix for SIGxxx >= 32
-rw-r--r--include/libbb.h32
1 files changed, 18 insertions, 14 deletions
diff --git a/include/libbb.h b/include/libbb.h
index afc053efb..edf27c6d5 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -306,21 +306,25 @@ enum {
306 * SIGPROF Profiling timer expired 306 * SIGPROF Profiling timer expired
307 * SIGSYS Bad argument to routine 307 * SIGSYS Bad argument to routine
308 * SIGTRAP Trace/breakpoint trap 308 * SIGTRAP Trace/breakpoint trap
309 *
310 * The only known arch with some of these sigs not fitting
311 * into 32 bits is parisc (SIGXCPU=33, SIGXFSZ=34, SIGSTKFLT=36).
312 * Dance around with long long to guard against that...
309 */ 313 */
310 BB_FATAL_SIGS = 0 314 BB_FATAL_SIGS = (int)(0
311 + (1 << SIGHUP) 315 + (1LL << SIGHUP)
312 + (1 << SIGINT) 316 + (1LL << SIGINT)
313 + (1 << SIGTERM) 317 + (1LL << SIGTERM)
314 + (1 << SIGPIPE) // Write to pipe with no readers 318 + (1LL << SIGPIPE) // Write to pipe with no readers
315 + (1 << SIGQUIT) // Quit from keyboard 319 + (1LL << SIGQUIT) // Quit from keyboard
316 + (1 << SIGABRT) // Abort signal from abort(3) 320 + (1LL << SIGABRT) // Abort signal from abort(3)
317 + (1 << SIGALRM) // Timer signal from alarm(2) 321 + (1LL << SIGALRM) // Timer signal from alarm(2)
318 + (1 << SIGVTALRM) // Virtual alarm clock 322 + (1LL << SIGVTALRM) // Virtual alarm clock
319 + (1 << SIGXCPU) // CPU time limit exceeded 323 + (1LL << SIGXCPU) // CPU time limit exceeded
320 + (1 << SIGXFSZ) // File size limit exceeded 324 + (1LL << SIGXFSZ) // File size limit exceeded
321 + (1 << SIGUSR1) // Yes kids, these are also fatal! 325 + (1LL << SIGUSR1) // Yes kids, these are also fatal!
322 + (1 << SIGUSR2) 326 + (1LL << SIGUSR2)
323 + 0, 327 + 0),
324}; 328};
325void bb_signals(int sigs, void (*f)(int)); 329void bb_signals(int sigs, void (*f)(int));
326/* Unlike signal() and bb_signals, sets handler with sigaction() 330/* Unlike signal() and bb_signals, sets handler with sigaction()