unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH] lib: add talloc reference from string map iterator to map
@ 2016-09-23  9:33 David Bremner
  2016-09-24  9:54 ` Tomi Ollila
  2016-09-24 13:18 ` David Bremner
  0 siblings, 2 replies; 5+ messages in thread
From: David Bremner @ 2016-09-23  9:33 UTC (permalink / raw)
  To: notmuch

This is needed so that when the map is modified during traversal, and
thus unlinked by the database code, the map is not disposed of until the
iterator is done with it.
---

According to my obviously fallible memory, this was always intended to
work something like this. For me, this change fixes the test failures
in T610 on Debian stable.  The same bad behaviour is visible by running
T610/test6 under valgrind even in places where the test passes.

 lib/string-map.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/string-map.c b/lib/string-map.c
index 591ff6d..0bb77e9 100644
--- a/lib/string-map.c
+++ b/lib/string-map.c
@@ -170,6 +170,9 @@ _notmuch_string_map_iterator_create (notmuch_string_map_t *map, const char *key,
     if (unlikely (iter == NULL))
 	return NULL;
 
+    if (unlikely (talloc_reference (iter, map) == NULL))
+	return NULL;
+
     iter->key = talloc_strdup (iter, key);
     iter->exact = exact;
     iter->current = bsearch_first (map->pairs, map->length, key, exact);
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-09-24 13:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-23  9:33 [PATCH] lib: add talloc reference from string map iterator to map David Bremner
2016-09-24  9:54 ` Tomi Ollila
2016-09-24 11:16   ` David Bremner
2016-09-24 11:43     ` Tomi Ollila
2016-09-24 13:18 ` David Bremner

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).