[PATCH 1/1] test: NULL dereference in test-uclass

Heinrich Schuchardt xypron.glpk at gmx.de
Thu Jun 3 22:08:16 CEST 2021


If a test-uclass device is probed outside a test, uts is not defined.
Avoid a NULL dereference in this case.

Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
 test/dm/test-uclass.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/test/dm/test-uclass.c b/test/dm/test-uclass.c
index 067701734a..d2d1e0f190 100644
--- a/test/dm/test-uclass.c
+++ b/test/dm/test-uclass.c
@@ -32,6 +32,9 @@ static int test_post_bind(struct udevice *dev)
 	struct unit_test_state *uts = test_get_state();
 	struct dm_test_perdev_uc_pdata *uc_pdata;

+	if (!uts)
+		return 0;
+
 	dm_testdrv_op_count[DM_TEST_OP_POST_BIND]++;
 	ut_assert(!device_active(dev));

@@ -57,6 +60,9 @@ static int test_pre_probe(struct udevice *dev)
 	test-uclass.cstruct dm_test_uclass_perdev_priv *priv = dev_get_uclass_priv(dev);
 	struct unit_test_state *uts = test_get_state();

+	if (!uts)
+		return 0;
+
 	dm_testdrv_op_count[DM_TEST_OP_PRE_PROBE]++;
 	ut_assert(priv);
 	ut_assert(device_active(dev));
@@ -70,6 +76,9 @@ static int test_post_probe(struct udevice *dev)
 	struct udevice *prev = list_entry(dev->uclass_node.prev,
 					    struct udevice, uclass_node);

+	if (!uts)
+		return 0;
+
 	struct dm_test_uclass_perdev_priv *priv = dev_get_uclass_priv(dev);
 	struct uclass *uc = dev->uclass;

@@ -103,6 +112,9 @@ static int test_init(struct uclass *uc)
 {
 	struct unit_test_state *uts = test_get_state();

+	if (!uts)
+		return 0;
+
 	dm_testdrv_op_count[DM_TEST_OP_INIT]++;
 	ut_assert(uclass_get_priv(uc));

--
2.30.2



More information about the U-Boot mailing list