svn commit: r301574 - head/usr.bin/random

Don Lewis truckman at FreeBSD.org
Wed Jun 8 02:14:07 UTC 2016


Author: truckman
Date: Wed Jun  8 02:14:05 2016
New Revision: 301574
URL: https://svnweb.freebsd.org/changeset/base/301574

Log:
  Fix a (false positive?) Argument cannot be negative coverity defect.
  
  Rather than guarding close(fd) with an fd >= 0 test and setting fd
  to -1 when it is closed to avoid a potential double-close, just
  move the close() call after the conditional "goto make_token".  This
  moves the close() call totally outside the loop to avoid the
  possibility of calling it twice.  This should also prevent a Coverity
  warning about checking fd for validity after it was previously passed
  to read().
  
  Reported by:	Coverity
  CID:		1355335
  MFC after:	1 week
  X-MFC with:	r299484

Modified:
  head/usr.bin/random/randomize_fd.c

Modified: head/usr.bin/random/randomize_fd.c
==============================================================================
--- head/usr.bin/random/randomize_fd.c	Wed Jun  8 02:09:14 2016	(r301573)
+++ head/usr.bin/random/randomize_fd.c	Wed Jun  8 02:14:05 2016	(r301574)
@@ -199,17 +199,14 @@ make_token:
 		}
 	}
 
-	if (fd >= 0) {
-		(void)close(fd);
-		fd = -1;
-	}
-
 	/* Necessary evil to compensate for files that don't end with a newline */
 	if (bufc != i) {
 		i--;
 		goto make_token;
 	}
 
+	(void)close(fd);
+
 	free(buf);
 
 	for (i = numnode; i > 0; i--) {


More information about the svn-src-all mailing list