vlib: avoid crash if fill_free_list returns 0 buffers 88/10988/2
authorDamjan Marion <damarion@cisco.com>
Tue, 6 Mar 2018 17:46:54 +0000 (18:46 +0100)
committerDamjan Marion <dmarion.lists@gmail.com>
Tue, 6 Mar 2018 20:02:21 +0000 (20:02 +0000)
Change-Id: If1284696e10df71b4029191b5e3adb32c21c0c5f
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vlib/buffer_funcs.h

index 6ea804f..d1aecac 100644 (file)
@@ -304,7 +304,8 @@ vlib_buffer_alloc_from_free_list (vlib_main_t * vm,
   if (PREDICT_FALSE (len < n_buffers))
     {
       bm->cb.vlib_buffer_fill_free_list_cb (vm, fl, n_buffers);
-      len = vec_len (fl->buffers);
+      if (PREDICT_FALSE ((len = vec_len (fl->buffers)) == 0))
+       return 0;
 
       /* even if fill free list didn't manage to refill free list
          we should give what we have */