Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1244219ybt; Tue, 7 Jul 2020 10:51:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHi0xOeUY4V4uU8ou0GpTOSKJE9s5sFGJrbpqoyrfkNTybs47e/IxZDs+U7vWk7lDZayqf X-Received: by 2002:a05:6402:1757:: with SMTP id v23mr47994394edx.356.1594144271190; Tue, 07 Jul 2020 10:51:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594144271; cv=none; d=google.com; s=arc-20160816; b=RKUZFfLcu/1ABdq3vYl5QoC+mbGyUjiKT07QzXMRqUeisbTMFsMRKOulG5y8TVeoQq SXyBua3blBy8OIS1U5kypgUvySMf0VZhikHy+2sYYuiXDjAVDahyy/6wKMv+eGgSZ9kJ 3GQ2RG5UmHYAQmk8S3o2Qa406JfJmwKVYlJYVwBER8AB4+q5Yx2psouFHgVrOPfjAE1b Yaw/Zy6UlSx6ZoxWLcJSLQ20DxSJFElnGUdqhiOmAE7BxlyOfuUUV1fFTN31CeQYu6Rz bch/JKKNSg1ePW5N9wpEpbq7f6HcvzpSiF6LXr0KtNgqE92QFLDnfDjzizQQf575qqjE /Cbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Ruv3QkeH3yf1ddYt00bBWdUvSXa4YUB7wJ/k+J42Rps=; b=B7NZF2uNrW5Kdlqjsy9HYz6iZDv4c/GhMknc869x4ZT0NkPM6wXf6/txcfJ0nljt5a 0Zxpnwe4BoLjDx7uN+9gTAOwSyJ4WpS7WV89iVmtA7jlPqRKivc/HkKFaZvhQ7dQoS+V /lfNTxfTLebHE5QsWm6SUidFw/dzwW3g6xXxqvnW/8suUkNM5cQANidzSMxqkAEo5Jqf ouKSqqT7FVSL0ZLnyRLUgbQUiMxZ6ki/jrztoR3ra1wb5RAoLYnTnw1zyMM+GH8/F81B tFm0BmNARoT0eqIjva4/FiChdy+1W1Tui+YyqLoWm4E/BC51hhdWZGjOlXz2nzGPmIOr aOew== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=X75j3alJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k93si13468682edc.315.2020.07.07.10.50.48; Tue, 07 Jul 2020 10:51:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=X75j3alJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728845AbgGGRt3 (ORCPT + 99 others); Tue, 7 Jul 2020 13:49:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55216 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728404AbgGGRsP (ORCPT ); Tue, 7 Jul 2020 13:48:15 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D3667C061755; Tue, 7 Jul 2020 10:48:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=Ruv3QkeH3yf1ddYt00bBWdUvSXa4YUB7wJ/k+J42Rps=; b=X75j3alJTwTh4rHPd55B93+/Ks ZDooFPCkgJDSFe7kTvl8S0qHXjcPmrmVbG4kE5dWn1aBg5XcL6O2bt8sjQ+Y0LyjxwLL8OYuXVJEE QJg4Jx9j4QBGZsgyNooR7TZverM3Wp6pGQqw0F+eU0Yzn0ze1RrSnrO2yEuzgQy+yUO1hUjt2IlNy LEif7xEfDnBwEFUvbESNgImccJHWXdjllpjiyDHeEoJfJScVp1c4r82NLoB4A6Aa5gi+kqigR6nAm TIQgpDqDmndI3RL3N8pn5i3la1sn/13TK6GpesmHTrlecc2SAf58SHpV/4uupE4zcwuBY6ipMIRTQ P6nfKkKQ==; Received: from [2001:4bb8:18c:3b3b:a49f:8154:a2b7:8b6c] (helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1jsrhR-0003Ha-E1; Tue, 07 Jul 2020 17:48:09 +0000 From: Christoph Hellwig To: Al Viro , Linus Torvalds , Stephen Rothwell Cc: Luis Chamberlain , Matthew Wilcox , Kees Cook , Iurii Zaikin , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH 05/23] fs: check FMODE_WRITE in __kernel_write Date: Tue, 7 Jul 2020 19:47:43 +0200 Message-Id: <20200707174801.4162712-6-hch@lst.de> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200707174801.4162712-1-hch@lst.de> References: <20200707174801.4162712-1-hch@lst.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add a WARN_ON_ONCE if the file isn't actually open for write. This matches the check done in vfs_write, but actually warn warns as a kernel user calling write on a file not opened for writing is a pretty obvious programming error. Signed-off-by: Christoph Hellwig --- fs/read_write.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/read_write.c b/fs/read_write.c index 2c601d853ff3d8..8f9fc05990ae8b 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -505,6 +505,8 @@ ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t const char __user *p; ssize_t ret; + if (WARN_ON_ONCE(!(file->f_mode & FMODE_WRITE))) + return -EBADF; if (!(file->f_mode & FMODE_CAN_WRITE)) return -EINVAL; -- 2.26.2