Commit 1b9cde51 authored by Tom Lane's avatar Tom Lane

Check for fseeko() failure in pg_dump's _tarAddFile().

Coverity pointed out, not unreasonably, that we checked fseeko's
result at every other call site but these.  Failure to seek in the
temp file (note this is NOT pg_dump's output file) seems quite
unlikely, and even if it did happen the file length cross-check
further down would probably detect the problem.  Still, that's a
poor excuse for not checking the result of a system call.
parent 1c164ef3
......@@ -1082,11 +1082,13 @@ _tarAddFile(ArchiveHandle *AH, TAR_MEMBER *th)
/*
* Find file len & go back to start.
*/
fseeko(tmp, 0, SEEK_END);
if (fseeko(tmp, 0, SEEK_END) != 0)
fatal("error during file seek: %m");
th->fileLen = ftello(tmp);
if (th->fileLen < 0)
fatal("could not determine seek position in archive file: %m");
fseeko(tmp, 0, SEEK_SET);
if (fseeko(tmp, 0, SEEK_SET) != 0)
fatal("error during file seek: %m");
_tarWriteHeader(th);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment