]> git.scottworley.com Git - tl-append/commitdiff
Fix memory leak
authorScott Worley <scottworley@scottworley.com>
Thu, 14 Sep 2023 06:43:01 +0000 (23:43 -0700)
committerScott Worley <scottworley@scottworley.com>
Thu, 14 Sep 2023 06:46:16 +0000 (23:46 -0700)
Changelog
common.c
common.h
tl-append-test.c
tl-append.c

index 899f4dc5b8c37f35b795cdcc0e8b49352227a2ed..7a11b0e13560d96133154f64c0f4edc140af3508 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -1,5 +1,8 @@
 # Changelog
 
 # Changelog
 
+## Unrelased
+- Fix memory leak
+
 ## [1.0.0] - 2023-09-13
 
 Initial release
 ## [1.0.0] - 2023-09-13
 
 Initial release
index 747111beda28fd79d89060ba7aa6959e5bc6f423..88e7b73d0e5d893104c76edf108526d0f79f88de 100644 (file)
--- a/common.c
+++ b/common.c
@@ -17,7 +17,7 @@ void die_err(const char *message) {
   exit(1);
 }
 
   exit(1);
 }
 
-const char *encode_time(time_t t) {
+char *encode_time(time_t t) {
   struct tm tm;
   localtime_r(&t, &tm);
   const size_t size = 20;
   struct tm tm;
   localtime_r(&t, &tm);
   const size_t size = 20;
index 93d722f8f67fb2cb04b65c1b574a729ddb0f8a0b..3563d00b86b0fd29c99d8a6af72493cffc99d7c2 100644 (file)
--- a/common.h
+++ b/common.h
@@ -6,4 +6,4 @@ void die(const char *message);
 
 void die_err(const char *message);
 
 
 void die_err(const char *message);
 
-const char *encode_time(time_t t);
+char *encode_time(time_t t);
index e712c6f9b9fd0cb8108cfe882e27562ec2f3f41e..ee5d3f76fbc36d675cc04b830c9e800139515c9a 100644 (file)
@@ -171,7 +171,7 @@ static void test_encode_time() {
   if (tt == (time_t)-1)
     die_err("Can't pack time?");
 
   if (tt == (time_t)-1)
     die_err("Can't pack time?");
 
-  const char *encoded = encode_time(tt);
+  char *encoded = encode_time(tt);
   /* Loose check to allow for daylight savings time changes between the current
    * time and the target time.  :( */
   assert(encoded[0] == '2');
   /* Loose check to allow for daylight savings time changes between the current
    * time and the target time.  :( */
   assert(encoded[0] == '2');
@@ -194,6 +194,7 @@ static void test_encode_time() {
   assert(encoded[17] == '1');
   assert(encoded[18] == '6');
   assert(encoded[19] == '\0');
   assert(encoded[17] == '1');
   assert(encoded[18] == '6');
   assert(encoded[19] == '\0');
+  free(encoded);
 }
 
 static FILE *take_lock(FILE *f, char *lock_type) {
 }
 
 static FILE *take_lock(FILE *f, char *lock_type) {
index 52d260248fdbe0779e8942ee970f1cd6ffa5f140..edea9e9c16cd5fbbbdb7efcb644b15fe695e3c96 100644 (file)
@@ -136,7 +136,7 @@ static void write_acknowledgment(conf_t *conf) {
 }
 
 static void lock_and_write_line(conf_t *conf, const char *line) {
 }
 
 static void lock_and_write_line(conf_t *conf, const char *line) {
-  const char *now = encode_time(time(NULL));
+  char *now = encode_time(time(NULL));
   FILE *f = fopen(FILENAME, "a");
 
   take_lock(conf, f);
   FILE *f = fopen(FILENAME, "a");
 
   take_lock(conf, f);
@@ -145,6 +145,7 @@ static void lock_and_write_line(conf_t *conf, const char *line) {
   if (fclose(f) != 0)
     die_err("Error closing output file");
 
   if (fclose(f) != 0)
     die_err("Error closing output file");
 
+  free(now);
   write_acknowledgment(conf);
 }
 
   write_acknowledgment(conf);
 }