Don't just use %.*s - that's not robust in the presence of non-printable
characters in the string.
while (remain_len && *tp) {
label_len = *tp++;
if (label_len < remain_len - 1) {
while (remain_len && *tp) {
label_len = *tp++;
if (label_len < remain_len - 1) {
- ND_PRINT((ndo, "%.*s", label_len, tp));
+ fn_printn(ndo, tp, label_len, NULL);
tp += label_len;
remain_len -= (label_len + 1);
if(*tp) ND_PRINT((ndo, "."));
tp += label_len;
remain_len -= (label_len + 1);
if(*tp) ND_PRINT((ndo, "."));