diff options
author | Eric Biggers <[email protected]> | 2018-02-06 15:42:08 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2018-02-06 18:32:48 -0800 |
commit | f7340761812fc10313e6fcc115e0bc4f7a799112 (patch) | |
tree | 2374b679e8378f22800e233b0c69883546616138 /tools/perf/scripts/python/net_dropmonitor.py | |
parent | c4fed5a91fadc8a277b1eda474317b501651dd3e (diff) |
pipe: read buffer limits atomically
The pipe buffer limits are accessed without any locking, and may be
changed at any time by the sysctl handlers. In theory this could cause
problems for expressions like the following:
pipe_user_pages_hard && user_bufs > pipe_user_pages_hard
... since the assembly code might reference the 'pipe_user_pages_hard'
memory location multiple times, and if the admin removes the limit by
setting it to 0, there is a very brief window where processes could
incorrectly observe the limit to be exceeded.
Fix this by loading the limits with READ_ONCE() prior to use.
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Eric Biggers <[email protected]>
Acked-by: Kees Cook <[email protected]>
Acked-by: Joe Lawrence <[email protected]>
Cc: Alexander Viro <[email protected]>
Cc: Michael Kerrisk <[email protected]>
Cc: Willy Tarreau <[email protected]>
Cc: Mikulas Patocka <[email protected]>
Cc: "Luis R . Rodriguez" <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/net_dropmonitor.py')
0 files changed, 0 insertions, 0 deletions