]> gitweb.hhaalo.de Git - discspan.git/commitdiff
string dynamic alloc
authorBastian Dehn <hhaalo@arcor.de>
Sun, 31 Aug 2025 09:14:43 +0000 (11:14 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 31 Aug 2025 09:14:43 +0000 (11:14 +0200)
libs/spandisc/src/filehandler.c
libs/spandisc/src/spandisc.c
libs/spandisc/src/spandisc.h

index e611a520070e9dd6fbbce4dacfbc4011f9d8f395..99478329aa5cba8f314a718546ea95557262a810 100644 (file)
@@ -20,6 +20,7 @@ void fill_array_from_file(FILE *in, medium_t *srcdata)
                srcdata->filearray = (file_size_t *)
                        realloc(srcdata->filearray,
                                (srcdata->length + 1) * sizeof(file_size_t));
+               srcdata->filearray[srcdata->length].name = malloc(sizeof(char) * strlen(path) + 1);
                strcpy(srcdata->filearray[srcdata->length].name, path);
                srcdata->filearray[srcdata->length].type = st->st_mode;
                srcdata->filearray[srcdata->length].fsize = st->st_size;
index cc8b056ed126b0a64d8a936d87a4c9e3fa4c142d..5efb042d250371d1292a2facf51d315179426980 100644 (file)
@@ -23,6 +23,12 @@ medium_t* init_medium()
        return medium;
 }
 
+void free_file_size(file_size_t* file_size)
+{
+       free(file_size->name);
+       file_size->name = NULL;
+}
+
 void free_medium(medium_t *medium)
 {
        free(medium->filearray);
@@ -34,6 +40,10 @@ void free_medium(medium_t *medium)
 void free_collection(collection_t *col)
 {
        for (int i = 0; i < col->length; i++) {
+               for (int j = 0; j < col->disc[i]->length; j++) {
+                       free_file_size(&col->disc[i]->filearray[j]);
+               }
+
                free_medium(col->disc[i]);
                col->disc[i] = NULL;
        }
index d31459170ce2abc9a827feeb83deb92ae4d83fde..54a8489e68223d622deb2a8fbeae257eee9a4698 100644 (file)
@@ -6,7 +6,7 @@ extern "C" {
 #endif
 
 typedef struct {
-       char name[255];
+       char* name;
        unsigned long long fsize;
        unsigned int type;
 } file_size_t;