From 36622be167b96fc1292e2af8488df72fa2be378f Mon Sep 17 00:00:00 2001 From: Antoni Adaszkiewicz Date: Thu, 26 Jan 2023 16:10:22 +0100 Subject: [PATCH] delta-verifier.c: Fix minor bugs Use strncpy() rather than strcpy() and fix memory leaks. Change-Id: I389ecadac9aa3bd7c9ba41e8c8a411e833609165 --- delta-verifier/delta-verifier.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/delta-verifier/delta-verifier.c b/delta-verifier/delta-verifier.c index bab4f6e..635fb6f 100644 --- a/delta-verifier/delta-verifier.c +++ b/delta-verifier/delta-verifier.c @@ -172,13 +172,15 @@ static int write_info_from_file(FILE* read_file, FILE* write_file) read_word = strtok(NULL, separators); char lowercase_name[MAX_STRING]; - strcpy(lowercase_name, full_var_names[i]); + strncpy(lowercase_name, full_var_names[i], MAX_STRING); + lowercase_name[MAX_STRING - 1] = '\0'; for (int j = 0; j < strlen(lowercase_name); j++) lowercase_name[j] = tolower(lowercase_name[j]); char to_write[MAX_STRING]; if (snprintf(to_write, MAX_STRING, "%s=%s\n", lowercase_name, read_word) < 0) { ERR_ERRNO("snprintf()"); + free(read_buf); return -1; } @@ -223,7 +225,7 @@ static char** alloc_string_array(const int lines) arr[i] = (char*)malloc(MAX_STRING); if (arr[i] == NULL) { for (int j = 0; j < i; j++) - free(arr[i]); + free(arr[j]); free(arr); ERR_ERRNO("malloc()"); @@ -256,7 +258,8 @@ static char** get_string_array(char* buff, const int lines) while (curr_line != NULL) { - strcpy(string_array[id], curr_line); + strncpy(string_array[id], curr_line, MAX_STRING); + string_array[id][MAX_STRING - 1] = '\0'; id++; curr_line = strtok(NULL, separator); } -- 2.34.1