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
This commit is contained in:
Don Lewis 2016-06-08 02:14:05 +00:00
parent b3a734483e
commit 290dadbd56

View File

@ -199,17 +199,14 @@ randomize_fd(int fd, int type, int unique, double denom)
} }
} }
if (fd >= 0) {
(void)close(fd);
fd = -1;
}
/* Necessary evil to compensate for files that don't end with a newline */ /* Necessary evil to compensate for files that don't end with a newline */
if (bufc != i) { if (bufc != i) {
i--; i--;
goto make_token; goto make_token;
} }
(void)close(fd);
free(buf); free(buf);
for (i = numnode; i > 0; i--) { for (i = numnode; i > 0; i--) {