mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
Add missing "goto err" statements in xlogreader.c.
Spotted by Andres Freund.
This commit is contained in:
parent
5a2a48f036
commit
c74c04b8aa
@ -1019,14 +1019,20 @@ DecodeXLogRecord(XLogReaderState *state, XLogRecord *record, char **errormsg)
|
|||||||
COPY_HEADER_FIELD(&blk->data_len, sizeof(uint16));
|
COPY_HEADER_FIELD(&blk->data_len, sizeof(uint16));
|
||||||
/* cross-check that the HAS_DATA flag is set iff data_length > 0 */
|
/* cross-check that the HAS_DATA flag is set iff data_length > 0 */
|
||||||
if (blk->has_data && blk->data_len == 0)
|
if (blk->has_data && blk->data_len == 0)
|
||||||
|
{
|
||||||
report_invalid_record(state,
|
report_invalid_record(state,
|
||||||
"BKPBLOCK_HAS_DATA set, but no data included at %X/%X",
|
"BKPBLOCK_HAS_DATA set, but no data included at %X/%X",
|
||||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
if (!blk->has_data && blk->data_len != 0)
|
if (!blk->has_data && blk->data_len != 0)
|
||||||
|
{
|
||||||
report_invalid_record(state,
|
report_invalid_record(state,
|
||||||
"BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X",
|
"BKPBLOCK_HAS_DATA not set, but data length is %u at %X/%X",
|
||||||
(unsigned int) blk->data_len,
|
(unsigned int) blk->data_len,
|
||||||
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
(uint32) (state->ReadRecPtr >> 32), (uint32) state->ReadRecPtr);
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
datatotal += blk->data_len;
|
datatotal += blk->data_len;
|
||||||
|
|
||||||
if (blk->has_image)
|
if (blk->has_image)
|
||||||
|
Loading…
Reference in New Issue
Block a user