]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Check the return code from sqlite3OsFileControl() in sqlite3BtreeCopyFile()
authordrh <drh@noemail.net>
Tue, 10 Jan 2012 16:40:50 +0000 (16:40 +0000)
committerdrh <drh@noemail.net>
Tue, 10 Jan 2012 16:40:50 +0000 (16:40 +0000)
and report any errors that it generates.

FossilOrigin-Name: 7f852ac6435f1c9e25b07f816cca5ba40484579e

manifest
manifest.uuid
src/backup.c

index c828f0e8c853ece2ddafaf97cdc4071b4ed403f6..460c846f4004f26525cefdffaf63d0454c7a9396 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\sthe\sBenignMalloc()\sfrom\saround\sthe\scall\sto\sFCNTL_OVERWRITE.\s\sAdd\nnew\sones\saround\ssqlite3OsDelete().\s\sFix\san\sassert\sthat\scauses\sproblems\sfor\nthe\snx-devkit.
-D 2012-01-10T00:24:59.279
+C Check\sthe\sreturn\scode\sfrom\ssqlite3OsFileControl()\sin\ssqlite3BtreeCopyFile()\nand\sreport\sany\serrors\sthat\sit\sgenerates.
+D 2012-01-10T16:40:50.339
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -122,7 +122,7 @@ F src/alter.c ac80a0f31189f8b4a524ebf661e47e84536ee7f5
 F src/analyze.c f32ff304da413851eefa562b04e61ff6cb88248b
 F src/attach.c 12c6957996908edc31c96d7c68d4942c2474405f
 F src/auth.c 523da7fb4979469955d822ff9298352d6b31de34
-F src/backup.c 52a4450a134096a59053583af47b0f0eee12ea6c
+F src/backup.c e9538bad2d4a4fcd4308f1aed7cb18a0fbc968f9
 F src/bitvec.c af50f1c8c0ff54d6bdb7a80e2fceca5a93670bef
 F src/btmutex.c 976f45a12e37293e32cae0281b15a21d48a8aaa7
 F src/btree.c 378a0f39d6e25cc3f7c40db3d90ec6f0a29e7733
@@ -986,7 +986,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-P 393fc78a18004c839d889de2a25ec046ad6f13fc
-R 9da4d78c41dff2dd67ad0c526f0529da
+P 38bc4236d5a9d9f22a525bf9308d90cd4d9ce5a4
+R c4e25307d4fb90fb68174b26289cb5de
 U drh
-Z 57daf1f62c13fa4dbe43cebca4af9d0c
+Z 18b8db42ef28aa8a6ef4ac91e374bf92
index 8bbd12ce5dc2f66fadf53389804744b53bb75f6c..c57c08e83f962f194b2fd301d6bd5c3c162593fc 100644 (file)
@@ -1 +1 @@
-38bc4236d5a9d9f22a525bf9308d90cd4d9ce5a4
\ No newline at end of file
+7f852ac6435f1c9e25b07f816cca5ba40484579e
\ No newline at end of file
index 0e99e35b7c38c86d61bdadbe231c2cb5ed1adca1..aa3401897b7850c17efdc0f16cec332f1d4390db 100644 (file)
@@ -678,7 +678,9 @@ int sqlite3BtreeCopyFile(Btree *pTo, Btree *pFrom){
   pFd = sqlite3PagerFile(sqlite3BtreePager(pTo));
   if( pFd->pMethods ){
     i64 nByte = sqlite3BtreeGetPageSize(pFrom)*(i64)sqlite3BtreeLastPage(pFrom);
-    sqlite3OsFileControl(pFd, SQLITE_FCNTL_OVERWRITE, &nByte);
+    rc = sqlite3OsFileControl(pFd, SQLITE_FCNTL_OVERWRITE, &nByte);
+    if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;
+    if( rc ) goto copy_finished;
   }
 
   /* Set up an sqlite3_backup object. sqlite3_backup.pDestDb must be set
@@ -709,6 +711,7 @@ int sqlite3BtreeCopyFile(Btree *pTo, Btree *pFrom){
   }
 
   assert( sqlite3BtreeIsInTrans(pTo)==0 );
+copy_finished:
   sqlite3BtreeLeave(pFrom);
   sqlite3BtreeLeave(pTo);
   return rc;