From 0d65d11053395bde7bd8c36439e9025e50ea8028 Mon Sep 17 00:00:00 2001 From: Dave Barach Date: Fri, 16 Mar 2018 15:21:35 -0400 Subject: Fix a long-latent bi=0 bug in vlib_buffer_add_data Change vlib_buffer_add_data() so it interprets ~0 to mean please allocate a new buffer, instead of 0. Fixed a couple of calls to pass ~0 instead of 0. Zero has always been a valid buffer index, we never happened to actually use it until recent buffer allocator changes. The presenting symptom: ASSERT failure when running "make TEST=test_mpls test-debug" Change-Id: Ic909913c1d464b3434d6d47e0c58f978806854d5 Signed-off-by: Dave Barach --- src/vlib/buffer.c | 2 +- src/vlib/buffer_serialize.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/vlib') diff --git a/src/vlib/buffer.c b/src/vlib/buffer.c index 6caca72cf03..3f90f5a0860 100644 --- a/src/vlib/buffer.c +++ b/src/vlib/buffer.c @@ -817,7 +817,7 @@ vlib_buffer_add_data (vlib_main_t * vm, void *d; bi = buffer_index; - if (bi == 0 + if (bi == ~0 && 1 != vlib_buffer_alloc_from_free_list (vm, &bi, 1, free_list_index)) goto out_of_buffers; diff --git a/src/vlib/buffer_serialize.c b/src/vlib/buffer_serialize.c index 96a5f0a0da8..48dcce3be90 100644 --- a/src/vlib/buffer_serialize.c +++ b/src/vlib/buffer_serialize.c @@ -216,7 +216,7 @@ serialize_close_vlib_buffer (serialize_main_t * m) { sm->last_buffer = vlib_buffer_add_data (sm->vlib_main, sm->tx.free_list_index, - sm->last_buffer == ~0 ? 0 : sm->last_buffer, + sm->last_buffer, s->overflow_buffer, vec_len (s->overflow_buffer)); _vec_len (s->overflow_buffer) = 0; -- cgit 1.2.3-korg