notmuch/lib
David Bremner 582e919e27 lib/config: don't set destructor until iterator is initialized.
As diagnosed by Olivier Taïbi in
id:20201027100916.emry3k2wujod4xnl@galois.lan, if an exception is
thrown while the initialization is happening (e.g. if the function is
called on a closed database), then the destructor is (sometimes)
invoked on an uninitialized Xapian object.

Solve the problem by moving the setting of the destructor until after
the placement new successfully completes. It is conceivable this might
cause a memory leak, but that seems preferable to crashing, and in any
case, there seems to be nothing better to be done if the
initialization is failing things are in an undefined state by
definition.
2020-10-29 21:13:01 -03:00
..
add-message.cc lib: replace use of static_cast for writable databases 2020-07-28 08:47:58 -03:00
built-with.c build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
config.cc lib/config: don't set destructor until iterator is initialized. 2020-10-29 21:13:01 -03:00
database-private.h lib: replace use of static_cast for writable databases 2020-07-28 08:47:58 -03:00
database.cc lib: replace use of static_cast for writable databases 2020-07-28 08:47:58 -03:00
directory.cc lib: fix return value for n_directory_delete 2020-08-03 20:59:06 -03:00
filenames.c lib: convert notmuch_bool_t to stdbool internally 2017-10-09 22:27:16 -03:00
index.cc smime: Index cleartext of envelopedData when requested 2020-05-22 22:12:00 -03:00
indexopts.c lib: return NULL from n_d_get_default_indexopts on error 2020-08-03 20:45:58 -03:00
Makefile fix sum moar typos [build scripts, Makefiles] 2011-06-23 15:44:59 -07:00
Makefile.local emacs: Use makefile-gmake-mode in Makefile*s 2020-08-09 21:14:36 -03:00
message-file.c lib: convert relative filenames to absolute in n_d_index_file 2020-07-22 19:52:55 -03:00
message-id.c lib: run uncrustify 2019-06-14 07:41:27 -03:00
message-private.h lib: convert notmuch_bool_t to stdbool internally 2017-10-09 22:27:16 -03:00
message-property.cc lib: run uncrustify 2019-06-14 07:41:27 -03:00
message.cc lib: replace use of static_cast for writable databases 2020-07-28 08:47:58 -03:00
messages.c lib: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-private.h lib: encapsulate the use of notmuch_database_t field 'mode' 2020-07-28 08:47:58 -03:00
notmuch.h Fix typos 2020-08-09 21:14:36 -03:00
notmuch.sym build: switch to hiding libnotmuch symbols by default 2017-05-12 07:17:18 -03:00
parse-time-vrp.cc lib: migrate from Xapian ValueRangeProcessor to RangeProcessor 2020-07-11 17:20:09 -03:00
parse-time-vrp.h lib: migrate from Xapian ValueRangeProcessor to RangeProcessor 2020-07-11 17:20:09 -03:00
query-fp.cc build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
query-fp.h build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
query.cc lib: run uncrustify 2019-06-14 07:41:27 -03:00
regexp-fields.cc build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
regexp-fields.h build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
sha1.c lib: run uncrustify 2019-06-14 07:41:27 -03:00
string-list.c lib: run uncrustify 2019-06-14 07:41:27 -03:00
string-map.c lib/string_map: fix return type of string_cmp 2019-03-05 21:46:41 -04:00
tags.c Use https instead of http where possible 2016-06-05 08:32:17 -03:00
thread-fp.cc build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
thread-fp.h build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
thread.cc lib/thread: replace use of deprecated notmuch_message_get_flag 2020-07-18 11:03:29 -03:00