From 8a507b98ab8d7f882e4c691ebfa4e84d6651f9d1 Mon Sep 17 00:00:00 2001 From: Poul-Henning Kamp Date: Fri, 3 Jul 1998 08:21:05 +0000 Subject: [PATCH] fts_close calls free(sp), the ISSET(FTS_NOCHDIR) which is a macro that references sp. The free needs to follow ISSET PR: 7148 Reviewed by: phk Submitted by: Ken Mayer --- lib/libc/gen/fts-compat.c | 7 ++++--- lib/libc/gen/fts.c | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/libc/gen/fts-compat.c b/lib/libc/gen/fts-compat.c index 73832e59ff1..02cad6c00dc 100644 --- a/lib/libc/gen/fts-compat.c +++ b/lib/libc/gen/fts-compat.c @@ -241,14 +241,15 @@ fts_close(sp) (void)close(sp->fts_rfd); } - /* Free up the stream pointer. */ - free(sp); - /* Set errno and return. */ if (!ISSET(FTS_NOCHDIR) && saved_errno) { + /* Free up the stream pointer. */ + free(sp); errno = saved_errno; return (-1); } + /* Free up the stream pointer. */ + free(sp); return (0); } diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c index 73832e59ff1..02cad6c00dc 100644 --- a/lib/libc/gen/fts.c +++ b/lib/libc/gen/fts.c @@ -241,14 +241,15 @@ fts_close(sp) (void)close(sp->fts_rfd); } - /* Free up the stream pointer. */ - free(sp); - /* Set errno and return. */ if (!ISSET(FTS_NOCHDIR) && saved_errno) { + /* Free up the stream pointer. */ + free(sp); errno = saved_errno; return (-1); } + /* Free up the stream pointer. */ + free(sp); return (0); }