pgsql: pg_controldata: Fix possible errors on corrupted pg_control

2025-02-04 Thread Alexander Korotkov
pg_controldata: Fix possible errors on corrupted pg_control Protect against malformed timestamps. Also protect against negative WalSegSz as it triggers division by zero: ((0x1UL) / (WalSegSz)) can turn into zero in XLogFileName(xlogfilename, ControlFile->checkPointCopy.ThisTimeLineID,

pgsql: pg_controldata: Fix possible errors on corrupted pg_control

2025-02-04 Thread Alexander Korotkov
pg_controldata: Fix possible errors on corrupted pg_control Protect against malformed timestamps. Also protect against negative WalSegSz as it triggers division by zero: ((0x1UL) / (WalSegSz)) can turn into zero in XLogFileName(xlogfilename, ControlFile->checkPointCopy.ThisTimeLineID,

pgsql: pg_controldata: Fix possible errors on corrupted pg_control

2025-02-04 Thread Alexander Korotkov
pg_controldata: Fix possible errors on corrupted pg_control Protect against malformed timestamps. Also protect against negative WalSegSz as it triggers division by zero: ((0x1UL) / (WalSegSz)) can turn into zero in XLogFileName(xlogfilename, ControlFile->checkPointCopy.ThisTimeLineID,

pgsql: pg_controldata: Fix possible errors on corrupted pg_control

2025-02-04 Thread Alexander Korotkov
pg_controldata: Fix possible errors on corrupted pg_control Protect against malformed timestamps. Also protect against negative WalSegSz as it triggers division by zero: ((0x1UL) / (WalSegSz)) can turn into zero in XLogFileName(xlogfilename, ControlFile->checkPointCopy.ThisTimeLineID,

pgsql: pg_controldata: Fix possible errors on corrupted pg_control

2025-02-04 Thread Alexander Korotkov
pg_controldata: Fix possible errors on corrupted pg_control Protect against malformed timestamps. Also protect against negative WalSegSz as it triggers division by zero: ((0x1UL) / (WalSegSz)) can turn into zero in XLogFileName(xlogfilename, ControlFile->checkPointCopy.ThisTimeLineID,

pgsql: pg_controldata: Fix possible errors on corrupted pg_control

2025-02-04 Thread Alexander Korotkov
pg_controldata: Fix possible errors on corrupted pg_control Protect against malformed timestamps. Also protect against negative WalSegSz as it triggers division by zero: ((0x1UL) / (WalSegSz)) can turn into zero in XLogFileName(xlogfilename, ControlFile->checkPointCopy.ThisTimeLineID,