ndctl/0214-cxl-region-fix-a-dereferecnce-after-NULL-check.patch
Jeff Moyer 2c91dc1bcd Backport changes up to v74, excluding the config file changes
This includes support for the CXL commands, and adds the following
packages: cxl-cli, cxl-devel, cxl-libs.

Resolves: rhbz#2132167
2022-10-13 16:55:42 -04:00

40 lines
1.4 KiB
Diff

From cc2766399882001880a899e723c7bd968e60f100 Mon Sep 17 00:00:00 2001
From: Vishal Verma <vishal.l.verma@intel.com>
Date: Tue, 23 Aug 2022 01:45:25 -0600
Subject: [PATCH 214/217] cxl/region: fix a dereferecnce after NULL check
A NULL check in region_action() implies that 'decoder' might be NULL, but
later we dereference it during cxl_decoder_foreach(). The NULL check is
valid because it was the filter result being checked, however, while
doing this, the original 'decoder' variable was being clobbered.
Check the filter results independently of the original decoder variable.
Link: https://lore.kernel.org/r/20220823074527.404435-2-vishal.l.verma@intel.com
Cc: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
---
cxl/region.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/cxl/region.c b/cxl/region.c
index a30313c..334fcc2 100644
--- a/cxl/region.c
+++ b/cxl/region.c
@@ -686,9 +686,8 @@ static int region_action(int argc, const char **argv, struct cxl_ctx *ctx,
continue;
cxl_decoder_foreach (port, decoder) {
- decoder = util_cxl_decoder_filter(decoder,
- param.root_decoder);
- if (!decoder)
+ if (!util_cxl_decoder_filter(decoder,
+ param.root_decoder))
continue;
rc = decoder_region_action(p, decoder, action, count);
if (rc)
--
2.27.0