From f283ead36d40e2c24224163cd6ed74a51c4a29c1 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 31 Aug 2025 11:05:22 +0200 Subject: [PATCH] change read file with heap path --- libs/spandisc/src/filehandler.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/libs/spandisc/src/filehandler.c b/libs/spandisc/src/filehandler.c index a98cc95..f5eb874 100644 --- a/libs/spandisc/src/filehandler.c +++ b/libs/spandisc/src/filehandler.c @@ -6,22 +6,28 @@ #include "spandisc.h" #include "filehandler.h" +#define MAX_PATH_LENGTH 255 + void fill_array_from_file(FILE *in, medium_t *srcdata) { - char pfad[255]; + char* path = malloc(sizeof(char) * MAX_PATH_LENGTH); + memset(path, 0, MAX_PATH_LENGTH); struct stat st; - while (fscanf(in, "%[^\n]\n", pfad) == 1) { + while (fscanf(in, "%[^\n]\n", path) == 1) { // Lese Dateieigenschaften in st struct - stat(pfad, &st); + stat(path, &st); srcdata->filearray = (file_size_t *) realloc(srcdata->filearray, (srcdata->length + 1) * sizeof(file_size_t)); - strcpy(srcdata->filearray[srcdata->length].name, pfad); + strcpy(srcdata->filearray[srcdata->length].name, path); srcdata->filearray[srcdata->length].type = st.st_mode; srcdata->filearray[srcdata->length].fsize = st.st_size; srcdata->length++; } + + free(path); + path = NULL; } void read_input_file(const char *input, medium_t *srcdata) -- 2.47.3