aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordrh <>2025-06-26 18:57:20 +0000
committerdrh <>2025-06-26 18:57:20 +0000
commite77e589a35862f6ac9c4141cfd1beb2844b84c61 (patch)
tree3c8011ea60691d2395cec35188afa0fb7fff5048 /src
parent981022b7ff7382087ca56b2c5605098e1910e975 (diff)
downloadsqlite-e77e589a35862f6ac9c4141cfd1beb2844b84c61.tar.gz
sqlite-e77e589a35862f6ac9c4141cfd1beb2844b84c61.zip
Work around an apparent GCC UBSAN bug. See
[forum:/forumpost/1d7c25d4a2d6f5e2|forum thread 1d7c25d4a2d] for details. FossilOrigin-Name: 23056532e51abcff486e38a3319545e6663b4a855abe1bc443e2cd7e0473748c
Diffstat (limited to 'src')
-rw-r--r--src/btree.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/btree.c b/src/btree.c
index dc73ac559..1806a914a 100644
--- a/src/btree.c
+++ b/src/btree.c
@@ -8696,7 +8696,12 @@ static int balance_nonroot(
** of the right-most new sibling page is set to the value that was
** originally in the same field of the right-most old sibling page. */
if( (pageFlags & PTF_LEAF)==0 && nOld!=nNew ){
- MemPage *pOld = (nNew>nOld ? apNew : apOld)[nOld-1];
+ MemPage *pOld;
+ if( nNew>nOld ){
+ pOld = apNew[nOld-1];
+ }else{
+ pOld = apOld[nOld-1];
+ }
memcpy(&apNew[nNew-1]->aData[8], &pOld->aData[8], 4);
}