Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp599721ybz; Wed, 15 Apr 2020 14:54:00 -0700 (PDT) X-Google-Smtp-Source: APiQypJiDE0Zuee56+AqhwSZmWEGbVLp0Gh5UbwMwk5fKjM8YQl2FupXq7fDOFnC2ZDOODE5hBTi X-Received: by 2002:a17:906:4eda:: with SMTP id i26mr7024075ejv.180.1586987640711; Wed, 15 Apr 2020 14:54:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586987640; cv=none; d=google.com; s=arc-20160816; b=CNH2JtT+6e2R/tCrxjVA76HdB5UljGlJmju58P50OS02wks4jvNXSacqZN8DL8Tdru Lb3M/qO+WILrao0a5xZBVbZL2LczK6ibcmbX3KbaRqxNjJ9q7H1hIvTk0ymIraCEJTyC iXL5KyVHq48pmAoRvVv6vDKo8z9xNQEcGgy9SgMLIs0+GdEIlmTfJdLh+CSRAeepDccG Qf9EYLCgI4GbZovUZhvTVK0lqesxtjHJh/000P4bsVhA6mTVRCn5JpnKrRYjGfpuVToW ZlyMnDvEHpKALupAUUzjZpDHAyKpSN7mLoyZjhV14/MLm9DavrPNUL4oyYDshyU7zH2Z BwGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=JJK+Q+UKkDQaruBYiWcWjNudKJdkietMzkyNFKfwUfY=; b=FsyrmC4USSluwK6wl3jiuyytfAF+bMHy/FqBkgcVf3Ne7YF3eMM+Yio/59PwYVqj7+ bii1kDhs4qm42R2NlWQJeR/f4R+1O6vPqpkiJ616x+DedxNAtMF2n6Bp9NG88VKRUr9K BU4NQxcAUj8NYZKNQVUqj1fhx8u8UUDd5Sp5ZBiLvRhE+GQTuPxPg3G96+9G3rD4nPyT awaeJr/N005jzEKg6OwWrY1/i3E6WoN9JOnKrcguJ+B3WnNnXpiAiL/RfB3dH/QJ2RJd E8oB4yBrPiRPjpGnsJ9oZOyxGeKr/UstTdc10ZYbc0IDf5iZ5Eiyuah/e3UsJBhRdN9B IcLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NI2CbHQm; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ov7si10646530ejb.489.2020.04.15.14.53.37; Wed, 15 Apr 2020 14:54:00 -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=@gmail.com header.s=20161025 header.b=NI2CbHQm; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2505209AbgDNTsE (ORCPT + 99 others); Tue, 14 Apr 2020 15:48:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S2505188AbgDNTr1 (ORCPT ); Tue, 14 Apr 2020 15:47:27 -0400 Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 158C2C061A10 for ; Tue, 14 Apr 2020 12:47:25 -0700 (PDT) Received: by mail-lj1-x241.google.com with SMTP id z26so1100345ljz.11 for ; Tue, 14 Apr 2020 12:47:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=JJK+Q+UKkDQaruBYiWcWjNudKJdkietMzkyNFKfwUfY=; b=NI2CbHQmy0JJhl4ytQt1TbKJDLFhbGdB6cugYS+62mNdDgladQHA0hgMSpm0uXhk9o OenLF/9qzYoyXCkuv5tboOvQ6DYSBgPak6ZedVQ8kUkb2+i3/FPQaVyVDxSnO7vm1ajm O8Ee2EwUzbtxLpnuvL5B21vXVbTPdRKawqDL3gkIiIr+Jrz202HaTyAyl3ggcMnK6bgF aHJmI2L8Q4H3BoMBCL08Cbenfkc2Ktqw+9w5IwhZlfXIkOWQjb/acdtVBaaBe5mpT7GX kwMHIbu70LH9UdN5hfijW4qXB2bKDyy7J84+hu3Wd69S/RaX2rI2sxEYDfE0xTjOAuIN MV3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=JJK+Q+UKkDQaruBYiWcWjNudKJdkietMzkyNFKfwUfY=; b=hWufysNL6BsReUyWqSw44D3w4emGDsEECdXVgPqxuEx96hx5OubOzFKbFrYXkDoJNN D8ZnG8bkLJ2BDYvVCbHq4+iqlH+HNKgamJHiCFuqqnt54V3sRAXmiE/0FNZZ6+C7AMVE l/AsnO9cJ0mcYs1M9IXCdAZJFeNE1F2bALRnBHXhvxTYTURR8yVQ2QwvARHiJKwgr/Mp ZUpkqhtOZhBKMsnik6znyHbRubgb21PF/eTy+DbZ8S4a02TgVA4W3r2jRr1STTfnFTSG o+RLOoEJZAOdJtKaJsKgkIgRAJX5QZctic1XWcPBhxWOt4HFHyJkYV6Kf75GcwDDzMpW U8dg== X-Gm-Message-State: AGi0PuY6RNmhGH/6BBkGbVsU52FE2WWx0SI8kfVsiLstVERvL5nFHd9M z+B4t3RxyenShaQZBlgDfEZpGnWM7IqX8YCICHQ= X-Received: by 2002:a2e:6c05:: with SMTP id h5mr1012285ljc.217.1586893643490; Tue, 14 Apr 2020 12:47:23 -0700 (PDT) MIME-Version: 1.0 References: <20200407095107.1988-1-miles.chen@mediatek.com> <20200407181908.GB94792@iweiny-DESK2.sc.intel.com> In-Reply-To: <20200407181908.GB94792@iweiny-DESK2.sc.intel.com> From: Souptick Joarder Date: Wed, 15 Apr 2020 01:25:07 +0530 Message-ID: Subject: Re: [PATCH] mm/gup: fix null pointer dereference detected by coverity To: Ira Weiny Cc: Miles Chen , Andrew Morton , Linux-MM , linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, wsd_upstream@mediatek.com Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 7, 2020 at 11:49 PM Ira Weiny wrote: > > On Tue, Apr 07, 2020 at 05:51:07PM +0800, Miles Chen wrote: > > In fixup_user_fault(), it is possible that unlocked is NULL, > > so we should test unlocked before using it. > > > > For example, in arch/arc/kernel/process.c, NULL is passed > > to fixup_user_fault(). > > > > SYSCALL_DEFINE3(arc_usr_cmpxchg, int *, uaddr, int, expected, int, new) > > { > > ... > > ret = fixup_user_fault(current, current->mm, (unsigned long) uaddr, > > FAULT_FLAG_WRITE, NULL); > > ... > > } > > > > Fixes: 4a9e1cda2748 ("mm: bring in additional flag for fixup_user_fault to signal unlock") > > Signed-off-by: Miles Chen > > Reviewed-by: Ira Weiny Acked-by: Souptick Joarder > > > --- > > mm/gup.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/mm/gup.c b/mm/gup.c > > index da3e03185144..a68d11dc232d 100644 > > --- a/mm/gup.c > > +++ b/mm/gup.c > > @@ -1230,7 +1230,8 @@ int fixup_user_fault(struct task_struct *tsk, struct mm_struct *mm, > > if (ret & VM_FAULT_RETRY) { > > down_read(&mm->mmap_sem); > > if (!(fault_flags & FAULT_FLAG_TRIED)) { > > - *unlocked = true; > > + if (unlocked) > > + *unlocked = true; > > fault_flags |= FAULT_FLAG_TRIED; > > goto retry; > > } > > -- > > 2.18.0 >