Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2250889imm; Thu, 7 Jun 2018 07:43:10 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKDLSF5GxHkfWyQ0rpFVs7d1pPrFp9+Hl0TZeqbEZxK591LhlmDx1HcQJrlIKk8RZMs074j X-Received: by 2002:a17:902:8b86:: with SMTP id ay6-v6mr2295515plb.295.1528382590575; Thu, 07 Jun 2018 07:43:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528382590; cv=none; d=google.com; s=arc-20160816; b=tSJyodMvNQjkz316pu6Z+I4f9elHENbqmUqdNMNB/6OOqMIIkRU6qOGwRrYjgpaXzY 2dbnuzW+msbSNEhhxAwPqfW3NryPT55B2pEPKeCHUIeTc+nTepdaYTJtGz15pBo/t+P5 yfffUpatFC6Lie8SFUYUMp2ks7wn43gUkgSUuRR4P3oPzqq4oVRQmN9Yr7DT8PAV76kC hRc9OAD2B5EAX2y3BPnwaplRSwHh1LR1v82AQH1D0ladlLVX8xPk2lVB6CsCMjCXncha xApT8+28rHapfNhAWvsWCWrDI9sjvyrORfE815FeEYbJw3SgdAhqqEnYYrw3njAFB9Ba uZrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition :arc-authentication-results; bh=fiZpWhSaBLi3s1SW7sZQ0/mSbxKPtFyBnnAa0sdwkww=; b=0Kv8d9y3Sz3lmh6i8/hW6pasjY48j8EEfh/xg7X7yk5ASGAmxD3ZFNZY4evk5LV6mw mSJZ+iegD2E+lbDjIrnjBZI9jKiA9Cl2ryRO4XgKkS8EyR+sjzDOuH19LAncm0sO1Nwy jqOHTtEqzyREz7WjeMLC4scVSzVexLWVGB/uGuLijOb3+fCG/9btb3RHG64lzazXD3Be url3M/omaft7iPv6bMIhKUqNDBM3YaE53X/Ighg8Wz3JVikTT/GKjBVSSZbR8f11ic2S j9E3W0HBCRRxltlBy3b3kGJ8Al4cPbONY4O/jbQga4NV3Vx8hKOlkslIrR+Db/424lZB n+Lw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r189-v6si13551892pgr.500.2018.06.07.07.42.56; Thu, 07 Jun 2018 07:43:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934257AbeFGOk4 (ORCPT + 99 others); Thu, 7 Jun 2018 10:40:56 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:40570 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934559AbeFGOkx (ORCPT ); Thu, 7 Jun 2018 10:40:53 -0400 Received: from [148.252.241.226] (helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1fQvbg-0005Zv-DK; Thu, 07 Jun 2018 15:09:40 +0100 Received: from ben by deadeye with local (Exim 4.91) (envelope-from ) id 1fQvb6-00031f-GX; Thu, 07 Jun 2018 15:09:04 +0100 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Michael Kerrisk" , "Kees Cook" , "Eric Biggers" , "Mikulas Patocka" , "Willy Tarreau" , "Alexander Viro" , "Joe Lawrence" , "Linus Torvalds" , "Luis R . Rodriguez" Date: Thu, 07 Jun 2018 15:05:21 +0100 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) Subject: [PATCH 3.16 213/410] pipe: fix off-by-one error when checking buffer limits In-Reply-To: X-SA-Exim-Connect-IP: 148.252.241.226 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.57-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Eric Biggers commit 9903a91c763ecdae333a04a9d89d79d2b8966503 upstream. With pipe-user-pages-hard set to 'N', users were actually only allowed up to 'N - 1' buffers; and likewise for pipe-user-pages-soft. Fix this to allow up to 'N' buffers, as would be expected. Link: http://lkml.kernel.org/r/20180111052902.14409-5-ebiggers3@gmail.com Fixes: b0b91d18e2e9 ("pipe: fix limit checking in pipe_set_size()") Signed-off-by: Eric Biggers Acked-by: Willy Tarreau Acked-by: Kees Cook Acked-by: Joe Lawrence Cc: Alexander Viro Cc: "Luis R . Rodriguez" Cc: Michael Kerrisk Cc: Mikulas Patocka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Ben Hutchings --- fs/pipe.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/fs/pipe.c +++ b/fs/pipe.c @@ -593,12 +593,12 @@ static unsigned long account_pipe_buffer static bool too_many_pipe_buffers_soft(unsigned long user_bufs) { - return pipe_user_pages_soft && user_bufs >= pipe_user_pages_soft; + return pipe_user_pages_soft && user_bufs > pipe_user_pages_soft; } static bool too_many_pipe_buffers_hard(unsigned long user_bufs) { - return pipe_user_pages_hard && user_bufs >= pipe_user_pages_hard; + return pipe_user_pages_hard && user_bufs > pipe_user_pages_hard; } static bool is_unprivileged_user(void)