| From bc2a5dd5a967bcb828e3c1ce4689aff0caa8a3ac Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 29 Mar 2022 09:08:00 +0000 |
| Subject: net: dsa: felix: fix possible NULL pointer dereference |
| |
| From: Zheng Yongjun <zhengyongjun3@huawei.com> |
| |
| [ Upstream commit 866b7a278cdb51eb158cd8513bc7438fc857804a ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/dsa/ocelot/felix_vsc9959.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/drivers/net/dsa/ocelot/felix_vsc9959.c b/drivers/net/dsa/ocelot/felix_vsc9959.c |
| index 33f0ceae381d..2875b5250856 100644 |
| --- a/drivers/net/dsa/ocelot/felix_vsc9959.c |
| +++ b/drivers/net/dsa/ocelot/felix_vsc9959.c |
| @@ -1940,6 +1940,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) { |
| -- |
| 2.35.1 |
| |