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 <notmuch.h>
#include <stdio.h>
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