postgres.git / summary / log / commit / refs

commit    985c8de212faa5a4c983005d4192fb7e543cf5ab
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Mon Dec 13 16:57:11 2021 +0000

    Suppress -Warray-bounds warning in 9.2's xlog.c.
    
    Late-model gcc delivers a confusing warning "'memcpy' offset [0, 63]
    is out of the bounds [0, 0]" here, which turns out to be because it
    thinks the "record" pointer might be NULL, which again is because
    it doesn't know ereport(PANIC) won't return.  The least invasive
    way to fix that is to insert a couple of abort() calls.  It's
    surprising/fortunate that we don't have this issue in more places
    ... but this is the last remaining build warning with gcc 11.2.1,
    so I'll settle for a narrow fix.
    
    Discussion: https://postgr.es/m/d0316012-ece7-7b7e-2d36-9c38cb77cb3b@enterprisedb.com


src/backend/access/transam/xlog.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 5df79116f93..c5d3631fcb1 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -6601,6 +6601,7 @@ StartupXLOG(void) */ ereport(PANIC, (errmsg("could not locate a valid checkpoint record"))); + abort(); /* NOTREACHED */ } else { @@ -6614,8 +6615,11 @@ StartupXLOG(void) InRecovery = true; /* force recovery even if SHUTDOWNED */ } else + { ereport(PANIC, (errmsg("could not locate a valid checkpoint record"))); + abort(); /* NOTREACHED */ + } } memcpy(&checkPoint, XLogRecGetData(record), sizeof(CheckPoint)); wasShutdown = (record->xl_info == XLOG_CHECKPOINT_SHUTDOWN); [parent: 3f9700acb238]