wpa_cli: Fix NULL dereference on printf string argument
In wpa_cli_cmd_interface(), try_connection(), and main(), ctrl_ifname may be NULL and could be dereferenced depending on the printf() implementation. Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com>
This commit is contained in:
parent
414f23d8b9
commit
30f459c098
1 changed files with 8 additions and 2 deletions
|
@ -1577,6 +1577,10 @@ static int wpa_cli_cmd_interface(struct wpa_ctrl *ctrl, int argc, char *argv[])
|
||||||
wpa_cli_close_connection();
|
wpa_cli_close_connection();
|
||||||
os_free(ctrl_ifname);
|
os_free(ctrl_ifname);
|
||||||
ctrl_ifname = os_strdup(argv[0]);
|
ctrl_ifname = os_strdup(argv[0]);
|
||||||
|
if (!ctrl_ifname) {
|
||||||
|
printf("Failed to allocate memory\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (wpa_cli_open_connection(ctrl_ifname, 1) == 0) {
|
if (wpa_cli_open_connection(ctrl_ifname, 1) == 0) {
|
||||||
printf("Connected to interface '%s.\n", ctrl_ifname);
|
printf("Connected to interface '%s.\n", ctrl_ifname);
|
||||||
|
@ -3743,7 +3747,8 @@ static void try_connection(void *eloop_ctx, void *timeout_ctx)
|
||||||
if (!wpa_cli_open_connection(ctrl_ifname, 1) == 0) {
|
if (!wpa_cli_open_connection(ctrl_ifname, 1) == 0) {
|
||||||
if (!warning_displayed) {
|
if (!warning_displayed) {
|
||||||
printf("Could not connect to wpa_supplicant: "
|
printf("Could not connect to wpa_supplicant: "
|
||||||
"%s - re-trying\n", ctrl_ifname);
|
"%s - re-trying\n",
|
||||||
|
ctrl_ifname ? ctrl_ifname : "(nil)");
|
||||||
warning_displayed = 1;
|
warning_displayed = 1;
|
||||||
}
|
}
|
||||||
eloop_register_timeout(1, 0, try_connection, NULL, NULL);
|
eloop_register_timeout(1, 0, try_connection, NULL, NULL);
|
||||||
|
@ -4004,7 +4009,8 @@ int main(int argc, char *argv[])
|
||||||
wpa_cli_open_connection(ctrl_ifname, 0) < 0) {
|
wpa_cli_open_connection(ctrl_ifname, 0) < 0) {
|
||||||
fprintf(stderr, "Failed to connect to non-global "
|
fprintf(stderr, "Failed to connect to non-global "
|
||||||
"ctrl_ifname: %s error: %s\n",
|
"ctrl_ifname: %s error: %s\n",
|
||||||
ctrl_ifname, strerror(errno));
|
ctrl_ifname ? ctrl_ifname : "(nil)",
|
||||||
|
strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue