memif: fix the memory leak when memif cli getting wrong parameters inputs 63/34663/5
authorHan Wu <wuhan9084@163.com>
Thu, 2 Dec 2021 12:13:24 +0000 (20:13 +0800)
committerDamjan Marion <dmarion@me.com>
Wed, 8 Dec 2021 17:53:13 +0000 (17:53 +0000)
Type: fix

Signed-off-by: Han Wu <wuhan9084@163.com>
Change-Id: I0aeafd273b3d1d01df02d638c72461943f91ef90

src/plugins/memif/cli.c

index 056364c..19f624a 100644 (file)
@@ -53,6 +53,7 @@ memif_socket_filename_create_command_fn (vlib_main_t * vm,
       else
        {
          vec_free (socket_filename);
+         unformat_free (line_input);
          return clib_error_return (0, "unknown input `%U'",
                                    format_unformat_error, input);
        }
@@ -125,6 +126,7 @@ memif_socket_filename_delete_command_fn (vlib_main_t * vm,
        ;
       else
        {
+         unformat_free (line_input);
          return clib_error_return (0, "unknown input `%U'",
                                    format_unformat_error, input);
        }
@@ -213,8 +215,11 @@ memif_create_command_fn (vlib_main_t * vm, unformat_input_t * input,
                         unformat_ethernet_address, args.hw_addr))
        args.hw_addr_set = 1;
       else
-       return clib_error_return (0, "unknown input `%U'",
-                                 format_unformat_error, input);
+       {
+         unformat_free (line_input);
+         return clib_error_return (0, "unknown input `%U'",
+                                   format_unformat_error, input);
+       }
     }
   unformat_free (line_input);
 
@@ -289,8 +294,11 @@ memif_delete_command_fn (vlib_main_t * vm, unformat_input_t * input,
                         vnm, &sw_if_index))
        ;
       else
-       return clib_error_return (0, "unknown input `%U'",
-                                 format_unformat_error, input);
+       {
+         unformat_free (line_input);
+         return clib_error_return (0, "unknown input `%U'",
+                                   format_unformat_error, input);
+       }
     }
   unformat_free (line_input);