Use correct size for IPv4 address in gethostbyaddr().
When u_long is 8 bytes, it returns EINVAL and 'ipfw -N show' doesn't work. Reported by: Claudio Eichenberger <cei at yourshop.com> MFC after: 1 week
This commit is contained in:
parent
38e00d542b
commit
4e62948ad4
@ -1256,7 +1256,8 @@ print_ip(struct buf_pr *bp, const struct format_opts *fo, ipfw_insn_ip *cmd)
|
||||
(cmd->o.opcode == O_IP_SRC || cmd->o.opcode == O_IP_DST) ?
|
||||
32 : contigmask((uint8_t *)&(a[1]), 32);
|
||||
if (mb == 32 && co.do_resolv)
|
||||
he = gethostbyaddr((char *)&(a[0]), sizeof(u_long), AF_INET);
|
||||
he = gethostbyaddr((char *)&(a[0]), sizeof(in_addr_t),
|
||||
AF_INET);
|
||||
if (he != NULL) /* resolved to name */
|
||||
bprintf(bp, "%s", he->h_name);
|
||||
else if (mb == 0) /* any */
|
||||
|
Loading…
Reference in New Issue
Block a user