svn commit: r278804 - head/lib/libc/gen

Pedro F. Giffuni pfg at FreeBSD.org
Sun Feb 15 16:50:22 UTC 2015


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;


More information about the svn-src-head mailing list