From e380f8da6d019c58add179a5b9354e37088467d0 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 10 Nov 2017 11:01:04 +0100 Subject: [PATCH] check that eventfd is not a real file Signed-off-by: Volker Lendecke --- lib/tevent/tevent.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/tevent/tevent.c b/lib/tevent/tevent.c index a2d2003cbf4..da46d93ede0 100644 --- a/lib/tevent/tevent.c +++ b/lib/tevent/tevent.c @@ -69,6 +69,7 @@ #ifdef HAVE_EVENTFD #include #endif +#include static void tevent_abort(struct tevent_context *ev, const char *reason); @@ -953,6 +954,13 @@ int tevent_common_wakeup_fd(int fd) { ssize_t ret; + { + struct stat st; + int statret = fstat(fd, &st); + assert(statret == 0); + assert((st.st_mode & S_IFMT) == 0); + } + do { #ifdef HAVE_EVENTFD uint64_t val = 1; @@ -963,6 +971,13 @@ int tevent_common_wakeup_fd(int fd) #endif } while ((ret == -1) && (errno == EINTR)); + { + struct stat st; + int statret = fstat(fd, &st); + assert(statret == 0); + assert((st.st_mode & S_IFMT) == 0); + } + return 0; } -- 2.11.0