diff options
author | dan <dan@noemail.net> | 2019-04-15 19:17:50 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2019-04-15 19:17:50 +0000 |
commit | af4d50c4a1be9a4caa06270d17ef9ea8bb7c5519 (patch) | |
tree | 0d607179b932fe086168f7a5a99d8e8e99adbcd2 | |
parent | 46b341530e03b54d9c4ae31b81abb719f4b5f0e2 (diff) | |
download | sqlite-af4d50c4a1be9a4caa06270d17ef9ea8bb7c5519.tar.gz sqlite-af4d50c4a1be9a4caa06270d17ef9ea8bb7c5519.zip |
Fix a bug in test module test_fs.c causing a segfault on OpenBSD.
FossilOrigin-Name: ee886600297c2a03d9d1d10db88d3d107b48e5d4de5e5d91b0ab16cc7c447ede
-rw-r--r-- | manifest | 12 | ||||
-rw-r--r-- | manifest.uuid | 2 | ||||
-rw-r--r-- | src/test_fs.c | 12 |
3 files changed, 11 insertions, 15 deletions
@@ -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 diff --git a/manifest.uuid b/manifest.uuid index 847e5f4d3..d78b9e093 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -09fa0b3c4adf7f81a777975762029ad43dbdc76b02dc32d2307e1c42465213c9
\ No newline at end of file +ee886600297c2a03d9d1d10db88d3d107b48e5d4de5e5d91b0ab16cc7c447ede
\ No newline at end of file diff --git a/src/test_fs.c b/src/test_fs.c index 682a083e6..ddfdc7fb5 100644 --- a/src/test_fs.c +++ b/src/test_fs.c @@ -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: |