test-runner: fix crash if ofono is not installed

The goto was jumping to a label which freed the wiphy list which
had not yet been initialized. This also fixes another similar issue
if chdir fails (in this case tmpfs_extra_stuff would get freed
before being allocated).
This commit is contained in:
James Prestwood 2020-03-16 12:22:39 -07:00 committed by Denis Kenzior
parent af2147fbde
commit 37886066d8
1 changed files with 5 additions and 4 deletions

View File

@ -2073,7 +2073,7 @@ static void create_network_and_run_tests(void *data, void *user_data)
if (chdir(config_dir_path) < 0) {
l_error("Failed to change to test directory: %s",
strerror(errno));
goto exit_hwsim;
goto free_hw_settings;
}
tmpfs_extra_stuff =
@ -2097,7 +2097,7 @@ static void create_network_and_run_tests(void *data, void *user_data)
if (!ofono_found || !phonesim_found) {
l_info("ofono or phonesim not found, skipping");
goto exit_hwsim;
goto free_tmpfs_extra;
}
ofono_req = true;
@ -2268,7 +2268,6 @@ exit_hostapd:
remove_abs_paths:
remove_absolute_path_dirs(tmpfs_extra_stuff);
exit_hwsim:
/*
* If running in hwsim mode, we want to completely free/destroy the
* wiphy list since it will be re-populated on the next test. For the
@ -2280,8 +2279,10 @@ exit_hwsim:
else
l_queue_foreach(wiphy_list, wiphy_reset, NULL);
l_settings_free(hw_settings);
free_tmpfs_extra:
l_strfreev(tmpfs_extra_stuff);
free_hw_settings:
l_settings_free(hw_settings);
}
struct stat_totals {