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:16880a28aad1a868 | forum post 16880a28aad1a868]. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
ab7ad2348c1a357c04d19c9bbaf57aba |
| User & Date: | stephan 2022-03-01 21:02:06.173 |
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: ad744440dc 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:16880a28aad1a868 | forum post 16880a28aad1a868]. check-in: ab7ad2348c 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: adfc1a6b60 user: drh tags: trunk | |
| 16:21 | Fix an unused var warning in windows Closed-Leaf check-in: 169a3dabcf 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;
|
| ︙ | ︙ |