mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-06 15:49:35 +03:00
small correctness fix for os2CheckReservedLock() (CVS 4785)
FossilOrigin-Name: f364d9342345cb11a4fd1961ab4f6387fb6abacc
This commit is contained in:
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.
|
||||
*/
|
||||
int os2CheckReservedLock( sqlite3_file *id ){
|
||||
APIRET rc = NO_ERROR;
|
||||
int r = 0;
|
||||
os2File *pFile = (os2File*)id;
|
||||
assert( pFile!=0 );
|
||||
if( pFile->locktype>=RESERVED_LOCK ){
|
||||
rc = 1;
|
||||
OSTRACE3( "TEST WR-LOCK %d %d (local)\n", pFile->h, rc );
|
||||
r = 1;
|
||||
OSTRACE3( "TEST WR-LOCK %d %d (local)\n", pFile->h, r );
|
||||
}else{
|
||||
FILELOCK LockArea,
|
||||
UnlockArea;
|
||||
APIRET rc = NO_ERROR;
|
||||
memset(&LockArea, 0, sizeof(LockArea));
|
||||
memset(&UnlockArea, 0, sizeof(UnlockArea));
|
||||
LockArea.lOffset = RESERVED_BYTE;
|
||||
@@ -440,17 +441,18 @@ int os2CheckReservedLock( sqlite3_file *id ){
|
||||
rc = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
|
||||
OSTRACE3( "TEST WR-LOCK %d lock reserved byte rc=%d\n", pFile->h, rc );
|
||||
if( rc == NO_ERROR ){
|
||||
int r;
|
||||
APIRET rcu = NO_ERROR; /* return code for unlocking */
|
||||
LockArea.lOffset = 0L;
|
||||
LockArea.lRange = 0L;
|
||||
UnlockArea.lOffset = RESERVED_BYTE;
|
||||
UnlockArea.lRange = 1L;
|
||||
r = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
|
||||
OSTRACE3( "TEST WR-LOCK %d unlock reserved byte r=%d\n", pFile->h, r );
|
||||
rcu = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
|
||||
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