diff options
author | Dave Barach <dave@barachs.net> | 2020-04-10 10:18:35 -0400 |
---|---|---|
committer | Dave Barach <dave@barachs.net> | 2020-04-10 10:19:20 -0400 |
commit | e2568b5d0a5e34f02adda788e51ed0147644bec9 (patch) | |
tree | 26b8a039841cb44d7520f4eb2a64dcf1f3cc5be8 /src/vnet/dhcp/dhcp4_proxy_node.c | |
parent | d212187f02c0179f2f86bb3fdbf3f51a087ea23b (diff) |
misc: check return values from vlib_buffer_copy(...)
vlib_buffer_copy(...) returns NULL if the system is temporarily out of
buffers.
This is NOT correct. Please don't be this person:
c0 = vlib_buffer_copy (vm, p0);
ci0 = vlib_get_buffer_index (vm, c0);
Type: fix
Signed-off-by: Dave Barach <dave@barachs.net>
(cherry picked from commit c25ef58965871ea5d2b40904df9506803f69e47e)
Change-Id: I6cd4f289c4fadc3f36c3203b53546e9a788ef99b
Diffstat (limited to 'src/vnet/dhcp/dhcp4_proxy_node.c')
-rw-r--r-- | src/vnet/dhcp/dhcp4_proxy_node.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/vnet/dhcp/dhcp4_proxy_node.c b/src/vnet/dhcp/dhcp4_proxy_node.c index 3576f0cbf35..7f03df486d2 100644 --- a/src/vnet/dhcp/dhcp4_proxy_node.c +++ b/src/vnet/dhcp/dhcp4_proxy_node.c @@ -358,6 +358,13 @@ dhcp_proxy_to_server_input (vlib_main_t * vm, u32 ci0; c0 = vlib_buffer_copy (vm, b0); + if (c0 == NULL) + { + vlib_node_increment_counter + (vm, dhcp_proxy_to_server_node.index, + DHCP_PROXY_ERROR_ALLOC_FAIL, 1); + continue; + } VLIB_BUFFER_TRACE_TRAJECTORY_INIT (c0); ci0 = vlib_get_buffer_index (vm, c0); server = &proxy->dhcp_servers[ii]; |