Following up on this, ASAN reports a memory leak on a failure. Using 'notmuch_database_close()' or 'notmuch_database_destroy()' results in a SEGFAULT. I've updated my reproducer program to free the database on non-failure cases so it's easier to see the memory leak. #include #include int main() { const char *db_path = "/home/aray/mail"; notmuch_database_t *db = NULL; notmuch_status_t st = notmuch_database_open_with_config( db_path, NOTMUCH_DATABASE_MODE_READ_ONLY, NULL, NULL, &db, NULL); if (st != NOTMUCH_STATUS_SUCCESS) { printf("Received status: %s\n", notmuch_status_to_string(st)); if (db) { printf("Received non-null DB pointer\n"); return -1; } } if (db) { notmuch_database_destroy(db); } return 0; } If there's an obvious way to fix the memory leak that I may have overlooked, please let me know. I'm not a C expert. Thanks, Austin -- https://austinray.io Open Source Maintainer, Software Engineer, Keyboard Enthusiast GPG: 0127 ED83 B939 CCC9 8082 476E 1AA0 B115 C8AC 2C9E