From f9e51beec118f1bbd558ed689fdad35046160529 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Thu, 12 Nov 2020 19:53:11 +0100 Subject: [PATCH] BUG/MINOR: peers: Do not ignore a protocol error for dictionary entries. If we could not decode the ID of a dictionary entry from a peer update message, we must inform the remote peer about such an error as this is done for any other decoding error. --- src/peers.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/peers.c b/src/peers.c index 276e5ce..9a0f3cb 100644 --- a/src/peers.c +++ b/src/peers.c @@ -1609,8 +1609,11 @@ static int peer_treat_updatemsg(struct appctx *appctx, struct peer *p, int updt, dc = p->dcache; if (*msg_cur == end) { /* Dictionary entry key without value. */ - if (id > dc->max_entries) - break; + if (id > dc->max_entries) { + TRACE_PROTO("malformed message", PEERS_EV_UPDTMSG, + NULL, p, NULL, &id); + goto malformed_unlock; + } /* IDs sent over the network are numbered from 1. */ de = dc->rx[id - 1].de; } -- 1.7.10.4