We shouldn't set it blindly once the packet is received, but first we have to
do some sanity checks.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
size_t end = stream_get_getp(s) + hdr->length;
uint8_t len;
- SET_FLAG(peer->cap, PEER_CAP_SOFT_VERSION_RCV);
-
len = stream_getc(s);
if (stream_get_getp(s) + len > end) {
flog_warn(
return -1;
}
+ SET_FLAG(peer->cap, PEER_CAP_SOFT_VERSION_RCV);
+
if (len > BGP_MAX_SOFT_VERSION) {
flog_warn(EC_BGP_CAPABILITY_INVALID_LENGTH,
"%s: Received Software Version, but the length is too big, truncating, from peer %s",