mirror of https://github.com/postgres/postgres
Fix off-by-one in XLogRecordMaxSize check.
pg_logical_emit_message(false, '_', repeat('x', 1069547465)) failed with self-contradictory message "WAL record would be 1069547520 bytes (of maximum 1069547520 bytes)". There's no particular benefit from allowing or denying one byte in either direction; XLogRecordMaxSize could rise a few megabytes without trouble. Hence, this is just for cleanliness. Back-patch to v16, where this check first appeared.
This commit is contained in:
parent
7bed93a469
commit
7823a298ba
|
@ -900,7 +900,7 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
|
|||
* not emit records larger than the sizes advertised to be supported. This
|
||||
* cap is based on DecodeXLogRecordRequiredSpace().
|
||||
*/
|
||||
if (total_len >= XLogRecordMaxSize)
|
||||
if (total_len > XLogRecordMaxSize)
|
||||
ereport(ERROR,
|
||||
(errmsg_internal("oversized WAL record"),
|
||||
errdetail_internal("WAL record would be %llu bytes (of maximum %u bytes); rmid %u flags %u.",
|
||||
|
|
Loading…
Reference in New Issue