diff options
author | OpenGnSys Support Team <soporte-og@soleta.eu> | 2020-04-08 14:25:41 +0200 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2020-04-08 14:29:37 +0200 |
commit | db2e57f75acb73952f1227d071e81713423ef811 (patch) | |
tree | 136aad0de294c50eea37487cdab2f9ce81573c7a | |
parent | d9b24135c7af8e0b099ceb71b3b355e963344cf8 (diff) |
#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)
-rw-r--r-- | admin/Sources/Includes/ogAdmLib.c | 6 |
1 files 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 |