diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2020-06-10 06:10:04 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2020-06-10 17:48:50 +0300 |
commit | 17d03a4deb7ed18abb4e0e590e6315050d9c29fd (patch) | |
tree | 324feeb1e3568042fe9e2f73ebd6d63296781cf7 /extension/gawkfts.c | |
parent | 5aae00200fc44bdfefbb497cf57eb23a9d2517be (diff) | |
download | egawk-17d03a4deb7ed18abb4e0e590e6315050d9c29fd.tar.gz egawk-17d03a4deb7ed18abb4e0e590e6315050d9c29fd.tar.bz2 egawk-17d03a4deb7ed18abb4e0e590e6315050d9c29fd.zip |
Add mbuilov fixes. Still needs review.
Diffstat (limited to 'extension/gawkfts.c')
-rw-r--r-- | extension/gawkfts.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/extension/gawkfts.c b/extension/gawkfts.c index c7fbc17d..2e7ab688 100644 --- a/extension/gawkfts.c +++ b/extension/gawkfts.c @@ -228,7 +228,7 @@ fts_open(char * const *argv, int options, * so that everything about the "current" node is ignored. */ if ((sp->fts_cur = fts_alloc(sp, "", 0)) == NULL) - goto mem3; + goto mem4; sp->fts_cur->fts_link = root; sp->fts_cur->fts_info = FTS_INIT; @@ -252,6 +252,8 @@ fts_open(char * const *argv, int options, return (sp); +mem4: if (sp->fts_array != NULL) + free(sp->fts_array); mem3: fts_lfree(root); fts_free(parent); mem2: free(sp->fts_path); @@ -916,6 +918,7 @@ mem1: saved_errno = errno; (cur->fts_level == FTS_ROOTLEVEL ? FCHDIR(sp, sp->fts_rfd) : fts_safe_changedir(sp, cur->fts_parent, -1, ".."))) { + fts_lfree(head); cur->fts_info = FTS_ERR; SET(FTS_STOP); return (NULL); |