]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: MODULE_CONTEXT_SET*() - Avoid NULL pointer arithmetic
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 9 Nov 2020 14:55:06 +0000 (16:55 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 9 Nov 2020 15:37:28 +0000 (17:37 +0200)
Even though it was only doing +0. Fixes:
runtime error: applying zero offset to null pointer

src/lib/module-context.h

index 13005f55df14b241c3b3a28119626629ef8f84ee..3d2b1d6cb064cb0afe7b86ca83da9f3acff91bd1 100644 (file)
@@ -97,10 +97,10 @@ static inline unsigned int module_get_context_id(struct module_context_id *id)
 }
 
 #define MODULE_CONTEXT_SET_FULL(obj, id_ctx, ctx, module_ctx) STMT_START { \
-       void *_module_tmp = ctx + \
-               COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE(module_ctx, \
-                       (**(obj)->module_contexts.v)) + \
-               OBJ_REGISTER_COMPATIBLE(obj, id_ctx); \
+       (void)COMPILE_ERROR_IF_TYPES_NOT_COMPATIBLE(module_ctx, \
+                       (**(obj)->module_contexts.v)); \
+       (void)OBJ_REGISTER_COMPATIBLE(obj, id_ctx); \
+       void *_module_tmp = ctx; \
        array_idx_set_i(&(obj)->module_contexts.arr, \
                module_get_context_id(&(id_ctx).id), &_module_tmp); \
        } STMT_END