]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Taming static checker: flow[64]_validate_cf() checks NULL data
authorMaria Matejka <mq@ucw.cz>
Thu, 13 Feb 2025 17:25:44 +0000 (18:25 +0100)
committerMaria Matejka <mq@ucw.cz>
Sun, 23 Feb 2025 19:26:22 +0000 (20:26 +0100)
This does not apply for the current code but if somebody chose to use
the flowspec validation functions for something totally broken, it may
unnecessarily crash.

lib/flowspec.c

index 6bf1f14bb274183ee7f2bc852cd522ecfb917932..d8d15ae330faf79ffe861f2a886efff2d6712ebc 100644 (file)
@@ -609,6 +609,7 @@ flow6_validate(const byte *nlri, uint len)
 void
 flow4_validate_cf(net_addr_flow4 *f)
 {
+  ASSERT_DIE(f && f->data);
   enum flow_validated_state r = flow4_validate(flow4_first_part(f), flow_read_length(f->data));
 
   if (r != FLOW_ST_VALID)
@@ -625,6 +626,7 @@ flow4_validate_cf(net_addr_flow4 *f)
 void
 flow6_validate_cf(net_addr_flow6 *f)
 {
+  ASSERT_DIE(f && f->data);
   enum flow_validated_state r = flow6_validate(flow6_first_part(f), flow_read_length(f->data));
 
   if (r != FLOW_ST_VALID)