From patchwork Tue Aug 23 07:21:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Verma, Vishal L" X-Patchwork-Id: 12951797 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A878FA54 for ; Tue, 23 Aug 2022 07:21:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1661239273; x=1692775273; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=5Jo0M7JLkpca4mmJEMDx0p2jux4rGpK3VNeWC/VQ7yw=; b=IAadiUcJS+QyCcCcYbLRQ3OQZiLmXjFOsbiOKBJjkBiJAnA1GGsAjiiD yDMWpolZQuaiBWQiInyrkPYotxnXFj8IpJQA/hntweMtUnHR2uFazP7U5 wTc15sxAZis6QAp6tZCH4QyUZOm8mS9HFMTmhbwv+vJREpFWoEDA9dcuQ Rx0C/TKbNVwEeT5XTNhvIHY8VKt9HjX/4o4BU/idrGTjiedAbpdjzo7WA /CUH5tC3KwQc89a0oYalxelsjFx07nFDPDPaTWy46VATqapna+91FqfiX UXfiin/5KW5z6kZ+FPPXOV4BiXGTwZToPwgQowR0kcUJMzvcbykoyXNXS w==; X-IronPort-AV: E=McAfee;i="6500,9779,10447"; a="293612573" X-IronPort-AV: E=Sophos;i="5.93,256,1654585200"; d="scan'208";a="293612573" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Aug 2022 00:21:11 -0700 X-IronPort-AV: E=Sophos;i="5.93,256,1654585200"; d="scan'208";a="735388584" Received: from skummith-mobl1.amr.corp.intel.com (HELO vverma7-desk1.intel.com) ([10.212.54.206]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Aug 2022 00:21:10 -0700 From: Vishal Verma To: Cc: , Dan Williams , Vishal Verma Subject: [ndctl PATCH 1/3] cxl/region: fix a dereferecnce after NULL check Date: Tue, 23 Aug 2022 01:21:04 -0600 Message-Id: <20220823072106.398076-2-vishal.l.verma@intel.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220823072106.398076-1-vishal.l.verma@intel.com> References: <20220823072106.398076-1-vishal.l.verma@intel.com> Precedence: bulk X-Mailing-List: nvdimm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=883; h=from:subject; bh=5Jo0M7JLkpca4mmJEMDx0p2jux4rGpK3VNeWC/VQ7yw=; b=owGbwMvMwCXGf25diOft7jLG02pJDMks9Q/vFNl6f34hmd2mvmcNY2JsUeXKykN/+idtltedUO/F e+haRykLgxgXg6yYIsvfPR8Zj8ltz+cJTHCEmcPKBDKEgYtTACYScJrhD9+ehh/CqvfVONjkfbT3st 1INxBqdxd6cHprX0v6a6HTqQz/PWtf5HlzJDyfJx/1Sr9IybKqQDe3uudrmNM0AYdtLvlMAA== X-Developer-Key: i=vishal.l.verma@intel.com; a=openpgp; fpr=F8682BE134C67A12332A2ED07AFA61BEA3B84DFF A NULL check in region_action() implies that 'decoder' might be NULL, but later we dereference it during cxl_decoder_foreach(). Since cxl_decoder_foreach() won't ever enter the loop with a NULL decoder, the check was superfluous. Remove it. Cc: Dan Williams Signed-off-by: Vishal Verma --- cxl/region.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/cxl/region.c b/cxl/region.c index a30313c..9372d6b 100644 --- a/cxl/region.c +++ b/cxl/region.c @@ -688,8 +688,6 @@ static int region_action(int argc, const char **argv, struct cxl_ctx *ctx, cxl_decoder_foreach (port, decoder) { decoder = util_cxl_decoder_filter(decoder, param.root_decoder); - if (!decoder) - continue; rc = decoder_region_action(p, decoder, action, count); if (rc) err_rc = rc; From patchwork Tue Aug 23 07:21:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Verma, Vishal L" X-Patchwork-Id: 12951798 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 015F0A3B for ; Tue, 23 Aug 2022 07:21:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1661239274; x=1692775274; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=L8XrefDPQMXBCMvyyrEG92ZKAXZ8Ao9a9bnYvHgSICM=; b=NT7B6HX2VnoQYrRcZN3J2EC9MrPDRMRPHg+oDa89p/Li53Wz82D0/xlS +ODH+6qSkxMc4CYUo8w1/XJSp60zw658aoMb4UvgqK+sjy7qpNHbOF1KQ VDgLquYoBXupb5wVa529DYm6Gmpg6nqMA47Q7+LACQ3laxXVPq8EvnaGa vFf/9lGRMA0QBXwvBvar5Qzdwp3RPRkvYUbqPU1UYMFmLgyOVrtzH+fBf xMF8DuiUs8uON6XkZXGdegZFlzynugF1vYB5HbokctnbsShxkEBs2qUX6 wSCDwW9bn0cXhfr9XfjSYIuOwEByaM7f0B2vLwFOfXbswvaD/gJBJkzGU A==; X-IronPort-AV: E=McAfee;i="6500,9779,10447"; a="293612575" X-IronPort-AV: E=Sophos;i="5.93,256,1654585200"; d="scan'208";a="293612575" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Aug 2022 00:21:11 -0700 X-IronPort-AV: E=Sophos;i="5.93,256,1654585200"; d="scan'208";a="735388587" Received: from skummith-mobl1.amr.corp.intel.com (HELO vverma7-desk1.intel.com) ([10.212.54.206]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Aug 2022 00:21:10 -0700 From: Vishal Verma To: Cc: , Dan Williams , Vishal Verma Subject: [ndctl PATCH 2/3] libcxl: fox a resource leak and a forward NULL check Date: Tue, 23 Aug 2022 01:21:05 -0600 Message-Id: <20220823072106.398076-3-vishal.l.verma@intel.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220823072106.398076-1-vishal.l.verma@intel.com> References: <20220823072106.398076-1-vishal.l.verma@intel.com> Precedence: bulk X-Mailing-List: nvdimm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1127; h=from:subject; bh=L8XrefDPQMXBCMvyyrEG92ZKAXZ8Ao9a9bnYvHgSICM=; b=owGbwMvMwCXGf25diOft7jLG02pJDMks9Y8+bmosbnrrefe1xLyNMsskFpv943997/nk+aH6rCJi 3kkTOkpZGMS4GGTFFFn+7vnIeExuez5PYIIjzBxWJpAhDFycAjAR172MDEfk3G3sxS9w/eQ5/7n+0u ErPGK7SpnEGfIvr2m+fjzVdwEjw5Y762583Lqt347LweDyq2d8dwQqZS5lZ2yUWO0V03HQnhUA X-Developer-Key: i=vishal.l.verma@intel.com; a=openpgp; fpr=F8682BE134C67A12332A2ED07AFA61BEA3B84DFF Static analysis reports a couple of issues in add_cxl_region(). Firstly, 'path' wasn't freed in the success case, only in the error case. Secondly, the error handling after 'calloc()'ing the region object erroneously jumped to the error path which tried to free the region object, instead of directly returning NULL. Cc: Dan Williams Signed-off-by: Vishal Verma --- cxl/lib/libcxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cxl/lib/libcxl.c b/cxl/lib/libcxl.c index 021d59f..9945fd1 100644 --- a/cxl/lib/libcxl.c +++ b/cxl/lib/libcxl.c @@ -482,7 +482,7 @@ static void *add_cxl_region(void *parent, int id, const char *cxlregion_base) region = calloc(1, sizeof(*region)); if (!region) - goto err; + return NULL; region->id = id; region->ctx = ctx; @@ -551,6 +551,7 @@ static void *add_cxl_region(void *parent, int id, const char *cxlregion_base) list_add_sorted(&decoder->regions, region, list, region_start_cmp); + free(path); return region; err: free(region->dev_path); From patchwork Tue Aug 23 07:21:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Verma, Vishal L" X-Patchwork-Id: 12951799 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6467BA5E for ; Tue, 23 Aug 2022 07:21:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1661239275; x=1692775275; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8rJ8gEEBtVLYGXTt1L5arjJ8aeJKmNlD+4PYtRRCVes=; b=jH7tHIABZfK2P7+j2KGCzAfq1gVQZ2Sl968fHTFo+A6JOunH9dLMjC33 QuMiryUVhWvK4RKxJMRsgolv9i0KKXG5y4rzy32tqAzNsuZjdDj2bmDoU XDIYjfInaVAc+3EMNNrnmiIAL+wjk+AFOGWV72YQNe5U8yzyAye/2c8LL razWtWO2SzDRpSHoI1mD7DyT4AKua9H/HSeJe+J0KQMvvc9P6vcZRQs6V VRRe6Rg7gTVIOH38Lgh0IBIGqpSCJT8HF3L3RI8ntcitpuX5LT0hgtR6J YNtte5aEIoDOcQCugKYrJdzpgPO5Ygq5bAra8d35IeL3HUFc4Uel8GbzR w==; X-IronPort-AV: E=McAfee;i="6500,9779,10447"; a="293612577" X-IronPort-AV: E=Sophos;i="5.93,256,1654585200"; d="scan'208";a="293612577" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Aug 2022 00:21:11 -0700 X-IronPort-AV: E=Sophos;i="5.93,256,1654585200"; d="scan'208";a="735388590" Received: from skummith-mobl1.amr.corp.intel.com (HELO vverma7-desk1.intel.com) ([10.212.54.206]) by orsmga004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Aug 2022 00:21:11 -0700 From: Vishal Verma To: Cc: , Dan Williams , Vishal Verma Subject: [ndctl PATCH 3/3] cxl/filter: Fix an uninitialized pointer dereference Date: Tue, 23 Aug 2022 01:21:06 -0600 Message-Id: <20220823072106.398076-4-vishal.l.verma@intel.com> X-Mailer: git-send-email 2.37.2 In-Reply-To: <20220823072106.398076-1-vishal.l.verma@intel.com> References: <20220823072106.398076-1-vishal.l.verma@intel.com> Precedence: bulk X-Mailing-List: nvdimm@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=837; h=from:subject; bh=8rJ8gEEBtVLYGXTt1L5arjJ8aeJKmNlD+4PYtRRCVes=; b=owGbwMvMwCXGf25diOft7jLG02pJDMks9Y82rpzD9XiPz/5/vlEpvj4ZhrEnntescBLlLH+lvv2L 0NGTHaUsDGJcDLJiiix/93xkPCa3PZ8nMMERZg4rE8gQBi5OAZjIF26G//XTtos/2bts0aWdBZu67K u9vihHn/V2i10ef3njrovLT5cx/A/f9Wu7/eOY2Gv8V9hlvoaa1UXqhR/Srv4bxPg4/KrfeUYA X-Developer-Key: i=vishal.l.verma@intel.com; a=openpgp; fpr=F8682BE134C67A12332A2ED07AFA61BEA3B84DFF Static analysis points out that there was a chance that 'jdecoder' could be used while uninitialized in walk_decoders(). Initialize it to NULL to avoid this. Cc: Dan Williams Signed-off-by: Vishal Verma --- cxl/filter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cxl/filter.c b/cxl/filter.c index 9a3de8c..56c6599 100644 --- a/cxl/filter.c +++ b/cxl/filter.c @@ -796,7 +796,7 @@ static void walk_decoders(struct cxl_port *port, struct cxl_filter_params *p, cxl_decoder_foreach(port, decoder) { const char *devname = cxl_decoder_get_devname(decoder); struct json_object *jchildregions = NULL; - struct json_object *jdecoder; + struct json_object *jdecoder = NULL; if (!p->decoders) goto walk_children;