From: Timo Sirainen Date: Thu, 1 Sep 2016 05:41:28 +0000 (+0300) Subject: lib: If DEBUG is enabled, use a pointer type for data_stack_frame_t X-Git-Tag: 2.3.0.rc1~3086 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=32c3ba3ba51c80d3fa2b4e17c34a621a8532cca0;p=thirdparty%2Fdovecot%2Fcore.git lib: If DEBUG is enabled, use a pointer type for data_stack_frame_t This allows telling static analyzers to treat t_push() and t_pop() similarly to malloc()/free() and check for leaks. --- diff --git a/src/lib/data-stack.c b/src/lib/data-stack.c index 7e07150230..88939ed7a2 100644 --- a/src/lib/data-stack.c +++ b/src/lib/data-stack.c @@ -67,6 +67,12 @@ struct stack_frame_block { #endif }; +#ifdef DEBUG +struct data_stack_frame { + int dummy; +}; +#endif + data_stack_frame_t data_stack_frame = 0; static bool data_stack_initialized = FALSE; @@ -571,7 +577,7 @@ void data_stack_init(void) return; } data_stack_initialized = TRUE; - data_stack_frame = 1; + data_stack_frame = (data_stack_frame_t)1; outofmem_area.block.size = outofmem_area.block.left = sizeof(outofmem_area) - sizeof(outofmem_area.block); diff --git a/src/lib/data-stack.h b/src/lib/data-stack.h index 6867c08a9a..b15b12dbfc 100644 --- a/src/lib/data-stack.h +++ b/src/lib/data-stack.h @@ -31,7 +31,11 @@ overflows. */ +#ifndef DEBUG typedef unsigned int data_stack_frame_t; +#else +typedef struct data_stack_frame *data_stack_frame_t; +#endif extern data_stack_frame_t data_stack_frame;