/ Check-in [18740bd4]
Login

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

Overview
Comment:Fix the dbtotxt decoder in the CLI so that it ignores excess bytes.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 18740bd448887d618fafee0b5a7c004aa2f2632244f7d29e2428772baa36b828
User & Date: drh 2018-12-13 22:58:52
Context
2018-12-14
03:16
Report corruption when an attempt is made to write a pointer-map page that is also being used as a btree page. Also, fix a bug in fuzzcheck that cause it to overlook a pointer-map bug that was trigger by the fuzzcheck test data, and also fix the pointer-map bug. check-in: cc42dd15 user: drh tags: trunk
02:29
Fix a bug in the custom in-memory VFS used by fuzzcheck. This bug masks other bugs that should have caused some existing fuzzdata7.db entries to fail, and so this fix is initially on a branch until those other bugs can be repaired. check-in: e0994e99 user: drh tags: fuzzcheck-fix
2018-12-13
22:58
Fix the dbtotxt decoder in the CLI so that it ignores excess bytes. check-in: 18740bd4 user: drh tags: trunk
21:52
dbfuzz2 found a NEVER() that is sometimes true. check-in: 1201615c user: drh tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to src/shell.c.in.

  3782   3782       }
  3783   3783       rc = sscanf(zLine,"| %d: %hhx %hhx %hhx %hhx %hhx %hhx %hhx %hhx"
  3784   3784                         "  %hhx %hhx %hhx %hhx %hhx %hhx %hhx %hhx",
  3785   3785                   &j, &x[0], &x[1], &x[2], &x[3], &x[4], &x[5], &x[6], &x[7],
  3786   3786                   &x[8], &x[9], &x[10], &x[11], &x[12], &x[13], &x[14], &x[15]);
  3787   3787       if( rc==17 ){
  3788   3788         k = iOffset+j;
  3789         -      if( k+16>n ){
  3790         -        utf8_printf(stderr, "continue exceeds file size\n");
  3791         -        goto readHexDb_error;
         3789  +      if( k+16<=n ){
         3790  +        memcpy(a+k, x, 16);
  3792   3791         }
  3793         -      memcpy(a+k, x, 16);
  3794   3792       }
  3795   3793     }
  3796   3794     *pnData = n;
  3797   3795     if( in!=p->in ){
  3798   3796       fclose(in);
  3799   3797     }else{
  3800   3798       p->lineno = nLine;