diff options
author | Ken-ichirou MATSUZAWA <chamaken@gmail.com> | 2015-08-31 07:54:49 +0900 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-08-30 21:55:51 -0700 |
commit | 0ef707700f1cef2357ce655fc86a4de5e41fa4b5 (patch) | |
tree | 14962df2ccafdd0b86155d18b40cddd17d9e70a8 /net/ipv4/af_inet.c | |
parent | 793768f55c218a260015fe2029ae3d84676cae03 (diff) | |
download | linux-0ef707700f1cef2357ce655fc86a4de5e41fa4b5.tar.bz2 |
netlink: rx mmap: fix POLLIN condition
Poll() returns immediately after setting the kernel current frame
(ring->head) to SKIP from user space even though there is no new
frame. And in a case of all frames is VALID, user space program
unintensionally sets (only) kernel current frame to UNUSED, then
calls poll(), it will not return immediately even though there are
VALID frames.
To avoid situations like above, I think we need to scan all frames
to find VALID frames at poll() like netlink_alloc_skb(),
netlink_forward_ring() finding an UNUSED frame at skb allocation.
Signed-off-by: Ken-ichirou MATSUZAWA <chamas@h4.dion.ne.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/af_inet.c')
0 files changed, 0 insertions, 0 deletions