]> gitweb.hhaalo.de Git - discspan.git/commitdiff
change read file with heap path
authorBastian Dehn <hhaalo@arcor.de>
Sun, 31 Aug 2025 09:05:22 +0000 (11:05 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 31 Aug 2025 09:05:22 +0000 (11:05 +0200)
libs/spandisc/src/filehandler.c

index a98cc95c0317486e66ab2e730e986a7513bff178..f5eb874af2bcaa62260f99891ed3ec4b5ede9850 100644 (file)
@@ -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)