poll() exits too early with EFAULT if 1st arg is NULL
If poll() is used as a milli-second sleep, like in help.c, by passing a NULL in the 1st and a 0 in the 2nd arg, it exits with EFAULT. As per Paolo Bonzini, the original author, this is a bug and to be fixed Like in this commit, which is not to exit if the 2nd arg is 0. It got fixed In gnulib in the same manner the other day. Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Joachim Schmitz committed
Sep 17, 2012 at 23:23 UTC
32fde6575e4139710ea5259ee9b7c750b7c2dde0
1 file changed
+1
-1
compat/poll/poll.c
+1
-1
@@ -353,7 +353,7 @@ poll (struct pollfd *pfd, nfds_t nfd, int timeout)
353
354
/* EFAULT is not necessary to implement, but let's do it in the
355
simplest case. */
356
- if (!pfd)
356
+ if (!pfd && nfd)
357
{
358
errno = EFAULT;
359
return -1;