From: drh Date: Wed, 2 Dec 2015 02:08:30 +0000 (+0000) Subject: Fix a (harmless) off-by-one error in the unix VFS logic that fsync()s a X-Git-Tag: version-3.10.0~74 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=adfa22e118e7a0db0a89ff899ddcd48d517e9c31;p=thirdparty%2Fsqlite.git Fix a (harmless) off-by-one error in the unix VFS logic that fsync()s a directory after deleting a file. FossilOrigin-Name: 3d02711a709a7e708edb0ea8ca5d17b39dd307f6 --- diff --git a/manifest b/manifest index f950ba358b..0870896448 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Simplification\sof\sthe\slogic\sused\sto\stake\sthe\sprocess-wide\slock\sin\sthe\nunix-excl\sVFS. -D 2015-12-02T01:04:33.889 +C Fix\sa\s(harmless)\soff-by-one\serror\sin\sthe\sunix\sVFS\slogic\sthat\sfsync()s\sa\ndirectory\safter\sdeleting\sa\sfile. +D 2015-12-02T02:08:30.997 F Makefile.in 23d9a63484a383fc64951b25ef44067930f98dc6 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc e8fdca1cb89a1b58b5f4d3a130ea9a3d28cb314d @@ -323,7 +323,7 @@ F src/os.c 8fd25588eeba74068d41102d26810e216999b6c8 F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf F src/os_common.h abdb9a191a367793268fe553d25bab894e986a0e F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa -F src/os_unix.c 207fef7c47f3d77cf8a52edd5ebd53b67e731fd1 +F src/os_unix.c 27a7ead71bfca5d90ad965f2ac46b37b63f07189 F src/os_win.c 386fba30419e8458b13209781c2af5590eab2811 F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca F src/pager.c f92aacd5216d8815136c9e0190041783c602641a @@ -1408,7 +1408,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P e1d5320ca089336e26d200305b744b06ce883be4 -R 529fef7e01cd9bbdb6610da9a8964270 +P 73defd52bb0e3e5db763d3bfbeebc972b645867e +R e028288719c771a5625e51b4f5de27be U drh -Z 697c3f68f06eec6f2193816dd17daae9 +Z 2550f7a73cc643eb4c13a681e63731c8 diff --git a/manifest.uuid b/manifest.uuid index 9faa68982f..9e1954b28f 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -73defd52bb0e3e5db763d3bfbeebc972b645867e \ No newline at end of file +3d02711a709a7e708edb0ea8ca5d17b39dd307f6 \ No newline at end of file diff --git a/src/os_unix.c b/src/os_unix.c index 38c8d7b619..8eff392a66 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3461,7 +3461,7 @@ static int openDirectory(const char *zFilename, int *pFd){ sqlite3_snprintf(MAX_PATHNAME, zDirname, "%s", zFilename); for(ii=(int)strlen(zDirname); ii>1 && zDirname[ii]!='/'; ii--); - if( ii>0 ){ + if( ii>1 ){ zDirname[ii] = '\0'; fd = robust_open(zDirname, O_RDONLY|O_BINARY, 0); if( fd>=0 ){