Fix a bug in test module test_fs.c causing a segfault on OpenBSD.

FossilOrigin-Name: ee886600297c2a03d9d1d10db88d3d107b48e5d4de5e5d91b0ab16cc7c447ede
This commit is contained in:
dan 2019-04-15 19:17:50 +00:00
parent 46b341530e
commit af4d50c4a1
3 changed files with 11 additions and 15 deletions

View File

@ -1,5 +1,5 @@
C Fix\sa\sproblem\swith\sthe\suser-auth\sextension\sand\sdeserializing\sin-memory\sdatabases.
D 2019-04-15T15:41:33.596
C Fix\sa\sbug\sin\stest\smodule\stest_fs.c\scausing\sa\ssegfault\son\sOpenBSD.
D 2019-04-15T19:17:50.242
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@ -547,7 +547,7 @@ F src/test_config.c 5ebafbcd5c75ac1c16bb0c8fe926dc325cc03e780943a88ca50e0d9a4fc4
F src/test_delete.c e2fe07646dff6300b48d49b2fee2fe192ed389e834dd635e3b3bac0ce0bf9f8f
F src/test_demovfs.c a0c3bdd45ed044115c2c9f7779e56eafff18741e
F src/test_devsym.c 1960abbb234b97e9b920f07e99503fc04b443f62bbc3c6ff2c2cea2133e3b8a2
F src/test_fs.c 70e30fdeb5038997bf5954816042f78ac6fc568c3d9e07c10b7d6af3886462d5
F src/test_fs.c ba1e1dc18fd3159fdba0b9c4256f14032159785320dfbd6776eb9973cb75d480
F src/test_func.c 181f992e5495644434c4f0e3cc72362a78c295eb2cf3ff4d02498b8bde7aa276
F src/test_hexio.c 1d4469ca61ab202a1fcec6543f584d2407205e8d
F src/test_init.c 4413c211a94b62157ca4c145b3f27c497f03c664
@ -1818,7 +1818,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 734192d876e0489cb34e454aaa4a9c6858145791a49959b31dee2917a8e41a7d
R ccb16b8d5f092c09f18270d0885ef69e
P 09fa0b3c4adf7f81a777975762029ad43dbdc76b02dc32d2307e1c42465213c9
R 2c29be806e15259c3d103a682fe95c22
U dan
Z 8977b16e1e0f2a3bdfa5e727ba8e15b2
Z 7ef87e754e329fa1f6401ed2164f4318

View File

@ -1 +1 @@
09fa0b3c4adf7f81a777975762029ad43dbdc76b02dc32d2307e1c42465213c9
ee886600297c2a03d9d1d10db88d3d107b48e5d4de5e5d91b0ab16cc7c447ede

View File

@ -129,7 +129,7 @@ struct FsdirCsr {
char *zDir; /* Buffer containing directory scanned */
DIR *pDir; /* Open directory */
sqlite3_int64 iRowid;
struct DIRENT entry; /* Current entry */
struct DIRENT *pEntry;
};
/*
@ -236,12 +236,8 @@ static int fsdirNext(sqlite3_vtab_cursor *cur){
FsdirCsr *pCsr = (FsdirCsr*)cur;
if( pCsr->pDir ){
struct DIRENT *pRes = 0;
pRes = readdir(pCsr->pDir);
if( pRes!=0 ){
memcpy(&pCsr->entry, pRes, sizeof(struct DIRENT));
}
if( pRes==0 ){
pCsr->pEntry = readdir(pCsr->pDir);
if( pCsr->pEntry==0 ){
closedir(pCsr->pDir);
pCsr->pDir = 0;
}
@ -304,7 +300,7 @@ static int fsdirColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int i){
break;
case 1: /* name */
sqlite3_result_text(ctx, pCsr->entry.d_name, -1, SQLITE_TRANSIENT);
sqlite3_result_text(ctx, pCsr->pEntry->d_name, -1, SQLITE_TRANSIENT);
break;
default: