From f5e5c506af0c1e52706c5ed484c469d2dac5725b Mon Sep 17 00:00:00 2001 From: Lexi Quinn Date: Wed, 19 Jul 2023 01:45:26 +1000 Subject: [PATCH] fixed a dumb buffer overflow i think --- src2/server.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src2/server.c b/src2/server.c index 7b9c600..d2e0d5c 100644 --- a/src2/server.c +++ b/src2/server.c @@ -215,19 +215,19 @@ void loadFiles() char *x = fgets(buff, 255, fp); if (buff[0] == '/' && buff[1] == '/' || buff[0] == '\n') continue; - if (!strcmp(buff, "Segment") || !strcmp(buff, "Route") || x == NULL) + if (!strcmp(buff, "Segment\n") || !strcmp(buff, "Route\n") || x == NULL) break; fgets(buff2, 255, fp); if (buff2[0] == '\t') { valuecount++; names = realloc(names, sizeof(char*) * valuecount); - names[valuecount - 1] = malloc(strlen(buff) - 1); + names[valuecount - 1] = malloc(strlen(buff)); strncpy(names[valuecount - 1], buff, strlen(buff) - 1); names[valuecount - 1][strlen(buff)] = '\0'; values = realloc(values, sizeof(char*) * valuecount); - values[valuecount - 1] = malloc(strlen(buff2) - 2); + values[valuecount - 1] = malloc(strlen(buff2) - 1); strncpy(values[valuecount - 1], buff2 + 1, strlen(buff2) - 1); values[valuecount - 1][strlen(buff2)] = '\0'; }