Check return value of dup(), it could be -1 when the system is running

out of file descriptors for instance.

Found with:	Coverity Prevent(tm)
CID:		6084
MFC after:	1 month
This commit is contained in:
Xin LI 2010-08-19 01:34:00 +00:00
parent af8ec89da4
commit c38fa7e016
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=211475

View File

@ -312,7 +312,14 @@ unpack(int in, int out, char *pre, size_t prelen, off_t *bytes_in)
{
unpack_descriptor_t unpackd;
unpack_parse_header(dup(in), dup(out), pre, prelen, bytes_in, &unpackd);
in = dup(in);
if (in == -1)
maybe_err("dup");
out = dup(out);
if (out == -1)
maybe_err("dup");
unpack_parse_header(in, out, pre, prelen, bytes_in, &unpackd);
unpack_decode(&unpackd, bytes_in);
unpack_descriptor_fini(&unpackd);