There is a wrong/missing return value check of the mmap function in the file lsm_unix.c. The return value is checked against 0, but mmap returns MAP_FAILED (-1) on errors. I created a pull request with a fix on the sqlcipher GitHub page but I was asked to forward this request to the SQLite team: https://github.com/sqlcipher/sqlcipher/pull/364