From e1b537879b97b5c7b31e9856ffca958833236eec Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 9 Feb 2025 12:16:22 +0100 Subject: [PATCH] change timestr to local variable --- src/feierabend.c | 26 +++++++++++++------------- src/feierabend.h | 1 - src/time_format.c | 2 ++ src/xml.c | 8 +++----- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/feierabend.c b/src/feierabend.c index 48f31e5..1c879fb 100644 --- a/src/feierabend.c +++ b/src/feierabend.c @@ -18,7 +18,6 @@ feierabend* feierabend_init() 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->timestr = malloc(sizeof(char) * MAX_TIME_STR_LENGTH); return fabend; } @@ -39,8 +38,6 @@ void feierabend_free(feierabend* fabend) fabend->work_end_tm = NULL; free(fabend->max_work_end_tm); fabend->max_work_end_tm = NULL; - free(fabend->timestr); - fabend->timestr = NULL; } void print_german_long_date(struct tm* time_info) @@ -116,34 +113,37 @@ int main(int argc, char* argv[]) printf("\n"); *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, fabend->timestr); - printf("%-26s%6s\n", "Brutto Arbeitzeit:", fabend->timestr); + char* timestr = malloc(MAX_TIME_STR_LENGTH); + get_time_str(*fabend->worktime, timestr); + printf("%-26s%6s\n", "Brutto Arbeitzeit:", timestr); *fabend->worktime = get_current_worktime(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, fabend->timestr); - printf("%-26s%6s\n", "Netto Arbeitzeit:", fabend->timestr); + get_time_str(*fabend->worktime, timestr); + printf("%-26s%6s\n", "Netto Arbeitzeit:", timestr); *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now); *fabend->worktime = get_break_time(*fabend->worktime); - get_time_str(*fabend->worktime, fabend->timestr); - printf("%-26s%6s\n", "Aktuelle Pausenzeit:", fabend->timestr); + get_time_str(*fabend->worktime, timestr); + printf("%-26s%6s\n", "Aktuelle Pausenzeit:", timestr); printf("\n"); *fabend->worktime = get_current_worktime_diff_to_end_eight_hour(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, fabend->timestr); + get_time_str(*fabend->worktime, timestr); printf("Arbeitzeit bis %02d:%02d Std: %6s\n", SOLL_HOUR, SOLL_MINUTES, - fabend->timestr); + timestr); *fabend->worktime = get_current_worktime_diff_to_end_ten_hour(*fabend->begin, *fabend->now); - get_time_str(*fabend->worktime, fabend->timestr); - printf("Arbeitzeit bis 10:00 Std: %6s\n", fabend->timestr); + get_time_str(*fabend->worktime, timestr); + printf("Arbeitzeit bis 10:00 Std: %6s\n", timestr); feierabend_free(fabend); free(fabend); fabend = NULL; + free(timestr); + timestr = NULL; return 0; } \ No newline at end of file diff --git a/src/feierabend.h b/src/feierabend.h index 16936b1..0a8dfec 100644 --- a/src/feierabend.h +++ b/src/feierabend.h @@ -13,7 +13,6 @@ typedef struct { struct tm* begin_tm; struct tm* work_end_tm; struct tm* max_work_end_tm; - char* timestr; } feierabend; #endif \ No newline at end of file diff --git a/src/time_format.c b/src/time_format.c index 432a966..e7f29c4 100644 --- a/src/time_format.c +++ b/src/time_format.c @@ -7,9 +7,11 @@ #define MINUTE 60 #define SHORT_WEEKDAY_STR_LEN 3 +#define MAX_TIME_STR_LENGTH 7 void get_time_str(time_t timediff, char* timestr) { + memset(timestr, 0, MAX_TIME_STR_LENGTH); int hour = timediff / ONE_HOUR; int rest_minutes = timediff % ONE_HOUR; int minutes = rest_minutes / MINUTE; diff --git a/src/xml.c b/src/xml.c index 4c851ac..ade493e 100644 --- a/src/xml.c +++ b/src/xml.c @@ -33,18 +33,16 @@ void init_feierabend(feierabend* fabend) fabend->now = malloc(sizeof(time_t)); fabend->begin = malloc(sizeof(time_t)); fabend->worktime = malloc(sizeof(time_t)); - fabend->timestr = malloc(sizeof(char) * 7); } void free_feierabend(feierabend* fabend) { free(fabend->now); - free(fabend->begin); - free(fabend->worktime); - free(fabend->timestr); fabend->now = NULL; + free(fabend->begin); fabend->begin = NULL; - fabend->timestr = NULL; + free(fabend->worktime); + fabend->worktime = NULL; } void readStdInIntoMemory(memFile* mem) -- 2.39.5