Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp2737683ybh; Fri, 24 Jul 2020 23:31:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx67V4y2mjt4UALPVpkV9JHWS06mqRHXUdX+MNBsQTRiYp4HTaYs8QQrioLvedCy4Gb7LHr X-Received: by 2002:a17:906:8782:: with SMTP id za2mr9963974ejb.419.1595658694351; Fri, 24 Jul 2020 23:31:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595658694; cv=none; d=google.com; s=arc-20160816; b=T3cFkW0wX7PmyBIERmB0TvWcY8vNVYl+Hrv/DkUXVEWcMt+ePvgHRRBYJme84Atvli Z19SCLlvUO9vrLzbpllBGSSdCCjWci6NJUIxXCSaKXJpY8shO69DaR63qelAH9NWxYuk psyXX7oFyzAZbtaBr0SUoaesEZZ6ZHpYMxzVCt0NQQkWW28G+uYMdnNtyZImBZoa3lPm mwNJXJZqNbItJ/E1NvqYDOEoIL26w2GpsDVwm5fRoJ4UHMyGbZ7qD2yy/jMplcSM60md JpkChtdYrkQiS3C0SQuEg4h9t9p+fL7pzrBqK9boNTZcesTJKzMAgmr4VlYrnSUXlh3h UUjQ== 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 :message-id:date:subject:cc:to:from; bh=yrgbrztkhi0y5KHu5/i8lpNIdrY9smTOlyuJ+MfcCIg=; b=0/DQw6dDpM+AMpjDiqsRNqGG+VsriKiRbFfdYE3IqKPyIxbpG53+c3yZKuVXysMsKZ LjmesLbecRFItEUOBAIzuFdWJIZY10PoZqTNEP7Og6HTgI8ZbqLDjYq7228b6YmbJc6h LFOi+Vvtv+0e9AztxsysMqEUCst9uThjAehKoS/lNM7KWHlaPGgbmt3xoNQd/gds92i9 fiQW3LZJuMBvWyLxS8SAiwZ7R1vvP6wzPD3ciWRaGpA/F3FIwDWRU71MBbMypTGnZODV 7ZhGaxTQ3j/iqMtO8N1rZ1NFSh8aN2TkfpTi/SWPPW9LE+ktUYkIzAOACjWw2PqDHLcW 14PQ== ARC-Authentication-Results: i=1; mx.google.com; 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 w18si1908914edx.276.2020.07.24.23.31.10; Fri, 24 Jul 2020 23:31:34 -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; 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 S1726807AbgGYGa4 (ORCPT + 99 others); Sat, 25 Jul 2020 02:30:56 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:52854 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726273AbgGYGa4 (ORCPT ); Sat, 25 Jul 2020 02:30:56 -0400 Received: from DGGEMS405-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 5450C3B4E21CE1DB4F4D; Sat, 25 Jul 2020 14:30:52 +0800 (CST) Received: from localhost.localdomain.localdomain (10.175.113.25) by DGGEMS405-HUB.china.huawei.com (10.3.19.205) with Microsoft SMTP Server id 14.3.487.0; Sat, 25 Jul 2020 14:30:45 +0800 From: Wei Yongjun To: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Greg Kroah-Hartman CC: Wei Yongjun , , , , Hulk Robot Subject: [PATCH -next] mtd: fix missing unlock on error in mtdchar_compat_ioctl() Date: Sat, 25 Jul 2020 06:34:16 +0000 Message-ID: <20200725063416.172037-1-weiyongjun1@huawei.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT X-Originating-IP: [10.175.113.25] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add the missing unlock before return from function mtdchar_compat_ioctl() in the error handling case. Fixes: 210bec567936 ("mtd: properly check all write ioctls for permissions") Reported-by: Hulk Robot Signed-off-by: Wei Yongjun --- drivers/mtd/mtdchar.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 52c120f9fb0d..b40f46a43fc6 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -1064,8 +1064,10 @@ static long mtdchar_compat_ioctl(struct file *file, unsigned int cmd, struct mtd_oob_buf32 buf; struct mtd_oob_buf32 __user *buf_user = argp; - if (!(file->f_mode & FMODE_WRITE)) - return -EPERM; + if (!(file->f_mode & FMODE_WRITE)) { + ret = -EPERM; + break; + } if (copy_from_user(&buf, argp, sizeof(buf))) ret = -EFAULT;