From: shaneh Date: Wed, 7 Jul 2010 13:58:11 +0000 (+0000) Subject: Fix minor issue in xAccess() method for Windows. X-Git-Tag: version-3.7.2~176^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7ea7259176a1099f27cf3684017223d1ed3062ac;p=thirdparty%2Fsqlite.git Fix minor issue in xAccess() method for Windows. FossilOrigin-Name: 4bfd46f1db41009a1b925d61c6f074b933caa4ec --- diff --git a/manifest b/manifest index 22b01ac3be..6f7e78ce09 100644 --- a/manifest +++ b/manifest @@ -1,8 +1,5 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - -C Add\stestcase\smacros\sto\sensure\sthat\slarge-file\scases\sare\stested\sin\sWAL. -D 2010-07-07T13:43:19 +C Fix\sminor\sissue\sin\sxAccess()\smethod\sfor\sWindows. +D 2010-07-07T13:58:11 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.in c4270a1cd7cd70a263b7e96a258aa90e9c3618eb F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 @@ -158,7 +155,7 @@ F src/os.h d7775504a51e6e0d40315aa427b3e229ff9ff9ca F src/os_common.h a8f95b81eca8a1ab8593d23e94f8a35f35d4078f F src/os_os2.c 665876d5eec7585226b0a1cf5e18098de2b2da19 F src/os_unix.c c6112f0ae34f23ae5ca0189a685e084befbdcf26 -F src/os_win.c f0c975122ef078fc0e3754d794a9581aa77ed15d +F src/os_win.c c4b785547bbdf334f858c863c63177492e306c92 F src/pager.c 311571e62fe6a039d2a8dddea830981a6052239a F src/pager.h 879fdde5a102d2f21a3135d6f647530b21c2796c F src/parse.y ace5c7a125d9f2a410e431ee3209034105045f7e @@ -834,14 +831,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f -P 8657455a11d20dbf78247559670943a72541a09d -R 5b2575fde5ab17ee5f094117e90d3426 -U drh -Z 7ccf2025fd40e8aba2c7da7154bbcd44 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.6 (GNU/Linux) - -iD8DBQFMNIR7oxKgR168RlERAkQPAJ9XXJ1y1kSaFlQZxEA2iMYW2lDrgACdFLMj -nP/rGIBPD7YjnRDzUgfyo/A= -=Xptt ------END PGP SIGNATURE----- +P 8156b57ac33161ae6dd8a9413127ecce3c9eae83 +R 0997b8c0aeeb70b49f1a9db77f666f95 +U shaneh +Z 6fcb36d2434c0ecb594c639a41c5a5ab diff --git a/manifest.uuid b/manifest.uuid index da4c2b1ca4..851503778f 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -8156b57ac33161ae6dd8a9413127ecce3c9eae83 \ No newline at end of file +4bfd46f1db41009a1b925d61c6f074b933caa4ec \ No newline at end of file diff --git a/src/os_win.c b/src/os_win.c index c144a37131..02df5aa625 100644 --- a/src/os_win.c +++ b/src/os_win.c @@ -2088,14 +2088,21 @@ static int winAccess( if( isNT() ){ WIN32_FILE_ATTRIBUTE_DATA sAttrData; memset(&sAttrData, 0, sizeof(sAttrData)); - attr = GetFileAttributesExW((WCHAR*)zConverted, - GetFileExInfoStandard, &sAttrData); - /* For an SQLITE_ACCESS_EXISTS query, treat a zero-length file - ** as if it does not exist. - */ - if( flags==SQLITE_ACCESS_EXISTS && attr!=INVALID_FILE_ATTRIBUTES - && sAttrData.nFileSizeHigh==0 && sAttrData.nFileSizeLow==0 ){ - attr = INVALID_FILE_ATTRIBUTES; + if( GetFileAttributesExW((WCHAR*)zConverted, + GetFileExInfoStandard, + &sAttrData) ){ + /* For an SQLITE_ACCESS_EXISTS query, treat a zero-length file + ** as if it does not exist. + */ + if( flags==SQLITE_ACCESS_EXISTS + && sAttrData.nFileSizeHigh==0 + && sAttrData.nFileSizeLow==0 ){ + attr = INVALID_FILE_ATTRIBUTES; + }else{ + attr = sAttrData.dwFileAttributes; + } + }else{ + return SQLITE_IOERR; } /* isNT() is 1 if SQLITE_OS_WINCE==1, so this else is never executed. ** Since the ASCII version of these Windows API do not exist for WINCE,