Fossil SCM
Replace an errant free() with a fossil_free(). Teach (uv export) to create the directory parts of uv names if needed, and fix what appeared to be a memleak when skipping overwriting of a file.
Commit
9be336524c21f9b5919dc07fbae02d8e1aea2b8dc39e0589bc7f8a6e681b441d
Parent
9d310a5eb250593…
2 files changed
+1
-1
+7
-4
+1
-1
| --- src/file.c | ||
| +++ src/file.c | ||
| @@ -923,11 +923,11 @@ | ||
| 923 | 923 | rc = errorReturn; |
| 924 | 924 | } |
| 925 | 925 | } |
| 926 | 926 | } |
| 927 | 927 | } |
| 928 | - free(zName); | |
| 928 | + fossil_free(zName); | |
| 929 | 929 | return rc; |
| 930 | 930 | } |
| 931 | 931 | |
| 932 | 932 | #if defined(_WIN32) |
| 933 | 933 | /* |
| 934 | 934 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -923,11 +923,11 @@ | |
| 923 | rc = errorReturn; |
| 924 | } |
| 925 | } |
| 926 | } |
| 927 | } |
| 928 | free(zName); |
| 929 | return rc; |
| 930 | } |
| 931 | |
| 932 | #if defined(_WIN32) |
| 933 | /* |
| 934 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -923,11 +923,11 @@ | |
| 923 | rc = errorReturn; |
| 924 | } |
| 925 | } |
| 926 | } |
| 927 | } |
| 928 | fossil_free(zName); |
| 929 | return rc; |
| 930 | } |
| 931 | |
| 932 | #if defined(_WIN32) |
| 933 | /* |
| 934 |
+7
-4
| --- src/unversioned.c | ||
| +++ src/unversioned.c | ||
| @@ -455,15 +455,16 @@ | ||
| 455 | 455 | } |
| 456 | 456 | if( file_isdir(g.argv[i], ExtFILE)>0 && !forceFlag ){ |
| 457 | 457 | fossil_print("\"%s\" already exists, add -f to overwrite\n", |
| 458 | 458 | g.argv[i]); |
| 459 | 459 | }else{ |
| 460 | + file_mkfolder(g.argv[i], ExtFILE, 1, 0); | |
| 460 | 461 | blob_write_to_file(&content, g.argv[i]); |
| 461 | - blob_reset(&content); | |
| 462 | 462 | } |
| 463 | + blob_reset(&content); | |
| 463 | 464 | } |
| 464 | - }else{ | |
| 465 | + }else{ | |
| 465 | 466 | /* All unversioned files */ |
| 466 | 467 | Stmt q; |
| 467 | 468 | db_prepare(&q, "SELECT name FROM unversioned WHERE %s " |
| 468 | 469 | "AND hash IS NOT NULL " |
| 469 | 470 | "ORDER BY name", zPattern/*safe-for-%s*/); |
| @@ -474,13 +475,15 @@ | ||
| 474 | 475 | } |
| 475 | 476 | if( file_isdir(db_column_text(&q,0), ExtFILE)>0 && !forceFlag ){ |
| 476 | 477 | fossil_print("\"%s\" already exists, add -f to overwrite\n", |
| 477 | 478 | db_column_text(&q,0)); |
| 478 | 479 | }else{ |
| 479 | - blob_write_to_file(&content, db_column_text(&q,0)); | |
| 480 | - blob_reset(&content); | |
| 480 | + const char * const z = db_column_text(&q,0); | |
| 481 | + file_mkfolder(z, ExtFILE, 1, 0); | |
| 482 | + blob_write_to_file(&content, z); | |
| 481 | 483 | } |
| 484 | + blob_reset(&content); | |
| 482 | 485 | } |
| 483 | 486 | db_finalize(&q); |
| 484 | 487 | } |
| 485 | 488 | }else{ |
| 486 | 489 | verify_all_options(); |
| 487 | 490 |
| --- src/unversioned.c | |
| +++ src/unversioned.c | |
| @@ -455,15 +455,16 @@ | |
| 455 | } |
| 456 | if( file_isdir(g.argv[i], ExtFILE)>0 && !forceFlag ){ |
| 457 | fossil_print("\"%s\" already exists, add -f to overwrite\n", |
| 458 | g.argv[i]); |
| 459 | }else{ |
| 460 | blob_write_to_file(&content, g.argv[i]); |
| 461 | blob_reset(&content); |
| 462 | } |
| 463 | } |
| 464 | }else{ |
| 465 | /* All unversioned files */ |
| 466 | Stmt q; |
| 467 | db_prepare(&q, "SELECT name FROM unversioned WHERE %s " |
| 468 | "AND hash IS NOT NULL " |
| 469 | "ORDER BY name", zPattern/*safe-for-%s*/); |
| @@ -474,13 +475,15 @@ | |
| 474 | } |
| 475 | if( file_isdir(db_column_text(&q,0), ExtFILE)>0 && !forceFlag ){ |
| 476 | fossil_print("\"%s\" already exists, add -f to overwrite\n", |
| 477 | db_column_text(&q,0)); |
| 478 | }else{ |
| 479 | blob_write_to_file(&content, db_column_text(&q,0)); |
| 480 | blob_reset(&content); |
| 481 | } |
| 482 | } |
| 483 | db_finalize(&q); |
| 484 | } |
| 485 | }else{ |
| 486 | verify_all_options(); |
| 487 |
| --- src/unversioned.c | |
| +++ src/unversioned.c | |
| @@ -455,15 +455,16 @@ | |
| 455 | } |
| 456 | if( file_isdir(g.argv[i], ExtFILE)>0 && !forceFlag ){ |
| 457 | fossil_print("\"%s\" already exists, add -f to overwrite\n", |
| 458 | g.argv[i]); |
| 459 | }else{ |
| 460 | file_mkfolder(g.argv[i], ExtFILE, 1, 0); |
| 461 | blob_write_to_file(&content, g.argv[i]); |
| 462 | } |
| 463 | blob_reset(&content); |
| 464 | } |
| 465 | }else{ |
| 466 | /* All unversioned files */ |
| 467 | Stmt q; |
| 468 | db_prepare(&q, "SELECT name FROM unversioned WHERE %s " |
| 469 | "AND hash IS NOT NULL " |
| 470 | "ORDER BY name", zPattern/*safe-for-%s*/); |
| @@ -474,13 +475,15 @@ | |
| 475 | } |
| 476 | if( file_isdir(db_column_text(&q,0), ExtFILE)>0 && !forceFlag ){ |
| 477 | fossil_print("\"%s\" already exists, add -f to overwrite\n", |
| 478 | db_column_text(&q,0)); |
| 479 | }else{ |
| 480 | const char * const z = db_column_text(&q,0); |
| 481 | file_mkfolder(z, ExtFILE, 1, 0); |
| 482 | blob_write_to_file(&content, z); |
| 483 | } |
| 484 | blob_reset(&content); |
| 485 | } |
| 486 | db_finalize(&q); |
| 487 | } |
| 488 | }else{ |
| 489 | verify_all_options(); |
| 490 |