From: Zhou Qingyang Date: Mon, 24 Jan 2022 16:45:25 +0000 (+0800) Subject: ata: pata_platform: Fix a NULL pointer dereference in __pata_platform_probe() X-Git-Tag: v6.1-rc5~2121^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9b6d90e2085ca2ce72ef9ea78658bf270855e62e;p=platform%2Fkernel%2Flinux-starfive.git ata: pata_platform: Fix a NULL pointer dereference in __pata_platform_probe() In __pata_platform_probe(), devm_kzalloc() is assigned to ap->ops and there is a dereference of it right after that, which could introduce a NULL pointer dereference bug. Fix this by adding a NULL check of ap->ops. This bug was found by a static analyzer. Builds with 'make allyesconfig' show no new warnings, and our static analyzer no longer warns about this code. Fixes: f3d5e4f18dba ("ata: pata_of_platform: Allow to use 16-bit wide data transfer") Signed-off-by: Zhou Qingyang Signed-off-by: Damien Le Moal Reviewed-by: Sergey Shtylyov --- diff --git a/drivers/ata/pata_platform.c b/drivers/ata/pata_platform.c index 0283294..87c7c90 100644 --- a/drivers/ata/pata_platform.c +++ b/drivers/ata/pata_platform.c @@ -128,6 +128,8 @@ int __pata_platform_probe(struct device *dev, struct resource *io_res, ap = host->ports[0]; ap->ops = devm_kzalloc(dev, sizeof(*ap->ops), GFP_KERNEL); + if (!ap->ops) + return -ENOMEM; ap->ops->inherits = &ata_sff_port_ops; ap->ops->cable_detect = ata_cable_unknown; ap->ops->set_mode = pata_platform_set_mode;