summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNRK <nrk@disroot.org>2023-10-07 23:34:02 +0600
committersfan5 <sfan5@live.de>2023-10-13 11:36:01 +0200
commite41add29d46bdfc8fdb9933453315e6784717f53 (patch)
tree51dc0eb81e4b00124049b121ff758fa461594af1
parent0b3d60afde88b433420f1c4b9fdc2df28923e35c (diff)
downloadmpv-e41add29d46bdfc8fdb9933453315e6784717f53.tar.bz2
mpv-e41add29d46bdfc8fdb9933453315e6784717f53.tar.xz
drm_common: don't spoil errno in signal handler
same rationale as last commit
-rw-r--r--video/out/drm_common.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/video/out/drm_common.c b/video/out/drm_common.c
index f8d68dfa81..d3cb58e8a6 100644
--- a/video/out/drm_common.c
+++ b/video/out/drm_common.c
@@ -150,8 +150,10 @@ struct drm_mode_spec {
/* VT Switcher */
static void vt_switcher_sighandler(int sig)
{
+ int saved_errno = errno;
unsigned char event = sig == RELEASE_SIGNAL ? EVT_RELEASE : EVT_ACQUIRE;
(void)write(vt_switcher_pipe[1], &event, sizeof(event));
+ errno = saved_errno;
}
static bool has_signal_installed(int signo)