[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/4] main: also free memory on errors
From: |
Akim Demaille |
Subject: |
[PATCH 3/4] main: also free memory on errors |
Date: |
Tue, 22 Oct 2019 18:58:05 +0200 |
* src/derives.c (derives_free): Beware of NULL.
* src/main.c (main): Let the 'finish' label include memory release.
---
src/derives.c | 7 +++++--
src/main.c | 4 ++--
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/src/derives.c b/src/derives.c
index c44a9fd2..8de79866 100644
--- a/src/derives.c
+++ b/src/derives.c
@@ -109,6 +109,9 @@ derives_compute (void)
void
derives_free (void)
{
- free (derives[0]);
- free (derives);
+ if (derives)
+ {
+ free (derives[0]);
+ free (derives);
+ }
}
diff --git a/src/main.c b/src/main.c
index 06bcb1c5..ab0229f5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -207,6 +207,8 @@ main (int argc, char *argv[])
timevar_pop (tv_parser);
}
+ finish:
+
timevar_push (tv_free);
nullable_free ();
derives_free ();
@@ -228,8 +230,6 @@ main (int argc, char *argv[])
if (trace_flag & trace_bitsets)
bitset_stats_dump (stderr);
- finish:
-
/* Stop timing and print the times. */
timevar_stop (tv_total);
timevar_print (stderr);
--
2.23.0