From d22a7c72234495e833cfe6add6485d6a6a762ab1 Mon Sep 17 00:00:00 2001 From: Unbit Date: Mon, 8 Jul 2013 17:59:56 +0200 Subject: [PATCH] added UWSGI_DEBUG_BUFFER to catch bugs related to uwsgi_buffer structures --- core/buffer.c | 6 ++++++ plugins/corerouter/corerouter.c | 2 +- uwsgi.h | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/core/buffer.c b/core/buffer.c index 61059e7f..42638e69 100644 --- a/core/buffer.c +++ b/core/buffer.c @@ -270,6 +270,12 @@ int uwsgi_buffer_append_base64(struct uwsgi_buffer *ub, char *s, size_t len) { void uwsgi_buffer_destroy(struct uwsgi_buffer *ub) { +#ifdef UWSGI_DEBUG_BUFFER + if (ub->freed) { + uwsgi_log("[BUG] buffer at %p already destroyed !!!\n", ub); + } + ub->freed = 1; +#endif if (ub->buf) free(ub->buf); free(ub); diff --git a/plugins/corerouter/corerouter.c b/plugins/corerouter/corerouter.c index 594080ea..875460cd 100644 --- a/plugins/corerouter/corerouter.c +++ b/plugins/corerouter/corerouter.c @@ -10,7 +10,7 @@ */ -#include "../../uwsgi.h" +#include extern struct uwsgi_server uwsgi; diff --git a/uwsgi.h b/uwsgi.h index 09568421..96a6a922 100644 --- a/uwsgi.h +++ b/uwsgi.h @@ -352,6 +352,9 @@ struct uwsgi_buffer { size_t pos; size_t len; size_t limit; +#ifdef UWSGI_DEBUG_BUFFER + int freed; +#endif }; struct uwsgi_string_list {