summaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-06-21 20:24:07 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-06-21 21:13:32 -0700
commitf5726c3d184dce88822fd84dbe994d6fa92c089b (patch)
treeea5f96a9a81a4f07b3425bad134ed9a4959aa10f /file.c
parent004705e33e450c52d6753c55797885aedb6ad769 (diff)
downloadsubsurface-f5726c3d184dce88822fd84dbe994d6fa92c089b.tar.gz
Fix a number of resource leaks
Free memory returned from parse_mkvi_value() Free memory returned from printGPSCoords() Free memory allocated in added_list and removed_list Free memory allocated when adding suffix to dive site name Free memory allocated in cache_deco_state() Free memory allocated in build_filename() Free memory allocated in get_utf8() Free memory allocated in alloc_dive() Free memory allocated as cache but never used Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'file.c')
-rw-r--r--file.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/file.c b/file.c
index 6eb98d5b4..20b21f115 100644
--- a/file.c
+++ b/file.c
@@ -547,11 +547,12 @@ int parse_txt_file(const char *filename, const char *csv)
struct divecomputer *dc;
struct tm cur_tm;
- if (sscanf(parse_mkvi_value(memtxt.buffer, "Dive started at"), "%d-%d-%d %d:%d:%d",
- &y, &m, &d, &hh, &mm, &ss) != 6) {
+ value = parse_mkvi_value(memtxt.buffer, "Dive started at");
+ if (sscanf(value, "%d-%d-%d %d:%d:%d", &y, &m, &d, &hh, &mm, &ss) != 6) {
+ free(value);
return -1;
}
-
+ free(value);
cur_tm.tm_year = y;
cur_tm.tm_mon = m - 1;
cur_tm.tm_mday = d;
@@ -622,6 +623,7 @@ int parse_txt_file(const char *filename, const char *csv)
*/
if (readfile(csv, &memcsv) < 0) {
+ free(dive);
return report_error(translate("gettextFromC", "Poseidon import failed: unable to read '%s'"), csv);
}
lineptr = memcsv.buffer;