提交 dfb1e9bd 编写于 作者: S Stephen Frost

Further pg_dump / ftello improvements

Make ftello error-checking consistent to all calls and remove a
bit of ftello-related code which has been #if 0'd out since 2001.

Note that we are not concerned with the ftello() call under
snprintf() failing as it is just building a string to call
exit_horribly() with; printing -1 in such a case is fine.
上级 5e8e794e
......@@ -3347,9 +3347,8 @@ checkSeek(FILE *fp)
#endif
/* Check that ftello works on this file */
errno = 0;
tpos = ftello(fp);
if (errno)
if (tpos < 0)
return false;
/*
......
......@@ -1068,6 +1068,9 @@ _tarAddFile(ArchiveHandle *AH, TAR_MEMBER *th)
*/
fseeko(tmp, 0, SEEK_END);
th->fileLen = ftello(tmp);
if (th->fileLen < 0)
exit_horribly(modulename, "could not determine seek position in file: %s\n",
strerror(errno));
fseeko(tmp, 0, SEEK_SET);
/*
......@@ -1212,20 +1215,6 @@ _tarGetHeader(ArchiveHandle *AH, TAR_MEMBER *th)
while (!gotBlock)
{
#if 0
if (ftello(ctx->tarFH) != ctx->tarFHpos)
{
char buf1[100],
buf2[100];
snprintf(buf1, sizeof(buf1), INT64_FORMAT, (int64) ftello(ctx->tarFH));
snprintf(buf2, sizeof(buf2), INT64_FORMAT, (int64) ftello(ctx->tarFHpos));
exit_horribly(modulename,
"mismatch in actual vs. predicted file position (%s vs. %s)\n",
buf1, buf2);
}
#endif
/* Save the pos for reporting purposes */
hPos = ctx->tarFHpos;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册