From: Timo Sirainen Date: Mon, 9 Nov 2020 14:55:06 +0000 (+0200) Subject: lib: MODULE_CONTEXT_SET*() - Avoid NULL pointer arithmetic X-Git-Tag: 2.3.14.rc1~369 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ec07ca42622acc228c7a6cb1cabe6625a0a81663;p=thirdparty%2Fdovecot%2Fcore.git lib: MODULE_CONTEXT_SET*() - Avoid NULL pointer arithmetic Even though it was only doing +0. Fixes: runtime error: applying zero offset to null pointer --- diff --git a/src/lib/module-context.h b/src/lib/module-context.h index 13005f55df..3d2b1d6cb0 100644 --- a/src/lib/module-context.h +++ b/src/lib/module-context.h @@ -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