diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-06-21 20:24:07 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-06-21 21:13:32 -0700 |
commit | f5726c3d184dce88822fd84dbe994d6fa92c089b (patch) | |
tree | ea5f96a9a81a4f07b3425bad134ed9a4959aa10f /file.c | |
parent | 004705e33e450c52d6753c55797885aedb6ad769 (diff) | |
download | subsurface-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.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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; |