]> www.infradead.org Git - nvme.git/commitdiff
net: microchip: vcap: Fix use-after-free error in kunit test
authorJens Emil Schulz Østergaard <jensemil.schulzostergaard@microchip.com>
Thu, 29 Aug 2024 09:52:54 +0000 (11:52 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Sep 2024 09:35:17 +0000 (10:35 +0100)
This is a clear use-after-free error. We remove it, and rely on checking
the return code of vcap_del_rule.

Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/kernel-janitors/7bffefc6-219a-4f71-baa0-ad4526e5c198@kili.mountain/
Fixes: c956b9b318d9 ("net: microchip: sparx5: Adding KUNIT tests of key/action values in VCAP API")
Signed-off-by: Jens Emil Schulz Østergaard <jensemil.schulzostergaard@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c

index 51d9423b08a63aec1277c46a96c0a2c915f4e19a..f2a5a36fdacd4384b7f101e92df0074729ec4032 100644 (file)
@@ -1442,18 +1442,8 @@ static void vcap_api_encode_rule_test(struct kunit *test)
        vcap_enable_lookups(&test_vctrl, &test_netdev, 0, 0,
                            rule->cookie, false);
 
-       vcap_free_rule(rule);
-
-       /* Check that the rule has been freed: tricky to access since this
-        * memory should not be accessible anymore
-        */
-       KUNIT_EXPECT_PTR_NE(test, NULL, rule);
-       ret = list_empty(&rule->keyfields);
-       KUNIT_EXPECT_EQ(test, true, ret);
-       ret = list_empty(&rule->actionfields);
-       KUNIT_EXPECT_EQ(test, true, ret);
-
-       vcap_del_rule(&test_vctrl, &test_netdev, id);
+       ret = vcap_del_rule(&test_vctrl, &test_netdev, id);
+       KUNIT_EXPECT_EQ(test, 0, ret);
 }
 
 static void vcap_api_set_rule_counter_test(struct kunit *test)