#990 fix crash in wol with malformed IP address

==28831== 1 errors in context 1 of 2:
==28831== Invalid read of size 1
==28831==    at 0x55AC6FD: inet_aton (inet_addr.c:127)
==28831==    by 0x10ECCA: WakeUp (ogAdmServer.c:337)
==28831==    by 0x10EED6: Levanta (ogAdmServer.c:292)
==28831==    by 0x11651E: og_cmd_wol (rest.c:498)
==28831==    by 0x11651E: og_client_state_process_payload_rest (rest.c:3970)
==28831==    by 0x110CF3: og_client_read_cb (core.c:143)
==28831==    by 0x4E41D72: ev_invoke_pending (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0)
==28831==    by 0x4E453DD: ev_run (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0)
==28831==    by 0x10E3E5: ev_loop (ev.h:835)
==28831==    by 0x10E3E5: main (main.c:100)
==28831==  Address 0x0 is not stack'd, malloc'd or (recently) free'd

Use number of matching ip addresses in the database, skip if zero.
master
OpenGnSys Support Team 2021-03-30 13:55:33 +02:00
parent 1c2a0cad8b
commit a71cba4df1
1 changed files with 4 additions and 1 deletions

View File

@ -495,8 +495,11 @@ static int og_cmd_wol(json_t *element, struct og_msg_params *params)
dbi_result_free(result);
og_dbi_close(dbi);
if (i == 0)
return 0;
if (!Levanta((char **)params->ips_array, (char **)params->mac_array,
(char **)params->netmask_array, params->ips_array_len,
(char **)params->netmask_array, i,
(char *)params->wol_type))
return -1;