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 {