Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Enhance codecheck1.c to check recently added varargs functions. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
b17aba9e20d823736ed93ab6ea0fb00d |
| User & Date: | drh 2020-05-28 14:20:09.637 |
Context
|
2020-05-28
| ||
| 15:46 | Updates the email-sender TCL script so that it appends a "-f" argument to sendmail which is the "From:" email address. check-in: a52499fdc4 user: drh tags: trunk | |
| 14:58 | Initial infrastructure for a command-line version of the security audit page. Leaf check-in: dba4c4f2c4 user: drh tags: audit-command | |
| 14:20 | Enhance codecheck1.c to check recently added varargs functions. check-in: b17aba9e20 user: drh tags: trunk | |
| 13:44 | Per forum discussion, moved the /fileedit ajax dispatching back down below the login check, but have it emit a JSON response if an ajax route was requested, else an HTML response. check-in: 62263b9cb0 user: stephan tags: trunk | |
Changes
Changes to src/codecheck1.c.
| ︙ | ︙ | |||
341 342 343 344 345 346 347 | if( strncmp(z,"cgi_param",9)==0 ) return 1; return 0; } /* ** Processing flags */ | | | | | | | > > | > > | | | | > > | | | | > > > | | > > > > > > > > > | 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 |
if( strncmp(z,"cgi_param",9)==0 ) return 1;
return 0;
}
/*
** Processing flags
*/
#define FMT_SQL 0x00001 /* Generator for SQL text */
#define FMT_HTML 0x00002 /* Generator for HTML text */
#define FMT_URL 0x00004 /* Generator for URLs */
#define FMT_SAFE 0x00008 /* Generator for human-readable text */
/*
** A list of internal Fossil interfaces that take a printf-style format
** string.
*/
struct FmtFunc {
const char *zFName; /* Name of the function */
int iFmtArg; /* Index of format argument. Leftmost is 1. */
unsigned fmtFlags; /* Processing flags */
} aFmtFunc[] = {
{ "admin_log", 1, FMT_SAFE },
{ "audit_append", 3, FMT_SAFE },
{ "backofficeTrace", 1, FMT_SAFE },
{ "blob_append_sql", 2, FMT_SQL },
{ "blob_appendf", 2, FMT_SAFE },
{ "cgi_debug", 1, FMT_SAFE },
{ "cgi_panic", 1, FMT_SAFE },
{ "cgi_printf", 1, FMT_HTML },
{ "cgi_printf_header", 1, FMT_HTML },
{ "cgi_redirectf", 1, FMT_URL },
{ "chref", 2, FMT_URL },
{ "CX", 1, FMT_HTML },
{ "db_blob", 2, FMT_SQL },
{ "db_debug", 1, FMT_SQL },
{ "db_double", 2, FMT_SQL },
{ "db_err", 1, FMT_SAFE },
{ "db_exists", 1, FMT_SQL },
{ "db_get_mprintf", 2, FMT_SAFE },
{ "db_int", 2, FMT_SQL },
{ "db_int64", 2, FMT_SQL },
{ "db_multi_exec", 1, FMT_SQL },
{ "db_optional_sql", 2, FMT_SQL },
{ "db_prepare", 2, FMT_SQL },
{ "db_prepare_ignore_error", 2, FMT_SQL },
{ "db_set_mprintf", 3, FMT_SAFE },
{ "db_static_prepare", 2, FMT_SQL },
{ "db_text", 2, FMT_SQL },
{ "db_unset_mprintf", 2, FMT_SAFE },
{ "emailerError", 2, FMT_SAFE },
{ "fileedit_ajax_error", 2, FMT_SAFE },
{ "form_begin", 2, FMT_URL },
{ "fossil_error", 2, FMT_SAFE },
{ "fossil_errorlog", 1, FMT_SAFE },
{ "fossil_fatal", 1, FMT_SAFE },
{ "fossil_fatal_recursive", 1, FMT_SAFE },
{ "fossil_panic", 1, FMT_SAFE },
{ "fossil_print", 1, FMT_SAFE },
{ "fossil_trace", 1, FMT_SAFE },
{ "fossil_warning", 1, FMT_SAFE },
{ "href", 1, FMT_URL },
{ "json_new_string_f", 1, FMT_SAFE },
{ "json_set_err", 2, FMT_SAFE },
{ "json_warn", 2, FMT_SAFE },
{ "mprintf", 1, FMT_SAFE },
{ "pop3_print", 2, FMT_SAFE },
{ "smtp_send_line", 2, FMT_SAFE },
{ "smtp_server_send", 2, FMT_SAFE },
{ "socket_set_errmsg", 1, FMT_SAFE },
{ "ssl_set_errmsg", 1, FMT_SAFE },
{ "style_header", 1, FMT_HTML },
{ "style_js_onload", 1, FMT_HTML },
{ "style_set_current_page", 1, FMT_URL },
{ "style_submenu_element", 2, FMT_URL },
{ "style_submenu_sql", 3, FMT_SQL },
{ "webpage_error", 1, FMT_SAFE },
{ "xhref", 2, FMT_URL },
};
/*
** Comparison function for two FmtFunc entries
*/
static int fmtfunc_cmp(const void *pAA, const void *pBB){
const struct FmtFunc *pA = (const struct FmtFunc*)pAA;
const struct FmtFunc *pB = (const struct FmtFunc*)pBB;
return strcmp(pA->zFName, pB->zFName);
}
/*
** Determine if the indentifier zIdent of length nIndent is a Fossil
** internal interface that uses a printf-style argument. Return zero if not.
** Return the index of the format string if true with the left-most
** argument having an index of 1.
*/
|
| ︙ | ︙ | |||
623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 |
** on the command-line.
**
** The eVerbose global variable is incremented with each "-v" argument.
*/
int main(int argc, char **argv){
int i;
int nErr = 0;
for(i=1; i<argc; i++){
char *zFile;
if( strcmp(argv[i],"-v")==0 ){
eVerbose++;
continue;
}
if( eVerbose>0 ) printf("Processing %s...\n", argv[i]);
zFile = read_file(argv[i]);
nErr += scan_file(argv[i], zFile);
free(zFile);
}
return nErr;
}
| > > | 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 |
** on the command-line.
**
** The eVerbose global variable is incremented with each "-v" argument.
*/
int main(int argc, char **argv){
int i;
int nErr = 0;
qsort(aFmtFunc, sizeof(aFmtFunc)/sizeof(aFmtFunc[0]),
sizeof(aFmtFunc[0]), fmtfunc_cmp);
for(i=1; i<argc; i++){
char *zFile;
if( strcmp(argv[i],"-v")==0 ){
eVerbose++;
continue;
}
if( eVerbose>0 ) printf("Processing %s...\n", argv[i]);
zFile = read_file(argv[i]);
nErr += scan_file(argv[i], zFile);
free(zFile);
}
return nErr;
}
|
Changes to src/fileedit.c.
| ︙ | ︙ | |||
985 986 987 988 989 990 991 |
const char *zContent = blob_str(pContent);
if(FE_PREVIEW_LINE_NUMBERS & flags){
output_text_with_line_numbers(zContent, "on");
}else if(zExt && zExt[1]){
CX("<pre><code class='language-%s'>%h</code></pre>",
zExt+1, zContent);
}else{
| | | 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 |
const char *zContent = blob_str(pContent);
if(FE_PREVIEW_LINE_NUMBERS & flags){
output_text_with_line_numbers(zContent, "on");
}else if(zExt && zExt[1]){
CX("<pre><code class='language-%s'>%h</code></pre>",
zExt+1, zContent);
}else{
CX("<pre>%h</pre>", zContent);
}
break;
}
}
}
/*
|
| ︙ | ︙ |
Changes to src/smtp.c.
| ︙ | ︙ | |||
1526 1527 1528 1529 1530 1531 1532 |
if( strcmp(zCmd,"capa")==0 ){
static const char *const azCap[] = {
"TOP", "USER", "UIDL",
};
int i;
pop3_print(pLog, "+OK");
for(i=0; i<sizeof(azCap)/sizeof(azCap[0]); i++){
| | | 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 |
if( strcmp(zCmd,"capa")==0 ){
static const char *const azCap[] = {
"TOP", "USER", "UIDL",
};
int i;
pop3_print(pLog, "+OK");
for(i=0; i<sizeof(azCap)/sizeof(azCap[0]); i++){
pop3_print(pLog, "%s", azCap[i]);
}
pop3_print(pLog, ".");
continue;
}
if( inAuth ){
if( strcmp(zCmd,"user")==0 ){
if( zA1==0 || zA2!=0 ) goto cmd_error;
|
| ︙ | ︙ |