Fossil

Check-in [55f6c765]
Login

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

Overview
Comment:Fix segfault when accessing the initial checkin directory on a fusefs mounted repository.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 55f6c765fb62b03f33e33bc3af10ee3523928fd6fe0964407eafaa4a32e169dd
User & Date: drh 2018-02-16 16:28:38.422
Context
2018-02-16
19:57
Fix a typos and improve the wording on the failure-to-upgrade-to-HTTPS error screen. ... (check-in: 01984ee0 user: drh tags: trunk)
16:28
Fix segfault when accessing the initial checkin directory on a fusefs mounted repository. ... (check-in: 55f6c765 user: drh tags: trunk)
16:16
An HTTPS upgrade redirect loop now is broken and gives a warning. The "-nossl" is no longer the default on "fossil server". Warning messages are provided when trying to log in via an insecure connection. ... (check-in: 61733824 user: drh tags: trunk)
14:39
Fix segfault when accessing the initial checkin directory on a fusefs mounted repository. This is on a branch because the Fix is on manifest_file_seek_base() function which is not only fuse-related. ... (Closed-Leaf check-in: 6831769d user: mgagnon tags: fix_fusefs_on_empty_checkin_crash)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/manifest.c.
1265
1266
1267
1268
1269
1270
1271



1272
1273
1274
1275
1276
1277
1278
  Manifest *p,             /* Manifest to search */
  const char *zName,       /* Name of the file we are looking for */
  int bBest                /* 0: exact match only.  1: closest match */
){
  int lwr, upr;
  int c;
  int i;



  lwr = 0;
  upr = p->nFile - 1;
  if( p->iFile>=lwr && p->iFile<upr ){
    c = fossil_strcmp(p->aFile[p->iFile+1].zName, zName);
    if( c==0 ){
      return &p->aFile[++p->iFile];
    }else if( c>0 ){







>
>
>







1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
  Manifest *p,             /* Manifest to search */
  const char *zName,       /* Name of the file we are looking for */
  int bBest                /* 0: exact match only.  1: closest match */
){
  int lwr, upr;
  int c;
  int i;
  if( p->aFile==0 ){
    return 0;
  }
  lwr = 0;
  upr = p->nFile - 1;
  if( p->iFile>=lwr && p->iFile<upr ){
    c = fossil_strcmp(p->aFile[p->iFile+1].zName, zName);
    if( c==0 ){
      return &p->aFile[++p->iFile];
    }else if( c>0 ){