From db2e57f75acb73952f1227d071e81713423ef811 Mon Sep 17 00:00:00 2001 From: OpenGnSys Support Team Date: Wed, 8 Apr 2020 14:25:41 +0200 Subject: #580 invalid access to memory in contieneIP() valgrind reports incorrect access to memory: ==16622== 4000 errors in context 1 of 2: ==16622== Conditional jump or move depends on uninitialised value(s) ==16622== at 0x10C380: contieneIP (ogAdmLib.c:514) ==16622== by 0x10D842: clienteExistente (ogAdmServer.c:206) ==16622== by 0x10D743: clienteDisponible (ogAdmServer.c:173) ==16622== by 0x10FE62: og_send_cmd (ogAdmServer.c:1106) ==16622== by 0x114651: og_cmd_legacy_send (ogAdmServer.c:3159) ==16622== by 0x114795: og_cmd_post_clients (ogAdmServer.c:3188) ==16622== by 0x1193F5: og_client_state_process_payload_rest (ogAdmServer.c:4444) ==16622== by 0x11A354: og_client_read_cb (ogAdmServer.c:4728) ==16622== by 0x693ED72: ev_invoke_pending (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) ==16622== by 0x69423DD: ev_run (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) ==16622== by 0x10D19C: ev_loop (ev.h:835) ==16622== by 0x11AAED: main (ogAdmServer.c:4896) ==16622== Uninitialised value was created by a heap allocation ==16622== at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==16622== by 0x6B4D80A: ??? (in /usr/lib/x86_64-linux-gnu/libjansson.so.4.11.0) ==16622== by 0x6B4DDCB: ??? (in /usr/lib/x86_64-linux-gnu/libjansson.so.4.11.0) ==16622== by 0x6B4DCA6: ??? (in /usr/lib/x86_64-linux-gnu/libjansson.so.4.11.0) ==16622== by 0x6B4DF55: ??? (in /usr/lib/x86_64-linux-gnu/libjansson.so.4.11.0) ==16622== by 0x6B4E0CB: json_loads (in /usr/lib/x86_64-linux-gnu/libjansson.so.4.11.0) ==16622== by 0x1192F2: og_client_state_process_payload_rest (ogAdmServer.c:4425) ==16622== by 0x11A354: og_client_read_cb (ogAdmServer.c:4728) ==16622== by 0x693ED72: ev_invoke_pending (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) ==16622== by 0x69423DD: ev_run (in /usr/lib/x86_64-linux-gnu/libev.so.4.0.0) ==16622== by 0x10D19C: ev_loop (ev.h:835) ==16622== by 0x11AAED: main (ogAdmServer.c:4896) --- admin/Sources/Includes/ogAdmLib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/admin/Sources/Includes/ogAdmLib.c b/admin/Sources/Includes/ogAdmLib.c index 7faa9f08..2f0a714d 100644 --- a/admin/Sources/Includes/ogAdmLib.c +++ b/admin/Sources/Includes/ogAdmLib.c @@ -503,16 +503,16 @@ char* copiaParametro(const char*nombre,TRAMA* ptrTrama) BOOLEAN contieneIP(char *cadenaiph,char *ipcliente) { char *posa,*posb; - int lon; + int lon, i; posa=strstr(cadenaiph,ipcliente); if(posa==NULL) return(FALSE); // No existe la IP en la cadena posb=posa; // Iguala direcciones - while(TRUE){ - posb++; + for (i = 0; i < LONIP; i++) { if(*posb==';') break; if(*posb=='\0') break; if(*posb=='\r') break; + posb++; } lon=strlen(ipcliente); if((posb-posa)==lon) return(TRUE); // IP encontrada -- cgit v1.2.3-18-g5258