ldns_buffer_printf(output, "\\%c", data[src_pos]);
/* isprint!? */
} else if (!isprint((int) data[src_pos])) {
- ldns_buffer_printf(output, "\\%03u", data[src_pos]);
+ ldns_buffer_printf(output, "\\%03o", data[src_pos]);
} else {
ldns_buffer_printf(output, "%c", data[src_pos]);
}
isdigit((int) s[2]) &&
isdigit((int) s[3])) {
/* cast this so it fits */
- val = (uint8_t) ldns_hexdigit_to_int((char) s[1]) * 100 +
- ldns_hexdigit_to_int((char) s[2]) * 10 +
+ val = (uint8_t) ldns_hexdigit_to_int((char) s[1]) * 64 +
+ ldns_hexdigit_to_int((char) s[2]) * 8 +
ldns_hexdigit_to_int((char) s[3]);
*q = val;
s += 3;