diff options
author | Salvador Cuñat <salvador.cunat@gmail.com> | 2020-04-19 07:54:35 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-04-19 10:59:12 -0700 |
commit | e139b7b15fbffba6cf302ec49a67239663144a5b (patch) | |
tree | fa9ea020e7baea1b9d0bc0198a05bd94b45659ce | |
parent | 6c9a9b2fb5ff1d8e3aab9b041617349917ac5061 (diff) | |
download | subsurface-e139b7b15fbffba6cf302ec49a67239663144a5b.tar.gz |
[smtk-import] add some sanity checks
Under some circustances values stored in this arrays may be NULL or even
previously freed. Check them to avoid further crashes.
Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
-rw-r--r-- | smtk-import/smartrak.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/smtk-import/smartrak.c b/smtk-import/smartrak.c index 8791a5551..c3e4f562e 100644 --- a/smtk-import/smartrak.c +++ b/smtk-import/smartrak.c @@ -44,7 +44,8 @@ static void smtk_free(char **array, int count) { int n; for (n = 0; n < count; n++) - free(array[n]); + if (array[n]) + free(array[n]); array = NULL; } @@ -727,6 +728,8 @@ static void smtk_parse_relations(MdbHandle *mdb, struct dive *dive, char *dive_i /* Get the text associated with the relations */ for (d_runner = diverel_head; d_runner; d_runner = d_runner->next) { + if (! list[d_runner->idx - 1]) + continue; if (tag) taglist_add_tag(&dive->tag_list, list[d_runner->idx - 1]); else |