memif: don't leak error strings in API handlers
Type: fix
Fixes: ab4d917
Change-Id: I226044f64e1577033798fd203a2e981c894830d6
Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:

committed by
Dave Wallace

parent
a361a3951c
commit
f6d3abd0d1
@ -65,7 +65,7 @@ void
|
||||
/* socket filename */
|
||||
mp->socket_filename[ARRAY_LEN (mp->socket_filename) - 1] = 0;
|
||||
|
||||
rv = vnet_api_error (memif_socket_filename_add_del (
|
||||
rv = vnet_get_api_error_and_free (memif_socket_filename_add_del (
|
||||
is_add, socket_id, (char *) mp->socket_filename));
|
||||
|
||||
reply:
|
||||
@ -99,7 +99,7 @@ vl_api_memif_socket_filename_add_del_v2_t_handler (
|
||||
if (mp->is_add && socket_id == (u32) ~0)
|
||||
socket_id = memif_get_unused_socket_id ();
|
||||
|
||||
rv = vnet_api_error (
|
||||
rv = vnet_get_api_error_and_free (
|
||||
memif_socket_filename_add_del (mp->is_add, socket_id, socket_filename));
|
||||
|
||||
vec_free (socket_filename);
|
||||
@ -190,7 +190,7 @@ vl_api_memif_create_t_handler (vl_api_memif_create_t * mp)
|
||||
args.hw_addr_set = 1;
|
||||
}
|
||||
|
||||
rv = vnet_api_error (memif_create_if (vm, &args));
|
||||
rv = vnet_get_api_error_and_free (memif_create_if (vm, &args));
|
||||
|
||||
vec_free (args.secret);
|
||||
|
||||
@ -227,7 +227,7 @@ vl_api_memif_delete_t_handler (vl_api_memif_delete_t * mp)
|
||||
else
|
||||
{
|
||||
mif = pool_elt_at_index (mm->interfaces, hi->dev_instance);
|
||||
rv = vnet_api_error (memif_delete_if (vm, mif));
|
||||
rv = vnet_get_api_error_and_free (memif_delete_if (vm, mif));
|
||||
}
|
||||
|
||||
REPLY_MACRO (VL_API_MEMIF_DELETE_REPLY);
|
||||
|
@ -42,6 +42,14 @@ vnet_api_error (clib_error_t *err)
|
||||
return err->code;
|
||||
}
|
||||
|
||||
static_always_inline vnet_api_error_t
|
||||
vnet_get_api_error_and_free (clib_error_t *err)
|
||||
{
|
||||
vnet_api_error_t rv = vnet_api_error (err);
|
||||
clib_error_free (err);
|
||||
return rv;
|
||||
}
|
||||
|
||||
#endif /* included_vnet_api_errno_h */
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user