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.
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;
}