tun/tap: Fix crashes if open() /dev/net/tun and then poll() it.
authorMariusz Kozlowski <m.kozlowski@tuxland.pl>
Sun, 5 Jul 2009 19:48:35 +0000 (19:48 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Jul 2009 19:47:07 +0000 (12:47 -0700)
commit3c8a9c63d5fd738c261bd0ceece04d9c8357ca13
tree7c60ab7e391f73ffcbcb98613ee454f843d7b3d1
parent1ded3f59f35a2642852b3e2a1c0fa8a97777e9af
tun/tap: Fix crashes if open() /dev/net/tun and then poll() it.

Fix NULL pointer dereference in tun_chr_pool() introduced by commit
33dccbb050bbe35b88ca8cf1228dcf3e4d4b3554 ("tun: Limit amount of queued
packets per device") and triggered by this code:

int fd;
struct pollfd pfd;
fd = open("/dev/net/tun", O_RDWR);
pfd.fd = fd;
pfd.events = POLLIN | POLLOUT;
poll(&pfd, 1, 0);

Reported-by: Eugene Kapun <abacabadabacaba@gmail.com>
Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tun.c