diff options
author | Jakub Grajciar <jgrajcia@cisco.com> | 2020-02-07 11:30:26 +0100 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2020-02-26 08:51:03 +0000 |
commit | 2dbee9361e74d03727a8b618ba80a5e28c006011 (patch) | |
tree | 443b6c39e99e0e46b62ef0dfd002e31bb1fa7665 /src/plugins/ioam | |
parent | 8e755a16a71c55555f12381c8a12e22ae7138536 (diff) |
api: improve api string safety
- Remove vl_api_from_api_string
to prevent use of not nul-terminated strings.
- Rename vl_api_from_api_to_vec -> vl_api_from_api_to_new_vec
to imply a new vector is created. NOT nul terminated.
- Add vl_api_from_api_to_new_c_string. Returns
nul terminated string in a new vector.
- Add vl_api_c_string_to_api_string. Convert nul terminated
string to vl_api_string_t
- Add vl_api_vec_to_api_string. Convert NON nul terminated
vector to vl_api_string_t
Type: fix
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Iadd59b612c0d960a34ad0dd07a9d17f56435c6ea
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Diffstat (limited to 'src/plugins/ioam')
-rw-r--r-- | src/plugins/ioam/lib-pot/pot_api.c | 4 | ||||
-rw-r--r-- | src/plugins/ioam/lib-pot/pot_test.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/plugins/ioam/lib-pot/pot_api.c b/src/plugins/ioam/lib-pot/pot_api.c index 2ecfc51d97a..31ddf9da528 100644 --- a/src/plugins/ioam/lib-pot/pot_api.c +++ b/src/plugins/ioam/lib-pot/pot_api.c @@ -43,7 +43,7 @@ static void vl_api_pot_profile_add_t_handler pot_profile *profile = NULL; u8 *name = 0; - name = vl_api_from_api_to_vec(&mp->list_name); + name = vl_api_from_api_to_new_vec(&mp->list_name); pot_profile_list_init(name); id = mp->id; @@ -121,7 +121,7 @@ static void vl_api_pot_profile_activate_t_handler u8 id; u8 *name = NULL; - name = vl_api_from_api_to_vec(&mp->list_name); + name = vl_api_from_api_to_new_vec(&mp->list_name); if (!pot_profile_list_is_enabled(name)) { rv = -1; } else { diff --git a/src/plugins/ioam/lib-pot/pot_test.c b/src/plugins/ioam/lib-pot/pot_test.c index 90cff23888b..b30b21e9471 100644 --- a/src/plugins/ioam/lib-pot/pot_test.c +++ b/src/plugins/ioam/lib-pot/pot_test.c @@ -88,7 +88,7 @@ static int api_pot_profile_add (vat_main_t *vam) M2(POT_PROFILE_ADD, mp, sizeof(vl_api_string_t) + vec_len(name)); - vl_api_to_api_string(vec_len(name), (const char *)name, &mp->list_name); + vl_api_vec_to_api_string(name, &mp->list_name); mp->secret_share = clib_host_to_net_u64(secret_share); mp->polynomial_public = clib_host_to_net_u64(poly2); mp->lpc = clib_host_to_net_u64(lpc); @@ -142,7 +142,7 @@ static int api_pot_profile_activate (vat_main_t *vam) } M2(POT_PROFILE_ACTIVATE, mp, sizeof(vl_api_string_t) + vec_len(name)); - vl_api_to_api_string(vec_len(name), (const char *)name, &mp->list_name); + vl_api_vec_to_api_string(name, &mp->list_name); mp->id = id; S(mp); |