From: torvalds@ppc970.osdl.org Date: Wed, 9 Mar 2005 08:01:53 +0000 (-0800) Subject: [PATCH] epoll: return proper error on overflow condition X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f9459a091b02e63266b41b84034cbeffcb81727;p=thirdparty%2Fkernel%2Fstable.git [PATCH] epoll: return proper error on overflow condition Noted by Georgi Guninski. --- diff --git a/fs/eventpoll.c b/fs/eventpoll.c index b11ab1a9ceeed..28ecd4ddf522c 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -619,6 +619,7 @@ eexit_1: return error; } +#define MAX_EVENTS (INT_MAX / sizeof(struct epoll_event)) /* * Implement the event wait interface for the eventpoll file. It is the kernel @@ -635,7 +636,7 @@ asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events, current, epfd, events, maxevents, timeout)); /* The maximum number of event must be greater than zero */ - if (maxevents <= 0) + if (maxevents <= 0 || maxevents > MAX_EVENTS) return -EINVAL; /* Verify that the area passed by the user is writeable */