]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
MODULE_CONTEXT() now returns NULL if the whole module hasn't been registered yet.
authorTimo Sirainen <tss@iki.fi>
Tue, 11 May 2010 05:49:44 +0000 (08:49 +0300)
committerTimo Sirainen <tss@iki.fi>
Tue, 11 May 2010 05:49:44 +0000 (08:49 +0300)
This fixes a crash with thread handling.

--HG--
branch : HEAD

src/lib/module-context.h

index dc834a6633de2d11ed33af00715ec6ad3053fac4..2603cf06f71b3ae9e8fd49561f74ade6f041951c 100644 (file)
        COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE(OBJ_REGISTER(obj), (id_ctx).reg)
 
 #define MODULE_CONTEXT(obj, id_ctx) \
+       (unlikely(!(id_ctx).id.module_id_set) ? NULL : \
        (*((void **)array_idx_modifiable(&(obj)->module_contexts, \
                                        (id_ctx).id.module_id) + \
-        OBJ_REGISTER_COMPATIBLE(obj, id_ctx)))
+        OBJ_REGISTER_COMPATIBLE(obj, id_ctx))))
 
 #ifdef HAVE_TYPEOF
 #  define MODULE_CONTEXT_DEFINE(_name, _reg) \