diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-30 15:56:38 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-03-30 15:56:38 +0000 |
commit | d943af058b36aa4847aabb07fe018780c994ae63 (patch) | |
tree | ddd31586a59d93416b26eec7191ed25458e488e9 | |
parent | 5297809c03271977cc1187b82dd1756684edf93a (diff) | |
download | busybox-w32-d943af058b36aa4847aabb07fe018780c994ae63.tar.gz busybox-w32-d943af058b36aa4847aabb07fe018780c994ae63.tar.bz2 busybox-w32-d943af058b36aa4847aabb07fe018780c994ae63.zip |
libbb: preventive fix for SIGxxx >= 32
-rw-r--r-- | include/libbb.h | 32 |
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 | }; |
325 | void bb_signals(int sigs, void (*f)(int)); | 329 | void 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() |