vlib: avoid crash if fill_free_list returns 0 buffers 88/10988/2
authorDamjan Marion <[email protected]>
Tue, 6 Mar 2018 17:46:54 +0000 (18:46 +0100)
committerDamjan Marion <[email protected]>
Tue, 6 Mar 2018 20:02:21 +0000 (20:02 +0000)
Change-Id: If1284696e10df71b4029191b5e3adb32c21c0c5f
Signed-off-by: Damjan Marion <[email protected]>
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 */