Re: notmuch_database_open_with_config() does not NULL pointer on error

Subject: Re: notmuch_database_open_with_config() does not NULL pointer on error

Date: Sat, 23 Oct 2021 00:22:25 -0400

To: notmuch@notmuchmail.org

Cc:

From: Austin Ray


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
signature.asc (application/pgp-signature)
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: