aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorQasim Ijaz <qasdev00@gmail.com>2025-03-14 23:01:02 +0000
committerJoerg Roedel <jroedel@suse.de>2025-03-20 08:59:15 +0100
commitb8741496c058c6d65d09799081158d1593554638 (patch)
tree1da2ebaa1ea42d63e06bd70c88fc57e8ed012b35
parentiommu: apple-dart: Allow mismatched bypass support (diff)
downloadwireguard-linux-b8741496c058c6d65d09799081158d1593554638.tar.xz
wireguard-linux-b8741496c058c6d65d09799081158d1593554638.zip
iommu: apple-dart: fix potential null pointer deref
If kzalloc() fails, accessing cfg->supports_bypass causes a null pointer dereference. Fix by checking for NULL immediately after allocation and returning -ENOMEM. Fixes: 3bc0102835f6 ("iommu: apple-dart: Allow mismatched bypass support") Signed-off-by: Qasim Ijaz <qasdev00@gmail.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Link: https://lore.kernel.org/r/20250314230102.11008-1-qasdev00@gmail.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to '')
-rw-r--r--drivers/iommu/apple-dart.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c
index 13ccb801f52a..e13501541fdd 100644
--- a/drivers/iommu/apple-dart.c
+++ b/drivers/iommu/apple-dart.c
@@ -797,12 +797,11 @@ static int apple_dart_of_xlate(struct device *dev,
if (!cfg) {
cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
-
+ if (!cfg)
+ return -ENOMEM;
/* Will be ANDed with DART capabilities */
cfg->supports_bypass = true;
}
- if (!cfg)
- return -ENOMEM;
dev_iommu_priv_set(dev, cfg);
cfg_dart = cfg->stream_maps[0].dart;