]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fix type mixing in flowspec formatting
authorOndrej Zajicek (work) <santiago@crfreenet.org>
Thu, 18 May 2017 22:33:52 +0000 (00:33 +0200)
committerOndrej Zajicek (work) <santiago@crfreenet.org>
Thu, 18 May 2017 22:36:37 +0000 (00:36 +0200)
Variable of u64 type was passed to vararg function as uint.

lib/flowspec.c

index 0b863ed958f7ef7fe5c4722fd9115f03da9c5a75..3fa6bac4b691c638b6ded33774087b7aa5d809d5 100644 (file)
@@ -924,7 +924,7 @@ num_op_str(const byte *op)
   return NULL;
 }
 
-static u64
+static uint
 get_value(const byte *val, u8 len)
 {
   switch (len)
@@ -932,7 +932,8 @@ get_value(const byte *val, u8 len)
   case 1: return *val;
   case 2: return get_u16(val);
   case 4: return get_u32(val);
-  case 8: return get_u64(val);
+  // No component may have length 8
+  // case 8: return get_u64(val);
   }
 
   return 0;
@@ -974,7 +975,7 @@ net_format_flow_num(buffer *b, const byte *part)
 {
   const byte *last_op = NULL;
   const byte *op = part+1;
-  u64 val;
+  uint val;
   uint len;
   uint first = 1;
 
@@ -1038,7 +1039,7 @@ static void
 net_format_flow_bitmask(buffer *b, const byte *part)
 {
   const byte *op = part+1;
-  u64 val;
+  uint val;
   uint len;
   uint first = 1;