From ff57c6aeb80a52b1f52bd1dac9308a69dc7a4774 Mon Sep 17 00:00:00 2001 From: eindenbom Date: Fri, 16 Apr 2010 15:15:31 +0400 Subject: Avoid accessing half-deallocated memory when using talloc_zfree macro. The correct memory deallocation sequence is: - clear pointer to memory first - then deallocate memory --- src/util/util.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/util') diff --git a/src/util/util.h b/src/util/util.h index fae8096a..0b691a7e 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -118,7 +118,11 @@ errno_t set_debug_file_from_fd(const int fd); #define FLAGS_PID_FILE 0x0004 #ifndef talloc_zfree -#define talloc_zfree(ptr) do { talloc_free(ptr); ptr = NULL; } while(0) +#define talloc_zfree(ptr) do { \ + TALLOC_CTX *_tmp_ctx = ptr; \ + ptr = NULL; \ + talloc_free(_tmp_ctx); \ + } while(0) #endif #ifndef discard_const_p -- cgit