!4031 修复fopen打开的句柄资源泄露

Merge pull request !4031 from wave_what/resourceleak_fix2
This commit is contained in:
opengauss_bot
2023-11-29 11:55:05 +00:00
committed by Gitee

View File

@ -1932,7 +1932,10 @@ validate_file_pages(pgFile *file, const char *fullpath, XLogRecPtr stop_lsn,
PageState page_st;
if (interrupted || thread_interrupted)
{
fclose(in);
elog(ERROR, "Interrupted during data file validation");
}
/* newer backups have page headers in separate storage */
if (headers)
@ -1957,8 +1960,11 @@ validate_file_pages(pgFile *file, const char *fullpath, XLogRecPtr stop_lsn,
if (cur_pos_in != headers[n_hdr].pos)
{
if (fio_fseek(in, headers[n_hdr].pos) < 0)
{
fclose(in);
elog(ERROR, "Cannot seek block %u of \"%s\": %s",
blknum, fullpath, strerror(errno));
}
else
elog(INFO, "Seek to %u", headers[n_hdr].pos);
@ -2046,6 +2052,7 @@ validate_file_pages(pgFile *file, const char *fullpath, XLogRecPtr stop_lsn,
}
elog(WARNING, "Page %u of file \"%s\" uncompressed to %d bytes. != BLCKSZ",
blknum, fullpath, uncompressed_size);
fclose(in);
return false;
}