aboutsummaryrefslogtreecommitdiff
path: root/bindings/ruby/database.c
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2021-10-23 10:22:34 -0300
committerDavid Bremner <david@tethera.net>2021-10-30 13:43:58 -0300
commit74c4ce6d88bcc643424c5d89cc8d30cd835e46c3 (patch)
tree9b78441dbe31ad597ae0897e581b199c2be92ba4 /bindings/ruby/database.c
parenta942cb8ee3f0e20d6cd72d25c432467a5ebfe93c (diff)
lib/open: fix potential double-free, ensure *database=NULL on error
During refactoring for 0.32, the code that set notmuch=NULL on various errors was moved into _finish_open. This meant that the the code which relied on that to set *database to NULL on error was no longer correct. It also introduced a potential double free, since the notmuch struct was deallocated inside _finish_open (via n_d_destroy). In this commit we revert to "allocator frees", and leave any cleanup to the caller of _finish_open. This allows us to get back the behaviour of setting *database to NULL with a small change. Other callers of _finish_open will need free notmuch on errors.
Diffstat (limited to 'bindings/ruby/database.c')
0 files changed, 0 insertions, 0 deletions