Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Ensure that ALL fopen() calls include 'b' in their modes. The git import/export fopen()s did not have this, which may (hypothetically, but unproven) lead to EOL conversion on Windows. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | fopen-mode-b |
| Files: | files | file ages | folders |
| SHA3-256: |
13049ef2458aa5795b9c9369bec46a28 |
| User & Date: | stephan 2025-04-08 12:49:11.122 |
Context
|
2025-04-08
| ||
| 12:49 | Ensure that ALL fopen() calls include 'b' in their modes. The git import/export fopen()s did not have this, which may (hypothetically, but unproven) lead to EOL conversion on Windows. Leaf check-in: 13049ef245 user: stephan tags: fopen-mode-b | |
| 12:43 | Change the message for the 'user elevation' notification to help clarify that it's not necessarily an elevation. Help/message text changes only - no functional changes. check-in: eabccae174 user: stephan tags: trunk | |
Changes
Changes to src/backoffice.c.
| ︙ | ︙ | |||
626 627 628 629 630 631 632 |
Blob log;
int nThis;
int nTotal = 0;
#if !defined(_WIN32)
struct timeval sStart, sEnd;
#endif
if( zLog==0 ) zLog = db_get("backoffice-logfile",0);
| | | 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 |
Blob log;
int nThis;
int nTotal = 0;
#if !defined(_WIN32)
struct timeval sStart, sEnd;
#endif
if( zLog==0 ) zLog = db_get("backoffice-logfile",0);
if( zLog && zLog[0] && (backofficeFILE = fossil_fopen(zLog,"ab"))!=0 ){
int i;
char *zName = db_get("project-name",0);
#if !defined(_WIN32)
gettimeofday(&sStart, 0);
signal(SIGSEGV, backoffice_signal_handler);
signal(SIGABRT, backoffice_signal_handler);
signal(SIGFPE, backoffice_signal_handler);
|
| ︙ | ︙ |
Changes to src/export.c.
| ︙ | ︙ | |||
515 516 517 518 519 520 521 |
" tuuid TEXT)");
db_multi_exec("CREATE INDEX xmark_trid ON xmark(trid)");
if( markfile_in!=0 ){
Stmt qb,qc;
FILE *f;
int rid;
| | | 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 |
" tuuid TEXT)");
db_multi_exec("CREATE INDEX xmark_trid ON xmark(trid)");
if( markfile_in!=0 ){
Stmt qb,qc;
FILE *f;
int rid;
f = fossil_fopen(markfile_in, "rb");
if( f==0 ){
fossil_fatal("cannot open %s for reading", markfile_in);
}
if( import_marks(f, &blobs, &vers, &unused_mark)<0 ){
fossil_fatal("error importing marks from file: %s", markfile_in);
}
db_prepare(&qb, "INSERT OR IGNORE INTO oldblob VALUES (:rid)");
|
| ︙ | ︙ | |||
731 732 733 734 735 736 737 |
printf("data %d\n", zValue==NULL?0:(int)strlen(zValue)+1);
if( zValue!=NULL ) printf("%s\n",zValue);
}
db_finalize(&q);
if( markfile_out!=0 ){
FILE *f;
| | | 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 |
printf("data %d\n", zValue==NULL?0:(int)strlen(zValue)+1);
if( zValue!=NULL ) printf("%s\n",zValue);
}
db_finalize(&q);
if( markfile_out!=0 ){
FILE *f;
f = fossil_fopen(markfile_out, "wb");
if( f == 0 ){
fossil_fatal("cannot open %s for writing", markfile_out);
}
export_marks(f, &blobs, &vers);
if( ferror(f)!=0 || fclose(f)!=0 ){
fossil_fatal("error while writing %s", markfile_out);
}
|
| ︙ | ︙ |
Changes to src/import.c.
| ︙ | ︙ | |||
1928 1929 1930 1931 1932 1933 1934 |
"CREATE TEMP TABLE xmark(tname TEXT UNIQUE, trid INT, tuuid TEXT);"
"CREATE INDEX temp.i_xmark ON xmark(trid);"
"CREATE TEMP TABLE xbranch(tname TEXT UNIQUE, brnm TEXT);"
"CREATE TEMP TABLE xtag(tname TEXT UNIQUE, tcontent TEXT);"
);
if( markfile_in ){
| | | 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 |
"CREATE TEMP TABLE xmark(tname TEXT UNIQUE, trid INT, tuuid TEXT);"
"CREATE INDEX temp.i_xmark ON xmark(trid);"
"CREATE TEMP TABLE xbranch(tname TEXT UNIQUE, brnm TEXT);"
"CREATE TEMP TABLE xtag(tname TEXT UNIQUE, tcontent TEXT);"
);
if( markfile_in ){
FILE *f = fossil_fopen(markfile_in, "rb");
if( !f ){
fossil_fatal("cannot open %s for reading", markfile_in);
}
if( import_marks(f, &blobs, NULL, NULL)<0 ){
fossil_fatal("error importing marks from file: %s", markfile_in);
}
fclose(f);
|
| ︙ | ︙ | |||
1986 1987 1988 1989 1990 1991 1992 |
** to be left free for git to re-use in the future.
*/
}else{
bag_insert(&vers, rid);
}
}
db_finalize(&q_marks);
| | | 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 |
** to be left free for git to re-use in the future.
*/
}else{
bag_insert(&vers, rid);
}
}
db_finalize(&q_marks);
f = fossil_fopen(markfile_out, "wb");
if( !f ){
fossil_fatal("cannot open %s for writing", markfile_out);
}
export_marks(f, &blobs, &vers);
fclose(f);
bag_clear(&blobs);
bag_clear(&vers);
|
| ︙ | ︙ |
Changes to src/printf.c.
| ︙ | ︙ | |||
1084 1085 1086 1087 1088 1089 1090 |
"HTTP_USER_AGENT",
"PATH_INFO", "QUERY_STRING", "REMOTE_ADDR", "REQUEST_METHOD",
"REQUEST_URI", "SCRIPT_NAME" };
if( g.zErrlog==0 ) return;
if( g.zErrlog[0]=='-' && g.zErrlog[1]==0 ){
out = stderr;
}else{
| | | 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 |
"HTTP_USER_AGENT",
"PATH_INFO", "QUERY_STRING", "REMOTE_ADDR", "REQUEST_METHOD",
"REQUEST_URI", "SCRIPT_NAME" };
if( g.zErrlog==0 ) return;
if( g.zErrlog[0]=='-' && g.zErrlog[1]==0 ){
out = stderr;
}else{
out = fossil_fopen(g.zErrlog, "ab");
if( out==0 ) return;
}
now = time(0);
pNow = gmtime(&now);
fprintf(out, "------------- %04d-%02d-%02d %02d:%02d:%02d UTC ------------\n",
pNow->tm_year+1900, pNow->tm_mon+1, pNow->tm_mday,
pNow->tm_hour, pNow->tm_min, pNow->tm_sec);
|
| ︙ | ︙ |
Changes to src/security_audit.c.
| ︙ | ︙ | |||
606 607 608 609 610 611 612 |
@ make an entry like "errorlog: <i>FILENAME</i>" in the
@ CGI script at %h(P("SCRIPT_FILENAME")).
}else{
@ add the "--errorlog <i>FILENAME</i>" option to the
@ "%h(g.argv[0]) %h(g.zCmdName)" command that launched this server.
}
}else{
| | | 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 |
@ make an entry like "errorlog: <i>FILENAME</i>" in the
@ CGI script at %h(P("SCRIPT_FILENAME")).
}else{
@ add the "--errorlog <i>FILENAME</i>" option to the
@ "%h(g.argv[0]) %h(g.zCmdName)" command that launched this server.
}
}else{
FILE *pTest = fossil_fopen(g.zErrlog,"ab");
if( pTest==0 ){
@ <li><p>
@ <b>Error:</b>
@ There is an error log at "%h(g.zErrlog)" but that file is not
@ writable and so no logging will occur.
}else{
fclose(pTest);
|
| ︙ | ︙ | |||
860 861 862 863 864 865 866 |
if( g.zErrlog==0 || fossil_strcmp(g.zErrlog,"-")==0 ){
no_error_log_available();
style_finish_page();
return;
}
if( P("truncate1") && cgi_csrf_safe(2) ){
| | | 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 |
if( g.zErrlog==0 || fossil_strcmp(g.zErrlog,"-")==0 ){
no_error_log_available();
style_finish_page();
return;
}
if( P("truncate1") && cgi_csrf_safe(2) ){
fclose(fopen(g.zErrlog,"wb"));
}
if( P("download") ){
Blob log;
blob_read_from_file(&log, g.zErrlog, ExtFILE);
cgi_set_content_type("text/plain");
cgi_set_content(&log);
return;
|
| ︙ | ︙ |