]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
fix static memory copy to struct
authorBastian Dehn <hhaalo@arcor.de>
Wed, 11 Feb 2026 18:37:04 +0000 (19:37 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Wed, 11 Feb 2026 18:37:04 +0000 (19:37 +0100)
src/feierabend.c
src/feierabend.h

index bec0feefa80a9ccef8a32041a3d3056206b9cada..542f862e826dab95e67c5cf3984edbc1415150e8 100644 (file)
@@ -173,16 +173,20 @@ int main(int argc, const char* argv[])
 
        fabend->begin = _set_time(fabend->begin, fabend->begin_tm,  atoi(argv[1]),  atoi(argv[2]));
 
-       time(&fabend->now);
-       fabend->now_tm = localtime(&fabend->now);
+       fabend->now = time(NULL);
+       const struct tm* tmp_now = localtime(&fabend->now);
+       memcpy(fabend->now_tm, tmp_now, sizeof(struct tm));
+
        if (argc == 5)
                fabend->now = _set_time(fabend->now, fabend->now_tm, atoi(argv[3]), atoi(argv[4]));
 
        fabend->worktime = get_eight_hour_end_worktime(fabend->begin);
-       fabend->work_end_tm = localtime(&fabend->worktime);
+       const struct tm* tmp_work_end = localtime(&fabend->worktime);
+       memcpy(fabend->work_end_tm, tmp_work_end, sizeof(struct tm));
 
        fabend->worktime = get_ten_hour_end_worktime(fabend->begin);
-       fabend->max_work_end_tm = localtime(&fabend->worktime);
+       const struct tm* tmp_max_work_end = localtime(&fabend->worktime);
+       memcpy(fabend->max_work_end_tm, tmp_max_work_end, sizeof(struct tm));
 
        _print_time_now(fabend);
        printf("\n");
index f3ca90c6adbb20c605c7da4dcfe886246f877e05..1006393278aaf6d0b8cb838c46a3f132345aec40 100644 (file)
@@ -25,10 +25,10 @@ feierabend* feierabend_init()
        fabend->now = 0;
        fabend->begin = 0;
        fabend->worktime = 0;
-       fabend->now_tm = NULL;
+       fabend->now_tm = malloc(sizeof(struct tm));
        fabend->begin_tm = malloc(sizeof(struct tm));
-       fabend->work_end_tm = NULL;
-       fabend->max_work_end_tm = NULL;
+       fabend->work_end_tm = malloc(sizeof(struct tm));
+       fabend->max_work_end_tm = malloc(sizeof(struct tm));
 
        return fabend;
 }
@@ -37,6 +37,12 @@ void feierabend_free(feierabend* fabend)
 {
        free(fabend->begin_tm);
        fabend->begin_tm = NULL;
+       free(fabend->now_tm);
+       fabend->now_tm = NULL;
+       free(fabend->work_end_tm);
+       fabend->work_end_tm = NULL;
+       free(fabend->max_work_end_tm);
+       fabend->max_work_end_tm = NULL;
 }
 
 #endif
\ No newline at end of file