/ Check-in [1465d384]
Login

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

Overview
Comment:Take care not to invoke the xShmClose method of the VFS with a NULL shared memory object.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1465d3842c52aa7471f63deb47fe5b256d4e01c2
User & Date: drh 2010-05-04 16:33:38
Context
2010-05-04
17:20
Relax an over-zealous assert() in sqlite3WalUndo(). check-in: 8f9d22d5 user: drh tags: trunk
16:33
Take care not to invoke the xShmClose method of the VFS with a NULL shared memory object. check-in: 1465d384 user: drh tags: trunk
15:20
Add a test case to verify that log files containing pages that are not a power-of-two bytes in size are handled correctly. check-in: c2bf693f user: dan tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/wal.c.

609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
  /* Open file handle on the write-ahead log file. */
  if( rc==SQLITE_OK ){
    flags = (SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_MAIN_JOURNAL);
    rc = sqlite3OsOpen(pVfs, zWal, pRet->pFd, flags, &flags);
  }

  if( rc!=SQLITE_OK ){
    pVfs->xShmClose(pVfs, pRet->pWIndex, 0);
    sqlite3OsClose(pRet->pFd);
    sqlite3_free(pRet);
  }else{
    *ppWal = pRet;
  }
  return rc;
}







|







609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
  /* Open file handle on the write-ahead log file. */
  if( rc==SQLITE_OK ){
    flags = (SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_MAIN_JOURNAL);
    rc = sqlite3OsOpen(pVfs, zWal, pRet->pFd, flags, &flags);
  }

  if( rc!=SQLITE_OK ){
    if( pRet->pWIndex ) pVfs->xShmClose(pVfs, pRet->pWIndex, 0);
    sqlite3OsClose(pRet->pFd);
    sqlite3_free(pRet);
  }else{
    *ppWal = pRet;
  }
  return rc;
}