Add SQLITE_OPEN_URI to dpapi_chrome to allow for lockless opening #199
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently,
dpapi::chrome
fails to run when Chrome is open due to sqlite trying to lock the database and failing. This PR enables theSQLITE_OPEN_URI
flag onsqlite3_open_v2
which allows for the addition of the?nolock=1
parameter to the database filename (when formatted as a file: uri), bypassing this restriction.The below output shows that the old behaviour remains unchanged, but the new URI format is also supported which can bypass the lock.
Chrome Opened...
The more 'correct' method for this is to use the lockless
win32-none
VFS as the fourth parameter tosqlite3_open_v2
, but the bundled version of sqlite does not have this VFS included (upstream does: sqlite3.c:L46502 from sqlite-autoconf-3270200.tar.gz)