Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp3644103img; Mon, 25 Mar 2019 14:45:25 -0700 (PDT) X-Google-Smtp-Source: APXvYqx5/IpXmYc9IJ2lbqL1rocJTW9fAcm1iXrPUWbCdwekTChz9I4Bf4+cyIFhb82dOxMS3bI2 X-Received: by 2002:a62:a50c:: with SMTP id v12mr26927660pfm.206.1553550325017; Mon, 25 Mar 2019 14:45:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553550325; cv=none; d=google.com; s=arc-20160816; b=KTJxMbm0uCvejxZSJ2AoY8wJ9HLv5KJVZwuhxxFV2l8/wZAGhFJ21ZQa1tllGeHjHl gLtixpp/6mgzUubac3ceg/TPCr9vM5O7BSOrFgENOQ05JF/pnccRd0vTCxO0tVco7z3s yQyejGgw/cR9F+vkRvARjp0rlng0v1HwrpYTr/4qMTW1fNvWPZgD2WCLe7kDMI7SBD9s 86G9louW13nj93oAxfIIiXlSE/So+XAd0/1aIiUKgQq6eBMMet12GMmyEAM0B85QEPi5 ncugGBmt+VvxAS7dBc4hB5NRQUoxEBDAV85RVnoePuuO32INcycavQPJ7ztPH9P9bZIE 4eHw== 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=v9f2CUwkY0ehsf5GIhAe8PIU0OAiB6iscR24tZqHS9U=; b=ZBKsEU54TWzSm2px+ovsKqSbeH8wl2sd1kgwDz3pLJezqMQ/JHv0sRZQd9NhFLsUDc RkmYBm7ITojbf3QkrAY0WfdpCF48zWgYgfT6ewsoL2npS03/sHuamXH5yIZZ+tPrTin8 zwuFehTMEW1eXiDNjmUE+YBHLRlUFJ3Hj1VWPcti1amtWFbZX7Ca5H6xTPbgVnrV9J59 We/Kv86M1Gs7p/eT5c1eEC/SqL52P0TGi7pIL5jd1m/a5J9AdeWf+vczyK7gxyQzyGo8 I8dMbA4abAKzo2U8RRs/qqjiHOtyAyioxuGAuLaPMI0YA0+E2W7aJ46gUgdIvuAOLBMw yL8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=cCLg3bRH; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f36si647261pgf.332.2019.03.25.14.45.09; Mon, 25 Mar 2019 14:45:25 -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; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=cCLg3bRH; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730407AbfCYVnL (ORCPT + 99 others); Mon, 25 Mar 2019 17:43:11 -0400 Received: from mail-ot1-f67.google.com ([209.85.210.67]:38735 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730354AbfCYVnK (ORCPT ); Mon, 25 Mar 2019 17:43:10 -0400 Received: by mail-ot1-f67.google.com with SMTP id e80so9551819ote.5 for ; Mon, 25 Mar 2019 14:43:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=v9f2CUwkY0ehsf5GIhAe8PIU0OAiB6iscR24tZqHS9U=; b=cCLg3bRH/Dy3O0z+d50AG1M5DOB/nWHE3BZZ3HHa5R4n4reZu85uIYiHGaD8zve3Ch xZSWKRPMXCABbPLm08SNYOQJE6c+582dHw90hmHzgQKvCm4yQA4HzyIN4PW/tJFqnY61 3Nrb6zATKnI3DnAsIXemyZlXaD2v7awzk4i80AKcFbjBkIV9M2spVewZZwXQckXAoZOY ey9IBf9Mexn7YL/5YX09wFO2d3NeDAWLapFGNv+f1tiDk2bBJmfLw1PLljmIV4jLS8+o 2qjGNP61955Lj/FvX+yoI717svfRKiFljjad67gAfZqYIOq69/CuUpQHpTGh9vUda6qq CtaA== 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=v9f2CUwkY0ehsf5GIhAe8PIU0OAiB6iscR24tZqHS9U=; b=ILVZ+MlJrMvBbe3k7QuDz/dP7GGMJwZSWgx0gLCpgKQl8e8ntijhmNhXYg3+22Q9QI vw1CS8RUERBEa11lf+vlgq3tbh1N7pIwAhJxpIrQvRL+M7YtCVD2sr5WQBSNb8RrZXiE 5Vu9IwmZyuMnoUHwXOyuTqFT84GpAnnw/a0TROsuKOotybXbkmATNzKgH97gEjfI3PyA GAPmdqyd5HLYO+GaALm1qs+fz+Aog0g6hfxUtPIgpXiUMzMrNwXK/hDb7mO2q08mJVUh rDL22HjMK9qNh4QXzypnkT+nS84e1u9R0j4YYv8OsDXfbbsEuguqvpRqkP0AXCaaJVEk vMxQ== X-Gm-Message-State: APjAAAXd5+8OKaydco+FiaesOb1CBHFJhWF6iGIK5ngBTibIjyd2SeXo /BJRx8KDhmB+p5DLSXqv/lQCIywMk7EGSzZgTOkb9w== X-Received: by 2002:a9d:224a:: with SMTP id o68mr20484188ota.214.1553550189891; Mon, 25 Mar 2019 14:43:09 -0700 (PDT) MIME-Version: 1.0 References: <20190325213618.12139-1-pakki001@umn.edu> In-Reply-To: <20190325213618.12139-1-pakki001@umn.edu> From: Dan Williams Date: Mon, 25 Mar 2019 14:42:58 -0700 Message-ID: Subject: Re: [PATCH v3] nvdimm: btt_devs: fix a NULL pointer dereference To: Aditya Pakki Cc: Kangjie Lu , Vishal Verma , Dave Jiang , Keith Busch , Ira Weiny , linux-nvdimm , Linux Kernel Mailing List 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 Mon, Mar 25, 2019 at 2:36 PM Aditya Pakki wrote: > > In case kmemdup fails, the fix releases resources and returns to > avoid the NULL pointer dereference. > > Signed-off-by: Aditya Pakki > > --- > v2: Replace incorrect kfree with ida_simple_remove, suggested by > Johannes Thumshirn > v1: Free nd_btt->id in case of failure and avoid double free, suggested > by Dan Williams > --- > drivers/nvdimm/btt_devs.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/nvdimm/btt_devs.c b/drivers/nvdimm/btt_devs.c > index b72a303176c7..f73fb5fdc93f 100644 > --- a/drivers/nvdimm/btt_devs.c > +++ b/drivers/nvdimm/btt_devs.c > @@ -204,8 +204,11 @@ static struct device *__nd_btt_create(struct nd_region *nd_region, > } > > nd_btt->lbasize = lbasize; > - if (uuid) > + if (uuid) { > uuid = kmemdup(uuid, 16, GFP_KERNEL); > + if (!uuid) > + goto out_put_id; > + } > nd_btt->uuid = uuid; > dev = &nd_btt->dev; > dev_set_name(dev, "btt%d.%d", nd_region->id, nd_btt->id); > @@ -220,6 +223,11 @@ static struct device *__nd_btt_create(struct nd_region *nd_region, > return NULL; > } > return dev; > + > +out_put_id: > + ida_simple_remove(&nd_region->btt_ida, nd_btt->id); > + kfree(nd_btt); There's still 2 calls to "kfree(nd_btt)" when only one is needed. Please route them both to the same call.