net: dsa: felix: fix possible NULL pointer dereference
authorZheng Yongjun <zhengyongjun3@huawei.com>
Tue, 29 Mar 2022 09:08:00 +0000 (09:08 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 30 Mar 2022 19:07:38 +0000 (12:07 -0700)
As the possible failure of the allocation, kzalloc() may return NULL
pointer.
Therefore, it should be better to check the 'sgi' in order to prevent
the dereference of NULL pointer.

Fixes: 23ae3a7877718 ("net: dsa: felix: add stream gate settings for psfp").
Signed-off-by: Zheng Yongjun <zhengyongjun3@huawei.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://lore.kernel.org/r/20220329090800.130106-1-zhengyongjun3@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/ocelot/felix_vsc9959.c

index 62d52e0..8d382b2 100644 (file)
@@ -1928,6 +1928,10 @@ static int vsc9959_psfp_filter_add(struct ocelot *ocelot, int port,
                case FLOW_ACTION_GATE:
                        size = struct_size(sgi, entries, a->gate.num_entries);
                        sgi = kzalloc(size, GFP_KERNEL);
+                       if (!sgi) {
+                               ret = -ENOMEM;
+                               goto err;
+                       }
                        vsc9959_psfp_parse_gate(a, sgi);
                        ret = vsc9959_psfp_sgi_table_add(ocelot, sgi);
                        if (ret) {