mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-08 03:22:21 +03:00
small correctness fix for os2CheckReservedLock() (CVS 4785)
FossilOrigin-Name: f364d9342345cb11a4fd1961ab4f6387fb6abacc
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C always\suse\srandom\saccess\smode\swhen\sopening\sfiles\s(like\son\sWindows)\s(CVS\s4784)
|
C small\scorrectness\sfix\sfor\sos2CheckReservedLock()\s(CVS\s4785)
|
||||||
D 2008-02-13T23:48:03
|
D 2008-02-14T00:00:50
|
||||||
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
|
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
|
||||||
F Makefile.in bc2b5df3e3d0d4b801b824b7ef6dec43812b049b
|
F Makefile.in bc2b5df3e3d0d4b801b824b7ef6dec43812b049b
|
||||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||||
@@ -117,7 +117,7 @@ F src/mutex_w32.c 6e197765f283815496193e78e9548b5d0e53b68e
|
|||||||
F src/os.c 2f2753b8d33f79d169c43d6bb0b25b3c58fd33de
|
F src/os.c 2f2753b8d33f79d169c43d6bb0b25b3c58fd33de
|
||||||
F src/os.h d04706d54a072c7a30ab9e346ad916ef28c842d5
|
F src/os.h d04706d54a072c7a30ab9e346ad916ef28c842d5
|
||||||
F src/os_common.h 98862f120ca6bf7a48ce8b16f158b77d00bc9d2f
|
F src/os_common.h 98862f120ca6bf7a48ce8b16f158b77d00bc9d2f
|
||||||
F src/os_os2.c c87c6501bd90896cfca822a4e4d0ac5a79726833
|
F src/os_os2.c 10b23539e0050bdfc9f136242086a5c18c70c6f8
|
||||||
F src/os_os2.h c3f7d0af7e3453d1d7aa81b06c0a56f5a226530b
|
F src/os_os2.h c3f7d0af7e3453d1d7aa81b06c0a56f5a226530b
|
||||||
F src/os_test.c 49833426101f99aee4bb5f6a44b7c4b2029fda1c
|
F src/os_test.c 49833426101f99aee4bb5f6a44b7c4b2029fda1c
|
||||||
F src/os_test.h 903c93554c23d88f34f667f1979e4a1cee792af3
|
F src/os_test.h 903c93554c23d88f34f667f1979e4a1cee792af3
|
||||||
@@ -617,7 +617,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
|
|||||||
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
|
||||||
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
|
||||||
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
|
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
|
||||||
P 990237e27e417aff3dbf05784b716c21f3761a3a
|
P 9f4da1013b558fcabadc3a3bec6bcdae9b06399e
|
||||||
R 3788206f84973cfe13dcb12194a04a3f
|
R 94f187d6e650525a58156f7c677755bf
|
||||||
U pweilbacher
|
U pweilbacher
|
||||||
Z e273b159944d84bb5a06e978a939110a
|
Z 887a4d708e81eb8b0e1ad4f9e83b5340
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
9f4da1013b558fcabadc3a3bec6bcdae9b06399e
|
f364d9342345cb11a4fd1961ab4f6387fb6abacc
|
||||||
18
src/os_os2.c
18
src/os_os2.c
@@ -422,15 +422,16 @@ int os2Lock( sqlite3_file *id, int locktype ){
|
|||||||
** non-zero, otherwise zero.
|
** non-zero, otherwise zero.
|
||||||
*/
|
*/
|
||||||
int os2CheckReservedLock( sqlite3_file *id ){
|
int os2CheckReservedLock( sqlite3_file *id ){
|
||||||
APIRET rc = NO_ERROR;
|
int r = 0;
|
||||||
os2File *pFile = (os2File*)id;
|
os2File *pFile = (os2File*)id;
|
||||||
assert( pFile!=0 );
|
assert( pFile!=0 );
|
||||||
if( pFile->locktype>=RESERVED_LOCK ){
|
if( pFile->locktype>=RESERVED_LOCK ){
|
||||||
rc = 1;
|
r = 1;
|
||||||
OSTRACE3( "TEST WR-LOCK %d %d (local)\n", pFile->h, rc );
|
OSTRACE3( "TEST WR-LOCK %d %d (local)\n", pFile->h, r );
|
||||||
}else{
|
}else{
|
||||||
FILELOCK LockArea,
|
FILELOCK LockArea,
|
||||||
UnlockArea;
|
UnlockArea;
|
||||||
|
APIRET rc = NO_ERROR;
|
||||||
memset(&LockArea, 0, sizeof(LockArea));
|
memset(&LockArea, 0, sizeof(LockArea));
|
||||||
memset(&UnlockArea, 0, sizeof(UnlockArea));
|
memset(&UnlockArea, 0, sizeof(UnlockArea));
|
||||||
LockArea.lOffset = RESERVED_BYTE;
|
LockArea.lOffset = RESERVED_BYTE;
|
||||||
@@ -440,17 +441,18 @@ int os2CheckReservedLock( sqlite3_file *id ){
|
|||||||
rc = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
|
rc = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
|
||||||
OSTRACE3( "TEST WR-LOCK %d lock reserved byte rc=%d\n", pFile->h, rc );
|
OSTRACE3( "TEST WR-LOCK %d lock reserved byte rc=%d\n", pFile->h, rc );
|
||||||
if( rc == NO_ERROR ){
|
if( rc == NO_ERROR ){
|
||||||
int r;
|
APIRET rcu = NO_ERROR; /* return code for unlocking */
|
||||||
LockArea.lOffset = 0L;
|
LockArea.lOffset = 0L;
|
||||||
LockArea.lRange = 0L;
|
LockArea.lRange = 0L;
|
||||||
UnlockArea.lOffset = RESERVED_BYTE;
|
UnlockArea.lOffset = RESERVED_BYTE;
|
||||||
UnlockArea.lRange = 1L;
|
UnlockArea.lRange = 1L;
|
||||||
r = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
|
rcu = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
|
||||||
OSTRACE3( "TEST WR-LOCK %d unlock reserved byte r=%d\n", pFile->h, r );
|
OSTRACE3( "TEST WR-LOCK %d unlock reserved byte r=%d\n", pFile->h, rcu );
|
||||||
}
|
}
|
||||||
OSTRACE3( "TEST WR-LOCK %d %d (remote)\n", pFile->h, rc );
|
r = !(rc == NO_ERROR);
|
||||||
|
OSTRACE3( "TEST WR-LOCK %d %d (remote)\n", pFile->h, r );
|
||||||
}
|
}
|
||||||
return rc;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user