pppoe: fix uninitialized memory bug
In pppoe_cp_node.c, node->errors[error0] was accessed without node->errors being initialized. Found with AFL + ASAN. Type: fix Signed-off-by: TimotheeChauvin <timchauv@cisco.com> Change-Id: Ide8a60021b2d47b5e2fce7062d8f12c7f4d225f7 (cherry picked from commit 2887159a1a5f5c501c2df59bf88e6faa38e9699f)
This commit is contained in:
TimotheeChauvin
committed by
Andrew Yourtchenko
parent
5269067510
commit
76797dc615
@ -94,6 +94,7 @@ typedef enum
|
|||||||
PPPOE_N_ERROR,
|
PPPOE_N_ERROR,
|
||||||
} pppoe_input_error_t;
|
} pppoe_input_error_t;
|
||||||
|
|
||||||
|
extern char *pppoe_error_strings[];
|
||||||
|
|
||||||
#define MTU 1500
|
#define MTU 1500
|
||||||
#define MTU_BUFFERS ((MTU + vlib_buffer_get_default_data_size(vm) - 1) / vlib_buffer_get_default_data_size(vm))
|
#define MTU_BUFFERS ((MTU + vlib_buffer_get_default_data_size(vm) - 1) / vlib_buffer_get_default_data_size(vm))
|
||||||
|
@ -237,6 +237,9 @@ VLIB_REGISTER_NODE (pppoe_cp_dispatch_node) = {
|
|||||||
/* Takes a vector of packets. */
|
/* Takes a vector of packets. */
|
||||||
.vector_size = sizeof (u32),
|
.vector_size = sizeof (u32),
|
||||||
|
|
||||||
|
.n_errors = PPPOE_N_ERROR,
|
||||||
|
.error_strings = pppoe_error_strings,
|
||||||
|
|
||||||
.n_next_nodes = PPPOE_CP_N_NEXT,
|
.n_next_nodes = PPPOE_CP_N_NEXT,
|
||||||
.next_nodes = {
|
.next_nodes = {
|
||||||
#define _(s,n) [PPPOE_CP_NEXT_##s] = n,
|
#define _(s,n) [PPPOE_CP_NEXT_##s] = n,
|
||||||
|
@ -390,12 +390,14 @@ VLIB_NODE_FN (pppoe_input_node) (vlib_main_t * vm,
|
|||||||
return from_frame->n_vectors;
|
return from_frame->n_vectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char * pppoe_error_strings[] = {
|
#ifndef CLIB_MARCH_VARIANT
|
||||||
|
char * pppoe_error_strings[] = {
|
||||||
#define pppoe_error(n,s) s,
|
#define pppoe_error(n,s) s,
|
||||||
#include <pppoe/pppoe_error.def>
|
#include <pppoe/pppoe_error.def>
|
||||||
#undef pppoe_error
|
#undef pppoe_error
|
||||||
#undef _
|
#undef _
|
||||||
};
|
};
|
||||||
|
#endif /* CLIB_MARCH_VARIANT */
|
||||||
|
|
||||||
VLIB_REGISTER_NODE (pppoe_input_node) = {
|
VLIB_REGISTER_NODE (pppoe_input_node) = {
|
||||||
.name = "pppoe-input",
|
.name = "pppoe-input",
|
||||||
|
Reference in New Issue
Block a user