- ND_PRINT((ndo, "\n\t MD Name Format %s (%u), MD Name length %u",
- tok2str(cfm_md_nameformat_values, "Unknown",
- msg_ptr.cfm_ccm->md_nameformat),
- msg_ptr.cfm_ccm->md_nameformat,
- msg_ptr.cfm_ccm->md_namelength));
-
- if (msg_ptr.cfm_ccm->md_nameformat != CFM_CCM_MD_FORMAT_NONE) {
- ND_PRINT((ndo, "\n\t MD Name: "));
- switch (msg_ptr.cfm_ccm->md_nameformat) {
+ md_nameformat = GET_U_1(namesp);
+ namesp++;
+ names_data_remaining--; /* We know this is != 0 */
+ if (md_nameformat != CFM_CCM_MD_FORMAT_NONE) {
+ md_namelength = GET_U_1(namesp);
+ namesp++;
+ names_data_remaining--; /* We know this is !=0 */
+ ND_PRINT("\n\t MD Name Format %s (%u), MD Name length %u",
+ tok2str(cfm_md_nameformat_values, "Unknown",
+ md_nameformat),
+ md_nameformat,
+ md_namelength);
+
+ /*
+ * -3 for the MA short name format and length and one byte
+ * of MA short name.
+ */
+ if (md_namelength > names_data_remaining - 3) {
+ ND_PRINT(" (too large, must be <= %u)", names_data_remaining - 2);
+ return;
+ }
+
+ md_name = namesp;
+ ND_PRINT("\n\t MD Name: ");
+ switch (md_nameformat) {