mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-14 00:22:38 +03:00
Fix an important bug in the handling of EINTR in unixRead(). Never came
up on x86 but crashes on sparc. FossilOrigin-Name: 1a16db0bca717a2582a48332d81854ca90d6d49b
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fix\sa\sboundary\scase\sfor\sthe\sinteger\saffinity\sroutine\sfor\snon-x86\sprocessors.
|
C Fix\san\simportant\sbug\sin\sthe\shandling\sof\sEINTR\sin\sunixRead().\s\sNever\scame\nup\son\sx86\sbut\scrashes\son\ssparc.
|
||||||
D 2012-02-10T01:25:13.282
|
D 2012-02-10T03:10:27.620
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
|
F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -166,7 +166,7 @@ F src/os.c e1acdc09ff3ac2412945cca9766e2dcf4675f31c
|
|||||||
F src/os.h 59beba555b65a450bd1d804220532971d4299f60
|
F src/os.h 59beba555b65a450bd1d804220532971d4299f60
|
||||||
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
|
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
|
||||||
F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
|
F src/os_os2.c 4a75888ba3dfc820ad5e8177025972d74d7f2440
|
||||||
F src/os_unix.c 657672fab2580a84116c140b36ee3d6b6fc75b4e
|
F src/os_unix.c d509b369ed376c77bc547961844a105d3907e4fa
|
||||||
F src/os_win.c 5ac061ae1326a71500cee578ed0fd9113b4f6a37
|
F src/os_win.c 5ac061ae1326a71500cee578ed0fd9113b4f6a37
|
||||||
F src/pager.c 2d892f7b901a8867a33bc21742086165a3a99af8
|
F src/pager.c 2d892f7b901a8867a33bc21742086165a3a99af8
|
||||||
F src/pager.h a435da8421dc7844b7f9c7f37b636c160c50208a
|
F src/pager.h a435da8421dc7844b7f9c7f37b636c160c50208a
|
||||||
@@ -989,7 +989,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
|
|||||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||||
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
|
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
|
||||||
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
||||||
P 16a471129d497f45935b5d00df7ce9ec731ee498
|
P bea05ddddf5089bac9b1aa9fe1d2cd24b069ad44
|
||||||
R 6215b24575860936c7fbc53b2c141f64
|
R c0159fca8df351a2a43a5aba36c14e85
|
||||||
U drh
|
U drh
|
||||||
Z c3db51a3b8697db7ee0c8145390b81ef
|
Z fadd9eaaad3a4f73aa794a26fa5c7111
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
bea05ddddf5089bac9b1aa9fe1d2cd24b069ad44
|
1a16db0bca717a2582a48332d81854ca90d6d49b
|
||||||
@@ -5413,7 +5413,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nBuf, char *zBuf){
|
|||||||
memset(zBuf, 0, nBuf);
|
memset(zBuf, 0, nBuf);
|
||||||
#if !defined(SQLITE_TEST)
|
#if !defined(SQLITE_TEST)
|
||||||
{
|
{
|
||||||
int pid, fd;
|
int pid, fd, got;
|
||||||
fd = robust_open("/dev/urandom", O_RDONLY, 0);
|
fd = robust_open("/dev/urandom", O_RDONLY, 0);
|
||||||
if( fd<0 ){
|
if( fd<0 ){
|
||||||
time_t t;
|
time_t t;
|
||||||
@@ -5424,7 +5424,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nBuf, char *zBuf){
|
|||||||
assert( sizeof(t)+sizeof(pid)<=(size_t)nBuf );
|
assert( sizeof(t)+sizeof(pid)<=(size_t)nBuf );
|
||||||
nBuf = sizeof(t) + sizeof(pid);
|
nBuf = sizeof(t) + sizeof(pid);
|
||||||
}else{
|
}else{
|
||||||
do{ nBuf = osRead(fd, zBuf, nBuf); }while( nBuf<0 && errno==EINTR );
|
do{ got = osRead(fd, zBuf, nBuf); }while( got<0 && errno==EINTR );
|
||||||
robust_close(0, fd, __LINE__);
|
robust_close(0, fd, __LINE__);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user