Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4550037pxj; Wed, 12 May 2021 08:01:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy2ZHoEVXP+cYvhkKBBK6iIRahIwPPh1HVl6YYvoTf9YDGHUbggbnMTIhYLyQdTcQkaRI1z X-Received: by 2002:a9d:5e02:: with SMTP id d2mr17345711oti.171.1620831702071; Wed, 12 May 2021 08:01:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620831702; cv=none; d=google.com; s=arc-20160816; b=g8878EHxQ05bNzhwEayNzYgVDUgFgVeLFAGzO+FPu+HJh+7OBAgxymgKOCgmiTDkEq 5yD+pXKVVxeRMcJf2FRGX+fOV/gTMIpNeZGGvhp1y3Zfso6Y4XBUNlQmpL7iTZiPdIhM YEDbzgJFyLYquCZ2FclFri+XuPb3s+fvX4GnVHFPQUXAAUsqhK5r6h0GG48DuFasQD1F GdtfZ/LEZ6L0CE7CYi864W3umDMshfxD5E+DDFjj1CBEnKB0vC+FOVrDZsVzVR8MH6wi Ok25fByspuvA71QaacoDBYBPOcxm+dvJe4Vo+vv1WrDgneMrjh1Jinjl1MfFQnwSeWaG iY6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=/bz26vOCiQk9fnTiPTT1rSa0CrFxnOKROuESArydTak=; b=I9nxQAwvhx8VGDMa0Yk0JPDyLZTxd5WT37cdS3vDKQHu+HKSWS7FMimTLdoXfFMp1y 9f5kQoPvKDDCQIQVSVqhT1/ImRExIKaPUUY37ie5JjUswO4H56ZGNfmeNKyymijcTMLt QqfDE/jRRh9Pr4OhhAxcHDO1GAR2qFZG8fVXRMlDCDYEJHgbTF4JJgaFVnQbZcw5ykc2 tg+PBnY2+tKiTMnb2umDpmLXbJ4bDpd/ufa4dMfRNrSqPnIw6gHrLZr5i0LH6zdudinm yjDVmUhfPp9qK1sP+7nDudD+CMv3oz+ziZ4ABb0vM/t7MSIwCpRx8Yw4S41ZZui+hGlL 9a3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Vu9cV8AT; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a62si235311oib.256.2021.05.12.08.01.26; Wed, 12 May 2021 08:01:42 -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=pass header.i=@linuxfoundation.org header.s=korg header.b=Vu9cV8AT; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232850AbhELPBX (ORCPT + 99 others); Wed, 12 May 2021 11:01:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:46762 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232386AbhELO6e (ORCPT ); Wed, 12 May 2021 10:58:34 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 962D66144C; Wed, 12 May 2021 14:56:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620831374; bh=0n/slp69aRjAl/y/jP91s3uaIt8eXTN3spKPQAnvyFE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vu9cV8ATkBcmjO2PPDXgv0jdTCAcqDbn0yC4jRwk2bZuc2h8gzGKY/83e+nz49Xid LIYhjRMrfNrox5g8LWbdM5MKsebQcJ5a3fBmH92iRSWsc3sY6wSstA5no4SYKXJZnI ZmpPxcupAWAiAhAcKCpSApuYy5lFZ7tlmbPFdW04= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Walle , =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Richard Weinberger , Miquel Raynal , Sasha Levin Subject: [PATCH 5.4 095/244] mtd: require write permissions for locking and badblock ioctls Date: Wed, 12 May 2021 16:47:46 +0200 Message-Id: <20210512144746.074672312@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144743.039977287@linuxfoundation.org> References: <20210512144743.039977287@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michael Walle [ Upstream commit 1e97743fd180981bef5f01402342bb54bf1c6366 ] MEMLOCK, MEMUNLOCK and OTPLOCK modify protection bits. Thus require write permission. Depending on the hardware MEMLOCK might even be write-once, e.g. for SPI-NOR flashes with their WP# tied to GND. OTPLOCK is always write-once. MEMSETBADBLOCK modifies the bad block table. Fixes: f7e6b19bc764 ("mtd: properly check all write ioctls for permissions") Signed-off-by: Michael Walle Reviewed-by: Greg Kroah-Hartman Acked-by: Rafał Miłecki Acked-by: Richard Weinberger Signed-off-by: Miquel Raynal Link: https://lore.kernel.org/linux-mtd/20210303155735.25887-1-michael@walle.cc Signed-off-by: Sasha Levin --- drivers/mtd/mtdchar.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 48832f9b215c..ee437af41f11 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -649,16 +649,12 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg) case MEMGETINFO: case MEMREADOOB: case MEMREADOOB64: - case MEMLOCK: - case MEMUNLOCK: case MEMISLOCKED: case MEMGETOOBSEL: case MEMGETBADBLOCK: - case MEMSETBADBLOCK: case OTPSELECT: case OTPGETREGIONCOUNT: case OTPGETREGIONINFO: - case OTPLOCK: case ECCGETLAYOUT: case ECCGETSTATS: case MTDFILEMODE: @@ -669,9 +665,13 @@ static int mtdchar_ioctl(struct file *file, u_int cmd, u_long arg) /* "dangerous" commands */ case MEMERASE: case MEMERASE64: + case MEMLOCK: + case MEMUNLOCK: + case MEMSETBADBLOCK: case MEMWRITEOOB: case MEMWRITEOOB64: case MEMWRITE: + case OTPLOCK: if (!(file->f_mode & FMODE_WRITE)) return -EPERM; break; -- 2.30.2