summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWentao Liang <vulab@iscas.ac.cn>2026-04-08 15:45:34 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-07-04 13:45:07 +0200
commit5e098e40e8bac43ed58645c10d5fad781966efe4 (patch)
tree0974343c5c1cdf5c3300bad7c99fbc3e0f964557
parent0405a65e4ebd9eac13a765f9f02ac05851ca5421 (diff)
downloadlinux-stable-5e098e40e8bac43ed58645c10d5fad781966efe4.tar.gz
linux-stable-5e098e40e8bac43ed58645c10d5fad781966efe4.zip
fpga: region: fix use-after-free in child_regions_with_firmware()
commit 54f3c5643ec523a04b6ec0e7c19eb10f5ebebdd3 upstream. Move of_node_put(child_region) after the error print to avoid accessing freed memory when pr_err() references child_region. Fixes: 0fa20cdfcc1f ("fpga: fpga-region: device tree control for FPGA") Cc: stable@vger.kernel.org Signed-off-by: Wentao Liang <vulab@iscas.ac.cn> [ Yilun: Fix the Fixes tag ] Reviewed-by: Xu Yilun <yilun.xu@intel.com> Link: https://lore.kernel.org/r/20260408154534.404327-1-vulab@iscas.ac.cn Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/fpga/of-fpga-region.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/fpga/of-fpga-region.c b/drivers/fpga/of-fpga-region.c
index caa091224dc5..9107a5b461d3 100644
--- a/drivers/fpga/of-fpga-region.c
+++ b/drivers/fpga/of-fpga-region.c
@@ -168,11 +168,10 @@ static int child_regions_with_firmware(struct device_node *overlay)
fpga_region_of_match);
}
- of_node_put(child_region);
-
if (ret)
pr_err("firmware-name not allowed in child FPGA region: %pOF",
child_region);
+ of_node_put(child_region);
return ret;
}