mirror of
https://github.com/postgres/postgres.git
synced 2025-05-03 22:24:49 +03:00
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.
This commit is contained in:
parent
011aa7c0bc
commit
105dbff875
@ -1094,12 +1094,16 @@ _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)
|
||||
exit_horribly(modulename, "error during file seek: %s\n",
|
||||
strerror(errno));
|
||||
th->fileLen = ftello(tmp);
|
||||
if (th->fileLen < 0)
|
||||
exit_horribly(modulename, "could not determine seek position in archive file: %s\n",
|
||||
strerror(errno));
|
||||
fseeko(tmp, 0, SEEK_SET);
|
||||
if (fseeko(tmp, 0, SEEK_SET) != 0)
|
||||
exit_horribly(modulename, "error during file seek: %s\n",
|
||||
strerror(errno));
|
||||
|
||||
_tarWriteHeader(th);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user