From dd1f645cc8831f55591e466c56b3953b9d100993 Mon Sep 17 00:00:00 2001 From: Peter Geoghegan Date: Thu, 30 Apr 2020 12:31:56 -0700 Subject: [PATCH] Fix AddressSanitizer use-after-scope complaint. XLogRegisterBufData() does not copy data pointed to by caller's pointer argument. Oversight in commit 0d861bbb702. Author: Peter Eisentraut Reported-By: Peter Eisentraut Discussion: https://postgr.es/m/21800dbe-a13e-22f7-d423-b81db9d249f5@2ndquadrant.com --- src/backend/access/nbtree/nbtinsert.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c index a70b64d964..8246ab4f18 100644 --- a/src/backend/access/nbtree/nbtinsert.c +++ b/src/backend/access/nbtree/nbtinsert.c @@ -1289,6 +1289,7 @@ _bt_insertonpg(Relation rel, xl_btree_metadata xlmeta; uint8 xlinfo; XLogRecPtr recptr; + uint16 upostingoff; xlrec.offnum = newitemoff; @@ -1354,7 +1355,7 @@ _bt_insertonpg(Relation rel, * must reconstruct final itup (as well as nposting) using * _bt_swap_posting(). */ - uint16 upostingoff = postingoff; + upostingoff = postingoff; XLogRegisterBufData(0, (char *) &upostingoff, sizeof(uint16)); XLogRegisterBufData(0, (char *) origitup,