X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnat%2Fnat_api.c;h=1dad4e427286645fc7fdab12246021a7978b666b;hb=2ecf18a55081165beb807e4e65c485762d2c9f5e;hp=5c6d957a7089349f905d35d90d02b11f0bd14c43;hpb=dd1e3e780cd480e3f29fc34df48e605ded1acb2c;p=vpp.git diff --git a/src/plugins/nat/nat_api.c b/src/plugins/nat/nat_api.c index 5c6d957a708..1dad4e42728 100644 --- a/src/plugins/nat/nat_api.c +++ b/src/plugins/nat/nat_api.c @@ -1190,6 +1190,14 @@ static void goto send_reply; } + len = vl_api_string_len (&mp->tag); + + if (len > 64) + { + rv = VNET_API_ERROR_INVALID_VALUE; + goto send_reply; + } + memcpy (&local_addr.as_u8, mp->local_ip_address, 4); memcpy (&external_addr.as_u8, mp->external_ip_address, 4); @@ -1208,9 +1216,8 @@ static void else if (mp->flags & NAT_API_IS_SELF_TWICE_NAT) twice_nat = TWICE_NAT_SELF; - len = vl_api_string_len (&mp->tag); - tag = vec_new (u8, len); + memcpy (tag, mp->tag.buf, len); vec_terminate_c_string (tag);