mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-15 03:38:27 +00:00
Fix r_sys_sigaction not setting up the requested signals (#15440)
The for loop's iterator was initialized with the first member of sig[] instead of 0. Added an error to avoid this issue going unnoticed.
This commit is contained in:
parent
8c0f5268e3
commit
ccf42d7c45
@ -155,13 +155,14 @@ R_API int r_sys_sigaction(int *sig, void (*handler) (int)) {
|
||||
sigact.sa_handler = handler;
|
||||
sigemptyset (&sigact.sa_mask);
|
||||
|
||||
for (i = sig[0]; sig[i] != 0; i++) {
|
||||
for (i = 0; sig[i] != 0; i++) {
|
||||
sigaddset (&sigact.sa_mask, sig[i]);
|
||||
}
|
||||
|
||||
for (i = sig[0]; sig[i] != 0; i++) {
|
||||
for (i = 0; sig[i] != 0; i++) {
|
||||
ret = sigaction (sig[i], &sigact, NULL);
|
||||
if (ret) {
|
||||
eprintf ("Failed to set signal handler for signal '%d': %s\n", sig[i], strerror(errno));
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@ -176,9 +177,10 @@ R_API int r_sys_sigaction(int *sig, void (*handler) (int)) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
for (i = sig[0]; sig[i] != 0; i++) {
|
||||
for (i = 0; sig[i] != 0; i++) {
|
||||
ret = signal (sig[i], handler);
|
||||
if (ret == SIG_ERR) {
|
||||
eprintf ("Failed to set signal handler for signal '%d': %s\n", sig[i], strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user