mirror of
https://github.com/fish-shell/fish-shell.git
synced 2025-03-01 00:29:56 +08:00
Ensure we preserve errno in signal handlers
This commit is contained in:
parent
fe6fb23f43
commit
3f3531c819
@ -213,8 +213,12 @@ static void fish_signal_handler(int sig, siginfo_t *info, void *context) {
|
|||||||
UNUSED(info);
|
UNUSED(info);
|
||||||
UNUSED(context);
|
UNUSED(context);
|
||||||
|
|
||||||
|
// Ensure we preserve errno.
|
||||||
|
const int saved_errno = errno;
|
||||||
|
|
||||||
// Check if we are a forked child.
|
// Check if we are a forked child.
|
||||||
if (reraise_if_forked_child(sig)) {
|
if (reraise_if_forked_child(sig)) {
|
||||||
|
errno = saved_errno;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -267,6 +271,7 @@ static void fish_signal_handler(int sig, siginfo_t *info, void *context) {
|
|||||||
// test, to verify that we behave correctly when receiving lots of irrelevant signals.
|
// test, to verify that we behave correctly when receiving lots of irrelevant signals.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
errno = saved_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
void signal_reset_handlers() {
|
void signal_reset_handlers() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user