link_address_set:
- if ((b0->current_length + sizeof (*id1) + sizeof (*vss1) +
- sizeof (*cmac)) > vlib_buffer_get_default_data_size (vm))
+ if ((b0->current_data + b0->current_length + sizeof (*id1) +
+ sizeof (*vss1) + sizeof (*cmac)) >
+ vlib_buffer_get_default_data_size (vm))
{
error0 = DHCPV6_PROXY_ERROR_PKT_TOO_BIG;
next0 = DHCPV6_PROXY_TO_SERVER_INPUT_NEXT_DROP;
u32 ci0;
c0 = vlib_buffer_copy (vm, b0);
+ if (c0 == NULL)
+ {
+ vlib_node_increment_counter
+ (vm, dhcpv6_proxy_to_server_node.index,
+ DHCPV6_PROXY_ERROR_ALLOC_FAIL, 1);
+ continue;
+ }
VLIB_BUFFER_TRACE_TRAJECTORY_INIT (c0);
ci0 = vlib_get_buffer_index (vm, c0);
server = &proxy->dhcp_servers[ii];