dovecot-2.1: Added buffer_verify_pool()

dovecot at dovecot.org dovecot at dovecot.org
Fri Jan 4 03:50:47 EET 2013


details:   http://hg.dovecot.org/dovecot-2.1/rev/9fda4feb6e2d
changeset: 14861:9fda4feb6e2d
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Jan 04 03:50:18 2013 +0200
description:
Added buffer_verify_pool()

diffstat:

 src/lib/buffer.c |  14 ++++++++++++++
 src/lib/buffer.h |   6 ++++++
 2 files changed, 20 insertions(+), 0 deletions(-)

diffs (35 lines):

diff -r abcc9959b757 -r 9fda4feb6e2d src/lib/buffer.c
--- a/src/lib/buffer.c	Thu Jan 03 07:30:54 2013 +0200
+++ b/src/lib/buffer.c	Fri Jan 04 03:50:18 2013 +0200
@@ -314,3 +314,17 @@
 
 	return memcmp(buf1->data, buf2->data, buf1->used) == 0;
 }
+
+void buffer_verify_pool(buffer_t *_buf)
+{
+	const struct real_buffer *buf = (const struct real_buffer *)_buf;
+	void *ret;
+
+	if (buf->pool->datastack_pool) {
+		/* this doesn't really do anything except verify the
+		   stack frame */
+		ret = p_realloc(buf->pool, buf->w_buffer,
+				buf->alloc, buf->alloc);
+		i_assert(ret == buf->w_buffer);
+	}
+}
diff -r abcc9959b757 -r 9fda4feb6e2d src/lib/buffer.h
--- a/src/lib/buffer.h	Thu Jan 03 07:30:54 2013 +0200
+++ b/src/lib/buffer.h	Fri Jan 04 03:50:18 2013 +0200
@@ -102,4 +102,10 @@
 	return buf->used;
 }
 
+/* Crash if buffer was allocated from data stack and stack frame has changed.
+   This can be used as an assert-like check to verify that it's valid to
+   increase the buffer size here, instead of crashing only randomly when the
+   buffer needs to be increased. */
+void buffer_verify_pool(buffer_t *buf);
+
 #endif


More information about the dovecot-cvs mailing list