diff options
author | 2014-03-24 01:37:28 +0000 | |
---|---|---|
committer | 2014-03-24 01:37:28 +0000 | |
commit | 29ebcee2452a131560f5220abaf585648f84ce40 (patch) | |
tree | 844ef4fe135beff619b9e7b632f3b6722d6367e4 /lib/libsqlite3/src/os.c | |
parent | annotate some packed structures with the alignment the hardware (diff) | |
download | wireguard-openbsd-29ebcee2452a131560f5220abaf585648f84ce40.tar.xz wireguard-openbsd-29ebcee2452a131560f5220abaf585648f84ce40.zip |
Update sqlite to 3.8.4. A list of changes are available here:
http://sqlite.org/changes.html.
Tested in a bulk and ok landry@
Diffstat (limited to 'lib/libsqlite3/src/os.c')
-rw-r--r-- | lib/libsqlite3/src/os.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/lib/libsqlite3/src/os.c b/lib/libsqlite3/src/os.c index be2ea4cfc01..b6c28a1dc44 100644 --- a/lib/libsqlite3/src/os.c +++ b/lib/libsqlite3/src/os.c @@ -107,7 +107,21 @@ int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut){ ** routine has no return value since the return value would be meaningless. */ int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){ - DO_OS_MALLOC_TEST(id); +#ifdef SQLITE_TEST + if( op!=SQLITE_FCNTL_COMMIT_PHASETWO ){ + /* Faults are not injected into COMMIT_PHASETWO because, assuming SQLite + ** is using a regular VFS, it is called after the corresponding + ** transaction has been committed. Injecting a fault at this point + ** confuses the test scripts - the COMMIT comand returns SQLITE_NOMEM + ** but the transaction is committed anyway. + ** + ** The core must call OsFileControl() though, not OsFileControlHint(), + ** as if a custom VFS (e.g. zipvfs) returns an error here, it probably + ** means the commit really has failed and an error should be returned + ** to the user. */ + DO_OS_MALLOC_TEST(id); + } +#endif return id->pMethods->xFileControl(id, op, pArg); } void sqlite3OsFileControlHint(sqlite3_file *id, int op, void *pArg){ |