mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 14:38:58 +00:00
test: eth: Don't crash if env_get returns NULL
env_get can return NULL if it fails to find the variable. Check its result before using it. Fixes:6d9764c2a8
("dm: test: Add a new test case against dm eth codes for NULL pointer access") Fixes:df33fd2889
("test: eth: Add test for ethernet addresses") Signed-off-by: Sean Anderson <seanga2@gmail.com>
This commit is contained in:
parent
1125e291fb
commit
2a1812de20
1 changed files with 10 additions and 2 deletions
|
@ -263,12 +263,16 @@ static int dm_test_eth_act(struct unit_test_state *uts)
|
|||
|
||||
/* Prepare the test scenario */
|
||||
for (i = 0; i < DM_TEST_ETH_NUM; i++) {
|
||||
char *addr;
|
||||
|
||||
ut_assertok(uclass_find_device_by_name(UCLASS_ETH,
|
||||
ethname[i], &dev[i]));
|
||||
ut_assertok(device_remove(dev[i], DM_REMOVE_NORMAL));
|
||||
|
||||
/* Invalidate MAC address */
|
||||
strncpy(ethaddr[i], env_get(addrname[i]), 17);
|
||||
addr = env_get(addrname[i]);
|
||||
ut_assertnonnull(addr);
|
||||
strncpy(ethaddr[i], addr, 17);
|
||||
/* Must disable access protection for ethaddr before clearing */
|
||||
env_set(".flags", addrname[i]);
|
||||
env_set(addrname[i], NULL);
|
||||
|
@ -312,12 +316,16 @@ static int dm_test_ethaddr(struct unit_test_state *uts)
|
|||
|
||||
for (i = 0; i < ARRAY_SIZE(addr); i++) {
|
||||
char addrname[10];
|
||||
char *env_addr;
|
||||
|
||||
if (i)
|
||||
snprintf(addrname, sizeof(addrname), "eth%daddr", i + 1);
|
||||
else
|
||||
strcpy(addrname, "ethaddr");
|
||||
ut_asserteq_str(addr[i], env_get(addrname));
|
||||
|
||||
env_addr = env_get(addrname);
|
||||
ut_assertnonnull(env_addr);
|
||||
ut_asserteq_str(addr[i], env_addr);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue