Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Feb 2015 16:50:21 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r278804 - head/lib/libc/gen
Message-ID:  <201502151650.t1FGoLTi032120@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Sun Feb 15 16:50:21 2015
New Revision: 278804
URL: https://svnweb.freebsd.org/changeset/base/278804

Log:
  More tidy-ups on uninitialized scalar variable
  
  As a followup to r278363, there is one more case where
  stayopen can be accessed uninitialized, but even after
  swapping arguments, access is possible in some other
  cases so prevent it completely by initializing stayopen.
  
  CID:	1018729
  CID:	1018732

Modified:
  head/lib/libc/gen/getgrent.c
  head/lib/libc/gen/getpwent.c

Modified: head/lib/libc/gen/getgrent.c
==============================================================================
--- head/lib/libc/gen/getgrent.c	Sun Feb 15 14:31:50 2015	(r278803)
+++ head/lib/libc/gen/getgrent.c	Sun Feb 15 16:50:21 2015	(r278804)
@@ -1303,7 +1303,7 @@ compat_group(void *retval, void *mdata, 
 	void			*discard;
 	size_t			 bufsize, linesize;
 	off_t			 pos;
-	int			 rv, stayopen, *errnop;
+	int			 rv, stayopen = 0, *errnop;
 
 #define set_lookup_type(x, y) do { 				\
 	int i;							\
@@ -1450,7 +1450,7 @@ docompat:
 		pos = ftello(st->fp);
 	}
 fin:
-	if (!stayopen && st->fp != NULL) {
+	if (st->fp != NULL || !stayopen) {
 		fclose(st->fp);
 		st->fp = NULL;
 	}

Modified: head/lib/libc/gen/getpwent.c
==============================================================================
--- head/lib/libc/gen/getpwent.c	Sun Feb 15 14:31:50 2015	(r278803)
+++ head/lib/libc/gen/getpwent.c	Sun Feb 15 16:50:21 2015	(r278804)
@@ -815,7 +815,7 @@ files_passwd(void *retval, void *mdata, 
 	size_t			 bufsize, namesize;
 	uid_t			 uid;
 	uint32_t		 store;
-	int			 rv, stayopen, *errnop;
+	int			 rv, stayopen = 0, *errnop;
 
 	name = NULL;
 	uid = (uid_t)-1;



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