Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Mar 2017 20:46:57 +0000 (UTC)
From:      Conrad Meyer <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r314677 - head/lib/libc/gen
Message-ID:  <201703042046.v24KkvTw062504@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cem
Date: Sat Mar  4 20:46:57 2017
New Revision: 314677
URL: https://svnweb.freebsd.org/changeset/base/314677

Log:
  fts: Fix a potential memory leak in error case
  
  Dan Krejsa reports a potential memory leak in an fts_build error case,
  detected by Coverity.  (It doesn't seem to show up in Coverity Scan, so I
  don't have a CID to point to.)
  
  I don't know whether it is actually possible to arrive in this case with a
  non-empty 'head' list.  The cost is low, though.  One additional branch in a
  terminal error case isn't the end of the world.
  
  PR:		217125
  Submitted by:	Dan Krejsa <dan.krejsa at gmail.com>

Modified:
  head/lib/libc/gen/fts.c

Modified: head/lib/libc/gen/fts.c
==============================================================================
--- head/lib/libc/gen/fts.c	Sat Mar  4 20:35:34 2017	(r314676)
+++ head/lib/libc/gen/fts.c	Sat Mar  4 20:46:57 2017	(r314677)
@@ -850,6 +850,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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703042046.v24KkvTw062504>