Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch ignore-reserved-filenames Excluding Merge-Ins
This is equivalent to a diff from 888da94e0a to 8f24c07917
2020-08-19
| ||
16:13 | Silently ignore reserved filenames that occur inside of manifests, rather than throwing an error. No need for a setting to allow reserved filenames in manifests. ... (check-in: 2e19c5fe2d user: drh tags: sec2020) | |
01:07 | Cherrypick key fixes from the sec2020 branch in order to devise a minimal patch to get us to version 2.12.1. ... (check-in: fe1264d35d user: drh tags: sec2020-2.12-patch) | |
00:15 | Do not allow the "fossil add" command to add files beneath a symlink. ... (check-in: a6abfb911b user: drh tags: sec2020) | |
2020-08-18
| ||
23:39 | An alternative method for dealing with historical files named "_FOSSIL_" in the tree: Simply pretend they are not there. ... (Closed-Leaf check-in: 8f24c07917 user: drh tags: ignore-reserved-filenames) | |
20:58 | Silently refuse to "fossil add" files that use reserved names. ... (check-in: 888da94e0a user: drh tags: sec2020) | |
20:19 | Improved error message and response when trying to manifest a check-out that contains a file beneath a symbolic link directory. ... (check-in: 20d90dd482 user: drh tags: sec2020) | |
Changes to src/main.c.
︙ | ︙ | |||
218 219 220 221 222 223 224 | #endif int useLocalauth; /* No login required if from 127.0.0.1 */ int noPswd; /* Logged in without password (on 127.0.0.1) */ int userUid; /* Integer user id */ int isHuman; /* True if access by a human, not a spider or bot */ int comFmtFlags; /* Zero or more "COMMENT_PRINT_*" bit flags, should be ** accessed through get_comment_format(). */ | < < | 218 219 220 221 222 223 224 225 226 227 228 229 230 231 | #endif int useLocalauth; /* No login required if from 127.0.0.1 */ int noPswd; /* Logged in without password (on 127.0.0.1) */ int userUid; /* Integer user id */ int isHuman; /* True if access by a human, not a spider or bot */ int comFmtFlags; /* Zero or more "COMMENT_PRINT_*" bit flags, should be ** accessed through get_comment_format(). */ /* Information used to populate the RCVFROM table */ int rcvid; /* The rcvid. 0 if not yet defined. */ char *zIpAddr; /* The remote IP address */ char *zNonce; /* The nonce used for login */ /* permissions available to current user */ |
︙ | ︙ |
Changes to src/manifest.c.
︙ | ︙ | |||
396 397 398 399 400 401 402 | ** Frees all memory owned by the manifest "has-seen" cache. Intended ** to be called only from the app's atexit() handler. */ void manifest_clear_cache(){ bag_clear(&seenManifests); } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 396 397 398 399 400 401 402 403 404 405 406 407 408 409 | ** Frees all memory owned by the manifest "has-seen" cache. Intended ** to be called only from the app's atexit() handler. */ void manifest_clear_cache(){ bag_clear(&seenManifests); } /* ** Parse a blob into a Manifest object. The Manifest object ** takes over the input blob and will free it when the ** Manifest object is freed. Zeros are inserted into the blob ** as string terminators so that blob should not be used again. ** ** Return a pointer to an allocated Manifest object if the content |
︙ | ︙ | |||
669 670 671 672 673 674 675 | case 'F': { char *zName, *zPerm, *zPriorName; zName = next_token(&x,0); if( zName==0 ) SYNTAX("missing filename on F-card"); defossilize(zName); if( !file_is_simple_pathname_nonstrict(zName) ){ SYNTAX("F-card filename is not a simple path"); | < < < | 630 631 632 633 634 635 636 637 638 639 640 641 642 643 | case 'F': { char *zName, *zPerm, *zPriorName; zName = next_token(&x,0); if( zName==0 ) SYNTAX("missing filename on F-card"); defossilize(zName); if( !file_is_simple_pathname_nonstrict(zName) ){ SYNTAX("F-card filename is not a simple path"); } zUuid = next_token(&x, &sz); if( p->zBaseline==0 || zUuid!=0 ){ if( zUuid==0 ) SYNTAX("missing hash on F-card"); if( !hname_validate(zUuid,sz) ){ SYNTAX("F-card hash invalid"); } |
︙ | ︙ | |||
694 695 696 697 698 699 700 701 702 703 704 | } if( p->nFile>=p->nFileAlloc ){ p->nFileAlloc = p->nFileAlloc*2 + 10; p->aFile = fossil_realloc(p->aFile, p->nFileAlloc*sizeof(p->aFile[0]) ); } i = p->nFile++; p->aFile[i].zName = zName; p->aFile[i].zUuid = zUuid; p->aFile[i].zPerm = zPerm; p->aFile[i].zPrior = zPriorName; | > > > > > > > > > > < < < | 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 | } if( p->nFile>=p->nFileAlloc ){ p->nFileAlloc = p->nFileAlloc*2 + 10; p->aFile = fossil_realloc(p->aFile, p->nFileAlloc*sizeof(p->aFile[0]) ); } i = p->nFile++; if( i>0 && fossil_strcmp(p->aFile[i-1].zName, zName)>=0 ){ SYNTAX("incorrect F-card sort order"); } if( file_is_reserved_name(zName,-1) ){ /* If reserved names leaked into historical manifests due to ** slack oversight by older versions of Fossil, simply ignore ** those files */ p->nFile--; break; } p->aFile[i].zName = zName; p->aFile[i].zUuid = zUuid; p->aFile[i].zPerm = zPerm; p->aFile[i].zPrior = zPriorName; p->type = CFTYPE_MANIFEST; break; } /* ** G <hash> ** |
︙ | ︙ |