lkml.org 
[lkml]   [2003]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[2.4] Inconsistency in poll(2)
Hi readers of linux-kernel and glibc maintainers,

while hacking on a network application I found following oddity:

poll(pds,nfds,timeout) called with one of the file descriptors listed in
pds being invalid always does return nfds.

Output of appended sample code:
poll returned 2
revent[0]: 0
revent[1]: 32

According to IEEE Std 1003.1, 2003 Edition, the return value should have
been 1 in the above sample.

The kernel is 2.4.20 (debian 2.4.20-3-686). After a short look at the
code for sys_poll I am certain the problem is originated within the
kernel.

Any suggestions which actions to take?


Michael


Simple sample code demonstrating the problem:

#include <stdio.h>
#include <sys/poll.h>

struct pollfd fds[] = {
{ 0, POLLIN, 0 },
{ 110, POLLIN, 0}
};

int main(void)
{
int r = poll(fds, sizeof fds / sizeof fds[0], -1);
if ( r < 0 )
perror("poll");
else
printf("poll returned %d\n");

for ( r=0; r < sizeof fds / sizeof fds[0]; r++ )
printf("revent[%d]: %hd\n", r, fds[r].revents);

return 0;
}

--
Linux@TekXpress
http://www-users.rwth-aachen.de/Michael.Mueller4/tekxp/tekxp.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:46    [W:0.026 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site