From 84065d128be003947177c288d49e0fcf2cfe5b97 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 10 Feb 2026 19:35:48 +0100 Subject: [PATCH] fix copy static pointer value --- src/feierabend.c | 6 ++++-- src/feierabend.h | 12 +++--------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/feierabend.c b/src/feierabend.c index 5d2ebdd..bec0fee 100644 --- a/src/feierabend.c +++ b/src/feierabend.c @@ -1,4 +1,5 @@ #include +#include #include "feierabend.h" #include "time_format.h" #include "validate.h" @@ -26,9 +27,10 @@ void _print_german_long_date(const struct tm* time_info) time_t _set_time(time_t value, struct tm* tm_value, int hour, int minutes) { - time(&value); + value = time(NULL); - tm_value = localtime(&value); + const struct tm* tm_tmp = localtime(&value); + memcpy(tm_value, tm_tmp, sizeof(struct tm)); tm_value->tm_hour = hour; tm_value->tm_min = minutes; diff --git a/src/feierabend.h b/src/feierabend.h index 61e17ab..f3ca90c 100644 --- a/src/feierabend.h +++ b/src/feierabend.h @@ -25,24 +25,18 @@ feierabend* feierabend_init() fabend->now = 0; fabend->begin = 0; fabend->worktime = 0; - fabend->now_tm = malloc(sizeof(struct tm)); + fabend->now_tm = NULL; fabend->begin_tm = malloc(sizeof(struct tm)); - fabend->work_end_tm = malloc(sizeof(struct tm)); - fabend->max_work_end_tm = malloc(sizeof(struct tm)); + fabend->work_end_tm = NULL; + fabend->max_work_end_tm = NULL; return fabend; } void feierabend_free(feierabend* fabend) { - free(fabend->now_tm); - fabend->now_tm = NULL; free(fabend->begin_tm); fabend->begin_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 -- 2.47.3