From a71cba4df1c0ba98d9db44cff45fcaa111e00430 Mon Sep 17 00:00:00 2001 From: OpenGnSys Support Team Date: Tue, 30 Mar 2021 13:55:33 +0200 Subject: #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. --- src/rest.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/rest.c b/src/rest.c index bedb3d5..81dfa7c 100644 --- a/src/rest.c +++ b/src/rest.c @@ -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; -- cgit v1.2.3-18-g5258