- vec_validate (port_desc, strlen ((char *) mp->port_desc) - 1);
- strncpy ((char *) port_desc, (char *) mp->port_desc, vec_len (port_desc));
+ memset (no_data, 0, 256);
+
+ if (memcmp (mp->port_desc, no_data, strlen ((char *) mp->port_desc)) != 0)
+ {
+ vec_validate (port_desc, strlen ((char *) mp->port_desc) - 1);
+ strncpy ((char *) port_desc, (char *) mp->port_desc,
+ vec_len (port_desc));
+ }
+
+ if (memcmp (mp->mgmt_ip4, no_data, sizeof (mp->mgmt_ip4)) != 0)
+ {
+ vec_validate (mgmt_ip4, sizeof (mp->mgmt_ip4) - 1);
+ clib_memcpy (mgmt_ip4, mp->mgmt_ip4, vec_len (mgmt_ip4));
+ }
+
+ if (memcmp (mp->mgmt_ip6, no_data, sizeof (mp->mgmt_ip6)) != 0)
+ {
+ vec_validate (mgmt_ip6, sizeof (mp->mgmt_ip6) - 1);
+ clib_memcpy (mgmt_ip6, mp->mgmt_ip6, vec_len (mgmt_ip6));
+ }
+
+ if (memcmp (mp->mgmt_oid, no_data, strlen ((char *) mp->mgmt_oid)) != 0)
+ {
+ vec_validate (mgmt_oid, strlen ((char *) mp->mgmt_oid) - 1);
+ strncpy ((char *) mgmt_oid, (char *) mp->mgmt_oid, vec_len (mgmt_oid));
+ }