Diff between c9fcea121f9ad8b9c36263ea6254158c8fa793c8 and 6cf9117bfd3f3b19cd6cfcf32910e29e57a4b1f7
Changed Files
| File | Additions | Deletions | Status |
| src/shared/mainloop-notify.c | +2 | -1 | modified |
Full Patch
diff --git a/src/shared/mainloop-notify.c b/src/shared/mainloop-notify.c
index 33be3cf..1198951 100644
--- a/src/shared/mainloop-notify.c
+++ b/src/shared/mainloop-notify.c
@@ -15,6 +15,7 @@
#define _GNU_SOURCE
#include <stdio.h>
#include <errno.h>
+#include <limits.h>
#include <unistd.h>
#include <stdlib.h>
#include <stddef.h>
@@ -130,7 +131,7 @@ static bool signal_read(struct io *io, void *user_data)
fd = io_get_fd(io);
result = read(fd, &si, sizeof(si));
- if (result != sizeof(si))
+ if (result != sizeof(si) || si.ssi_signo > INT_MAX)
return false;
if (data && data->func)