Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751757AbeAKFa7 (ORCPT + 1 other); Thu, 11 Jan 2018 00:30:59 -0500 Received: from mail-pf0-f196.google.com ([209.85.192.196]:34981 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750799AbeAKFa5 (ORCPT ); Thu, 11 Jan 2018 00:30:57 -0500 X-Google-Smtp-Source: ACJfBosbq8FwUtdJPG6QXwInNubP+uD/LCaAE8yMmvICiMlzZGIbptnvwKpvQpM5l0WZIz3whIMtgA== From: Eric Biggers To: linux-fsdevel@vger.kernel.org Cc: Alexander Viro , Joe Lawrence , Michael Kerrisk , Willy Tarreau , Mikulas Patocka , "Luis R . Rodriguez" , Kees Cook , linux-kernel@vger.kernel.org, Eric Biggers Subject: [PATCH v2 0/7] pipe: buffer limits fixes and cleanups Date: Wed, 10 Jan 2018 21:28:55 -0800 Message-Id: <20180111052902.14409-1-ebiggers3@gmail.com> X-Mailer: git-send-email 2.15.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: 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(-) -- 2.15.1