int precision, int flags)
{
char ip4_addr[4 * 4]; /* (4 * 3 decimal digits), 3 dots and trailing zero */
+ char temp[3]; /* hold each IP quad in reverse order */
char *p = ip4_addr;
- int i;
+ int i, digits;
for (i = 0; i < 4; i++) {
- p = put_dec_trunc(p, addr[i]);
+ digits = put_dec_trunc(temp, addr[i]) - temp;
+ /* reverse the digits in the quad */
+ while (digits--)
+ *p++ = temp[digits];
if (i != 3)
*p++ = '.';
}
return symbol_string(buf, end, ptr, field_width, precision, flags);
case 'R':
return resource_string(buf, end, ptr, field_width, precision, flags);
+ case 'm':
+ flags |= SPECIAL;
+ /* Fallthrough */
case 'M':
return mac_address_string(buf, end, ptr, field_width, precision, flags);
case 'i':