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.
(cherry picked from commit f9e51beec118f1bbd558ed689fdad35046160529)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit cd24d5cfbe58bf2b25a76d077a0923053cbf7838)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit c4b0ea55b105ae65d9580e7b915460645f0be2fa)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 715a80c129ef6e2e0cc8adda1511e32c4926bf33)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/peers.c b/src/peers.c
index ed0c11f..1d7cf69 100644
--- a/src/peers.c
+++ b/src/peers.c
@@ -1512,8 +1512,9 @@
dc = p->dcache;
if (*msg_cur == end) {
/* Dictionary entry key without value. */
- if (id > dc->max_entries)
- break;
+ if (id > dc->max_entries) {
+ goto malformed_unlock;
+ }
/* IDs sent over the network are numbered from 1. */
de = dc->rx[id - 1].de;
}