aboutsummaryrefslogtreecommitdiff
path: root/src/pager.c
diff options
context:
space:
mode:
authordrh <>2023-11-10 17:49:26 +0000
committerdrh <>2023-11-10 17:49:26 +0000
commit5a81e6e5cedb29be1ce8d41053c27e5b4a4f82fd (patch)
tree0704703f4af9eb6c968d200f88e8a278f4251eea /src/pager.c
parent53381132be7ca901d821922f31bd62d4558fc489 (diff)
downloadsqlite-5a81e6e5cedb29be1ce8d41053c27e5b4a4f82fd.tar.gz
sqlite-5a81e6e5cedb29be1ce8d41053c27e5b4a4f82fd.zip
Ensure 8-byte alignment of data structues in sqlite3_database_file_object().
This should have appeared on trunk originally and then be cherry-picked onto the branch. Oh well.... FossilOrigin-Name: ac39800bb2685fa287c7d834faed75f0bc61320ef986de314392d6eadb574d30
Diffstat (limited to 'src/pager.c')
-rw-r--r--src/pager.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/pager.c b/src/pager.c
index e54750424..4687ab0f1 100644
--- a/src/pager.c
+++ b/src/pager.c
@@ -5062,10 +5062,13 @@ act_like_temp_file:
*/
sqlite3_file *sqlite3_database_file_object(const char *zName){
Pager *pPager;
+ const char *p;
while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){
zName--;
}
- pPager = *(Pager**)(zName - 4 - sizeof(Pager*));
+ p = zName - 4 - sizeof(Pager*);
+ assert( EIGHT_BYTE_ALIGNMENT(p) );
+ pPager = *(Pager**)p;
return pPager->fd;
}