diff --git a/include/types/proxy.h b/include/types/proxy.h
index ca3bc7d..2d1b881 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -225,7 +225,7 @@
 	/**** common part ****/
 	struct timeval when;            /* date of this event, (tv_sec == 0) means "never" */
 	/* @16 */
-	char *buf;                      /* copy of the beginning of the message (may be NULL) */
+	void (*show)(struct buffer *, const struct error_snapshot *); /* dump function */
 	unsigned long long buf_ofs;     /* relative position of the buffer's input inside its container */
 	/* @32 */
 	unsigned int buf_out;           /* pending output bytes _before_ the buffer's input (0..buf->data-1) */
@@ -239,10 +239,10 @@
 	unsigned int ev_id;             /* event number (counter incremented for each capture) */
 	/* @68: 4 bytes hole here */
 	struct sockaddr_storage src;    /* client's address */
-	void (*show)(struct buffer *, const struct error_snapshot *); /* dump function */
 
 	/**** protocol-specific part ****/
 	union error_snapshot_ctx ctx;
+	char buf[0];                    /* copy of the beginning of the message for bufsize bytes */
 };
 
 struct email_alert {
diff --git a/src/proxy.c b/src/proxy.c
index 9f9fec8..0fbfce9 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -1360,25 +1360,22 @@
 
 	ev_id = HA_ATOMIC_XADD(&error_snapshot_id, 1);
 
-	es = malloc(sizeof(*es));
+	buf_len = b_data(buf) - buf_out;
+
+	es = malloc(sizeof(*es) + buf_len);
 	if (!es)
 		return;
 
-	es->ev_id    = ev_id;
+	es->buf_len = buf_len;
+	es->ev_id   = ev_id;
 
-	buf_len = b_data(buf) - buf_out;
 	len1 = b_size(buf) - buf_len;
 	if (len1 > buf_len)
 		len1 = buf_len;
-	len2 = buf_len - len1;
 
-	es->buf_len = buf_len;
-
-	if (!es->buf)
-		es->buf = malloc(global.tune.bufsize);
-
-	if (es->buf) {
+	if (len1) {
 		memcpy(es->buf, b_peek(buf, buf_out), len1);
+		len2 = buf_len - len1;
 		if (len2)
 			memcpy(es->buf + len1, b_orig(buf), len2);
 	}
@@ -2119,7 +2116,7 @@
 		}
 
 		/* OK, ptr >= 0, so we have to dump the current line */
-		while (es->buf && appctx->ctx.errors.ptr < es->buf_len && appctx->ctx.errors.ptr < global.tune.bufsize) {
+		while (appctx->ctx.errors.ptr < es->buf_len && appctx->ctx.errors.ptr < global.tune.bufsize) {
 			int newptr;
 			int newline;
 
