In some cases FRR is receiving a lsa data packet
with a length set to the length of the header only.
If we are expecting data from a peer in the form
of lsa data. Let's enforce it.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
#define OPAQUE_TYPE_RANGE_RESERVED(type) (127 < (type) && (type) <= 255)
+#define OSPF_OPAQUE_LSA_MIN_SIZE 4U
+
#define VALID_OPAQUE_INFO_LEN(lsahdr) \
((ntohs((lsahdr)->length) >= sizeof(struct lsa_header)) \
&& ((ntohs((lsahdr)->length) < OSPF_MAX_LSA_SIZE)) \
0,
OSPF_AS_EXTERNAL_LSA_MIN_SIZE,
0,
- 0,
- 0,
- 0,
+ OSPF_OPAQUE_LSA_MIN_SIZE,
+ OSPF_OPAQUE_LSA_MIN_SIZE,
+ OSPF_OPAQUE_LSA_MIN_SIZE,
};
/* for ospf_check_auth() */