memif: Fix underflow 90/35590/1
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>
Fri, 11 Feb 2022 10:19:58 +0000 (11:19 +0100)
committerMauro Sardara <msardara@cisco.com>
Fri, 11 Mar 2022 09:53:11 +0000 (09:53 +0000)
Type: fix

Change-Id: Id183c47328510b5db7ffcc7a4dfb41f5a3151399
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
(cherry picked from commit 1b969c2f6a181d4f7cca542dad00e4feb1e45650)

src/plugins/memif/node.c

index 1f636f2..5bb10fc 100644 (file)
@@ -557,7 +557,7 @@ memif_device_input_inline (vlib_main_t *vm, vlib_node_runtime_t *node,
 
       vlib_get_buffers (vm, ptd->buffers, buffer_ptrs, n_buffers);
 
-      for (i = 0; i < n_pkts - 8; i++)
+      for (i = 0; i + 8 < n_pkts; i++)
        {
          clib_prefetch_load (desc_data[i + 8]);
          clib_prefetch_store (buffer_ptrs[i + 8]->data);
@@ -574,7 +574,7 @@ memif_device_input_inline (vlib_main_t *vm, vlib_node_runtime_t *node,
       u32 n_pkts = vec_len (ptd->copy_ops);
       co = ptd->copy_ops;
 
-      for (i = 0; i < n_pkts - 8; i++)
+      for (i = 0; i + 8 < n_pkts; i++)
        {
          clib_prefetch_load (co[i + 8].data);
          b = vlib_get_buffer (vm, ptd->buffers[co[i].buffer_vec_index]);