From: Ondrej Zajicek (work) Date: Thu, 18 May 2017 22:33:52 +0000 (+0200) Subject: Fix type mixing in flowspec formatting X-Git-Tag: v2.0.0~74 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb7aa06a48f52813a019861a0e06ce9fe4d20c4b;p=thirdparty%2Fbird.git Fix type mixing in flowspec formatting Variable of u64 type was passed to vararg function as uint. --- diff --git a/lib/flowspec.c b/lib/flowspec.c index 0b863ed95..3fa6bac4b 100644 --- a/lib/flowspec.c +++ b/lib/flowspec.c @@ -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;