diff options
author | drh <> | 2025-06-26 18:57:20 +0000 |
---|---|---|
committer | drh <> | 2025-06-26 18:57:20 +0000 |
commit | e77e589a35862f6ac9c4141cfd1beb2844b84c61 (patch) | |
tree | 3c8011ea60691d2395cec35188afa0fb7fff5048 /src | |
parent | 981022b7ff7382087ca56b2c5605098e1910e975 (diff) | |
download | sqlite-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.c | 7 |
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); } |