diff options
Diffstat (limited to 'vlib/vlib/node.c')
-rw-r--r-- | vlib/vlib/node.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/vlib/vlib/node.c b/vlib/vlib/node.c index 69bb07f6e41..fccc37ab7b9 100644 --- a/vlib/vlib/node.c +++ b/vlib/vlib/node.c @@ -433,7 +433,10 @@ register_node (vlib_main_t * vm, vlib_node_registration_t * r) for (i = 0; i < vec_len (rt->errors); i++) rt->errors[i] = vlib_error_set (n->index, i); - ASSERT (vec_len (n->runtime_data) <= sizeof (rt->runtime_data)); + ASSERT (sizeof (vlib_node_runtime_t) == 2 * CLIB_CACHE_LINE_BYTES); + ASSERT (vec_len (n->runtime_data) <= sizeof (vlib_node_runtime_t) - + STRUCT_OFFSET_OF (vlib_node_runtime_t, runtime_data)); + if (vec_len (n->runtime_data) > 0) clib_memcpy (rt->runtime_data, n->runtime_data, vec_len (n->runtime_data)); |