VPP-189 - Coverity OVERRUN error in port-range

Change-Id: Ib9f43dffa9d04478d92063b71dd7bef4ac6969f1
Signed-off-by: Keith Burns (alagalah) <alagalah@gmail.com>
This commit is contained in:
Keith Burns (alagalah)
2016-08-08 10:49:54 -07:00
committed by Dave Barach
parent 54360750d3
commit cc9658c8b3
2 changed files with 593 additions and 525 deletions

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,8 @@
#define included_ip_ip_source_and_port_range_check_h
typedef struct {
typedef struct
{
u32 ranges_per_adjacency;
u32 special_adjacency_format_function_index;
@ -28,7 +29,8 @@ typedef struct {
source_range_check_main_t source_range_check_main;
typedef enum {
typedef enum
{
IP_SOURCE_AND_PORT_RANGE_CHECK_PROTOCOL_TCP_OUT,
IP_SOURCE_AND_PORT_RANGE_CHECK_PROTOCOL_UDP_OUT,
IP_SOURCE_AND_PORT_RANGE_CHECK_PROTOCOL_TCP_IN,
@ -36,42 +38,51 @@ typedef enum {
IP_SOURCE_AND_PORT_RANGE_CHECK_N_PROTOCOLS,
} ip_source_and_port_range_check_protocol_t;
typedef struct {
typedef struct
{
u32 fib_index[IP_SOURCE_AND_PORT_RANGE_CHECK_N_PROTOCOLS];
} ip_source_and_port_range_check_config_t;
#define IP_SOURCE_AND_PORT_RANGE_CHECK_RANGE_LIMIT VLIB_BUFFER_PRE_DATA_SIZE/(2*sizeof(u16x8));
typedef struct {
union {
typedef struct
{
union
{
u16x8 as_u16x8;
u16 as_u16[8];
};
} u16x8vec_t;
typedef struct {
typedef struct
{
u16x8vec_t low;
u16x8vec_t hi;
} protocol_port_range_t;
int ip4_source_and_port_range_check_add_del (ip4_address_t * address,
u32 length,
u32 vrf_id,
u16 * low_ports,
u16 * hi_ports,
int is_add);
u32 length,
u32 vrf_id,
u16 * low_ports,
u16 * hi_ports, int is_add);
// This will be moved to another file in another patch -- for API freeze
int ip6_source_and_port_range_check_add_del (ip6_address_t * address,
u32 length,
u32 vrf_id,
u16 * low_ports,
u16 * hi_ports,
int is_add);
u32 length,
u32 vrf_id,
u16 * low_ports,
u16 * hi_ports, int is_add);
int set_ip_source_and_port_range_check (vlib_main_t * vm,
u32 * fib_index,
u32 sw_if_index,
u32 is_add);
u32 * fib_index,
u32 sw_if_index, u32 is_add);
#endif /* included ip_source_and_port_range_check_h */
/*
* fd.io coding-style-patch-verification: ON
*
* Local Variables:
* eval: (c-set-style "gnu")
* End:
*/