Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Ensure that db_open()'s db-is-an-appendvfs-binary check uses canonicalized filenames to avoid the problem reported in forum post 16880a28aad1a868. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ab7ad2348c1a357c04d19c9bbaf57aba |
User & Date: | stephan 2022-03-01 21:02:06 |
Context
2022-03-02
| ||
02:00 | Update the built-in SQLite to the latest trunk version that includes various performance enhancements. The purpose here is to test the recent SQLite enhancements in a real-world application. ... (check-in: ad744440 user: drh tags: trunk) | |
2022-03-01
| ||
21:02 | Ensure that db_open()'s db-is-an-appendvfs-binary check uses canonicalized filenames to avoid the problem reported in forum post 16880a28aad1a868. ... (check-in: ab7ad234 user: stephan tags: trunk) | |
17:21 | Allow optional "-" characters in the huge string argument to bid= on /timeline so that when the hyperlink will have wrap opportunities when pasted into the chat. ... (check-in: adfc1a6b user: drh tags: trunk) | |
16:21 | Fix an unused var warning in windows ... (Closed-Leaf check-in: 169a3dab user: mgagnon tags: nameofexe-appendvfs-check) | |
Changes
Changes to src/db.c.
︙ | ︙ | |||
1633 1634 1635 1636 1637 1638 1639 1640 1641 | /* ** Open a database file. Return a pointer to the new database ** connection. An error results in process abort. */ LOCAL sqlite3 *db_open(const char *zDbName){ int rc; sqlite3 *db; if( g.fSqlTrace ) fossil_trace("-- sqlite3_open: [%s]\n", zDbName); | > > > > > > | > | 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 | /* ** Open a database file. Return a pointer to the new database ** connection. An error results in process abort. */ LOCAL sqlite3 *db_open(const char *zDbName){ int rc; sqlite3 *db; Blob bNameCheck = BLOB_INITIALIZER; if( g.fSqlTrace ) fossil_trace("-- sqlite3_open: [%s]\n", zDbName); file_canonical_name(zDbName, &bNameCheck, 0) /* For purposes of the apndvfs check, g.nameOfExe and zDbName must ** both be canonicalized, else chances are very good that they ** will not match even if they're the same file. Details: ** https://fossil-scm.org/forum/forumpost/16880a28aad1a868 */; if( strcmp(blob_str(&bNameCheck), g.nameOfExe)==0 ){ extern int sqlite3_appendvfs_init( sqlite3 *, char **, const sqlite3_api_routines * ); sqlite3_appendvfs_init(0,0,0); g.zVfsName = "apndvfs"; } blob_zero(&bNameCheck); rc = sqlite3_open_v2( zDbName, &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, g.zVfsName ); if( rc!=SQLITE_OK ){ db_err("[%s]: %s", zDbName, sqlite3_errmsg(db)); |
︙ | ︙ |
Changes to src/main.c.
︙ | ︙ | |||
418 419 420 421 422 423 424 | unsigned int i, j, k; /* Loop counters */ int n; /* Number of bytes in one line */ unsigned int nArg; /* Number of new arguments */ char *z; /* General use string pointer */ char **newArgv; /* New expanded g.argv under construction */ const char *zFileName; /* input file name */ FILE *inFile; /* input FILE */ | < < < < < < < | < | 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 | unsigned int i, j, k; /* Loop counters */ int n; /* Number of bytes in one line */ unsigned int nArg; /* Number of new arguments */ char *z; /* General use string pointer */ char **newArgv; /* New expanded g.argv under construction */ const char *zFileName; /* input file name */ FILE *inFile; /* input FILE */ g.argc = argc; g.argv = argv; sqlite3_initialize(); #if defined(_WIN32) && defined(BROKEN_MINGW_CMDLINE) for(i=0; i<g.argc; i++) g.argv[i] = fossil_mbcs_to_utf8(g.argv[i]); #else for(i=0; i<g.argc; i++) g.argv[i] = fossil_path_to_utf8(g.argv[i]); #endif g.nameOfExe = file_fullexename(g.argv[0]); for(i=1; i<g.argc-1; i++){ z = g.argv[i]; if( z[0]!='-' ) continue; z++; if( z[0]=='-' ) z++; if( z[0]==0 ) return; /* Stop searching at "--" */ if( fossil_strcmp(z, "args")==0 ) break; |
︙ | ︙ |