Fossil

Check-in [b1dc25e1]
Login

Check-in [b1dc25e1]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Resolve null-pointer deref when reading an empty .fossil-settings/empty-dirs, reported in forum post 9ff6a143fc.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: b1dc25e1fe327f09f29eba00ccf8033a6953f11d34573de9bf96f6be1d6ac470
User & Date: stephan 2023-06-10 09:03:41
Context
2023-06-10
09:16
Add ability to "close" forum posts. (check-in: 673dc38f user: stephan tags: trunk)
09:03
Resolve null-pointer deref when reading an empty .fossil-settings/empty-dirs, reported in forum post 9ff6a143fc. (check-in: b1dc25e1 user: stephan tags: trunk)
2023-06-06
10:52
merge command help text cleanups, based on forum feedback. (check-in: edd08ef4 user: stephan tags: trunk)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/update.c.

652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
*/
void ensure_empty_dirs_created(int clearDirTable){
  char *zEmptyDirs = db_get("empty-dirs", 0);
  if( zEmptyDirs!=0 ){
    int i;
    Glob *pGlob = glob_create(zEmptyDirs);

    for(i=0; i<pGlob->nPattern; i++){
      const char *zDir = pGlob->azPattern[i];
      char *zPath = mprintf("%s/%s", g.zLocalRoot, zDir);
      switch( file_isdir(zPath, RepoFILE) ){
        case 0: { /* doesn't exist */
          fossil_free(zPath);
          zPath = mprintf("%s/%s/x", g.zLocalRoot, zDir);
          if( file_mkfolder(zPath, RepoFILE, 0, 1)!=0 ) {







|







652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
*/
void ensure_empty_dirs_created(int clearDirTable){
  char *zEmptyDirs = db_get("empty-dirs", 0);
  if( zEmptyDirs!=0 ){
    int i;
    Glob *pGlob = glob_create(zEmptyDirs);

    for(i=0; pGlob!=0 && i<pGlob->nPattern; i++){
      const char *zDir = pGlob->azPattern[i];
      char *zPath = mprintf("%s/%s", g.zLocalRoot, zDir);
      switch( file_isdir(zPath, RepoFILE) ){
        case 0: { /* doesn't exist */
          fossil_free(zPath);
          zPath = mprintf("%s/%s/x", g.zLocalRoot, zDir);
          if( file_mkfolder(zPath, RepoFILE, 0, 1)!=0 ) {