arping: validate am->interfaces before check address 96/36796/5
authorGaoChX <chiso.gao@gmail.com>
Thu, 4 Aug 2022 02:04:33 +0000 (10:04 +0800)
committerchiso.gao@gmail.com <chiso.gao@gmail.com>
Thu, 4 Aug 2022 06:45:31 +0000 (06:45 +0000)
May cause pointers point to unexpected non-zero addresses if not
validate vec

Type: fix

Change-Id: Ie4d3343d6734125b98e0dc962e33e0c7514da829
Signed-off-by: GaoChX <chiso.gao@gmail.com>
src/plugins/arping/arping.c

index 14f9258..a446c25 100644 (file)
@@ -554,7 +554,8 @@ arping_neighbor_probe_dst (vlib_main_t *vm, arping_args_t *args)
   arping_intf_t aif;
 
   /* Disallow multiple sends on the same interface for now. Who needs it? */
-  if (am->interfaces && (am->interfaces[args->sw_if_index] != 0))
+  if ((vec_len (am->interfaces) > args->sw_if_index) &&
+      (am->interfaces[args->sw_if_index] != 0))
     {
       error = clib_error_return (
        0, "arping command is in progress for the same interface. "