Fossil SCM
Fix [http://www.sqlite.org/src/info/96d3e99ffe59b528|96d3e99ffe59b528]: Memory allocation bug. I saw crashes on 32-bit Linux (Ubuntu 14.04), so it's not only win32 which was affected by this bug.
Commit
b85b159beea6978677b2910118b7596848cd5809
Parent
b5354f19f21a345…
1 file changed
+1
+1
| --- src/sqlite3.c | ||
| +++ src/sqlite3.c | ||
| @@ -68858,10 +68858,11 @@ | ||
| 68858 | 68858 | p->usesStmtJournal = (u8)(pParse->isMultiWrite && pParse->mayAbort); |
| 68859 | 68859 | if( pParse->explain && nMem<10 ){ |
| 68860 | 68860 | nMem = 10; |
| 68861 | 68861 | } |
| 68862 | 68862 | memset(zCsr, 0, nFree); |
| 68863 | + nFree -= (zCsr - (u8*)0)&7; | |
| 68863 | 68864 | zCsr += (zCsr - (u8*)0)&7; |
| 68864 | 68865 | assert( EIGHT_BYTE_ALIGNMENT(zCsr) ); |
| 68865 | 68866 | p->expired = 0; |
| 68866 | 68867 | |
| 68867 | 68868 | /* Memory for registers, parameters, cursor, etc, is allocated in two |
| 68868 | 68869 |
| --- src/sqlite3.c | |
| +++ src/sqlite3.c | |
| @@ -68858,10 +68858,11 @@ | |
| 68858 | p->usesStmtJournal = (u8)(pParse->isMultiWrite && pParse->mayAbort); |
| 68859 | if( pParse->explain && nMem<10 ){ |
| 68860 | nMem = 10; |
| 68861 | } |
| 68862 | memset(zCsr, 0, nFree); |
| 68863 | zCsr += (zCsr - (u8*)0)&7; |
| 68864 | assert( EIGHT_BYTE_ALIGNMENT(zCsr) ); |
| 68865 | p->expired = 0; |
| 68866 | |
| 68867 | /* Memory for registers, parameters, cursor, etc, is allocated in two |
| 68868 |
| --- src/sqlite3.c | |
| +++ src/sqlite3.c | |
| @@ -68858,10 +68858,11 @@ | |
| 68858 | p->usesStmtJournal = (u8)(pParse->isMultiWrite && pParse->mayAbort); |
| 68859 | if( pParse->explain && nMem<10 ){ |
| 68860 | nMem = 10; |
| 68861 | } |
| 68862 | memset(zCsr, 0, nFree); |
| 68863 | nFree -= (zCsr - (u8*)0)&7; |
| 68864 | zCsr += (zCsr - (u8*)0)&7; |
| 68865 | assert( EIGHT_BYTE_ALIGNMENT(zCsr) ); |
| 68866 | p->expired = 0; |
| 68867 | |
| 68868 | /* Memory for registers, parameters, cursor, etc, is allocated in two |
| 68869 |