Fossil SCM
Call fossil_fatal() when fossil_fopen fail on commit_warning(). This fix SIGSEGV when converting CR/NL where files are read-only. (reported on ML)
Commit
c3d09540dd26883665bf856a6581b76a012034a7
Parent
ee1aa460a40e91f…
1 file changed
+3
+3
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -1301,10 +1301,13 @@ | ||
| 1301 | 1301 | char *zOrig = file_newname(zFilename, "original", 1); |
| 1302 | 1302 | FILE *f; |
| 1303 | 1303 | blob_write_to_file(p, zOrig); |
| 1304 | 1304 | fossil_free(zOrig); |
| 1305 | 1305 | f = fossil_fopen(zFilename, "wb"); |
| 1306 | + if( f==0 ){ | |
| 1307 | + fossil_fatal("cannot open %s for writing", zFilename); | |
| 1308 | + } | |
| 1306 | 1309 | if( fUnicode ) { |
| 1307 | 1310 | int bomSize; |
| 1308 | 1311 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 1309 | 1312 | fwrite(bom, 1, bomSize, f); |
| 1310 | 1313 | blob_to_utf8_no_bom(p, 0); |
| 1311 | 1314 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -1301,10 +1301,13 @@ | |
| 1301 | char *zOrig = file_newname(zFilename, "original", 1); |
| 1302 | FILE *f; |
| 1303 | blob_write_to_file(p, zOrig); |
| 1304 | fossil_free(zOrig); |
| 1305 | f = fossil_fopen(zFilename, "wb"); |
| 1306 | if( fUnicode ) { |
| 1307 | int bomSize; |
| 1308 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 1309 | fwrite(bom, 1, bomSize, f); |
| 1310 | blob_to_utf8_no_bom(p, 0); |
| 1311 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -1301,10 +1301,13 @@ | |
| 1301 | char *zOrig = file_newname(zFilename, "original", 1); |
| 1302 | FILE *f; |
| 1303 | blob_write_to_file(p, zOrig); |
| 1304 | fossil_free(zOrig); |
| 1305 | f = fossil_fopen(zFilename, "wb"); |
| 1306 | if( f==0 ){ |
| 1307 | fossil_fatal("cannot open %s for writing", zFilename); |
| 1308 | } |
| 1309 | if( fUnicode ) { |
| 1310 | int bomSize; |
| 1311 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 1312 | fwrite(bom, 1, bomSize, f); |
| 1313 | blob_to_utf8_no_bom(p, 0); |
| 1314 |