Skip to content

pipe: buffer limits fixes and cleanups

Eric Biggers linux-fsdevel lkml stable 2 versions – Applied

Status from this message: [merged] pipe-read-buffer-limits-atomically.patch removed from -mm tree

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest7 patches 2 repliesApplied 7/7
  2. v17 patches 11 repliesSuperseded

Changes in v2 from the cover letter

- Added "Fixes" tag to "pipe: fix off-by-one error when checking buffer limits"
- In pipe_set_size(), checked 'nr_pages' rather than 'size'
- Fixed commit message for "pipe: simplify round_pipe_size()"

Patches in v2 All 7 applied

#Subject and filesSizeRepliesApplied
1/7pipe, sysctl: drop 'min' parameter from pipe-max-size converterfs/pipe.c include/linux/pipe_fs_i.h kernel/sysctl.c+5 -220 repliesApplied
2/7pipe, sysctl: remove pipe_proc_fn()fs/pipe.c include/linux/pipe_fs_i.h include/linux/sysctl.h +1 more+5 -240 repliesApplied
3/7pipe: actually allow root to exceed the pipe buffer limitsfs/pipe.c+8 -30 repliesApplied
4/7pipe: fix off-by-one error when checking buffer limitsfs/pipe.c+2 -20 repliesApplied
5/7pipe: reject F_SETPIPE_SZ with size over UINT_MAXfs/pipe.c include/linux/pipe_fs_i.h kernel/sysctl.c+5 -50 repliesApplied
6/7pipe: simplify round_pipe_size()fs/pipe.c+3 -110 repliesApplied
7/7pipe: read buffer limits atomicallyfs/pipe.c+9 -40 repliesApplied

Reviews trailers per patch

4 of 7 patches have a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchKees CookWilly TarreauJoe Lawrence
SeriesA-b A-b
1/7A-b
2/7
3/7
4/7A-b
5/7A-b
6/7
7/7A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v2 thread

Cover letter [PATCH v2 0/7] pipe: buffer limits fixes and cleanups

This series simplifies the sysctl handler for pipe-max-size and fixes another set of bugs related to the pipe buffer limits:

- The root user wasn't allowed to exceed the limits when creating new pipes.

- There was an off-by-one error when checking the limits, so a limit of N was actually treated as N - 1.

- F_SETPIPE_SZ accepted values over UINT_MAX.

- Reading the pipe buffer limits could be racy.

Changed since v1:

- Added "Fixes" tag to "pipe: fix off-by-one error when checking buffer limits"
- In pipe_set_size(), checked 'nr_pages' rather than 'size'
- Fixed commit message for "pipe: simplify round_pipe_size()"

Eric Biggers (7):
pipe, sysctl: drop 'min' parameter from pipe-max-size converter pipe, sysctl: remove pipe_proc_fn()
pipe: actually allow root to exceed the pipe buffer limits
pipe: fix off-by-one error when checking buffer limits
pipe: reject F_SETPIPE_SZ with size over UINT_MAX
pipe: simplify round_pipe_size()
pipe: read buffer limits atomically

 fs/pipe.c                 | 57 ++++++++++++++++++++---------------------------
 include/linux/pipe_fs_i.h |  5 ++---
 include/linux/sysctl.h    |  3 ---
 kernel/sysctl.c           | 33 +++++----------------------
 4 files changed, 32 insertions(+), 66 deletions(-)
Signature · 1 line
2.15.1