Do the same as the oprint plugin: let inet_ntop() write to a temporary
buffer, and then write that buffer content and the trailing comma to the
actual output buffer in one go.
Fixes: f04bf6794d11 ("gprint, oprint: use inet_ntop to format ip addresses")
Signed-off-by: Corubba Smith <corubba@gmx.de>
Signed-off-by: Florian Westphal <fw@strlen.de>
size += ret;
break;
case ULOGD_RET_IPADDR: {
+ char addrbuf[INET6_ADDRSTRLEN + 1] = "";
struct in6_addr ipv6addr;
struct in_addr ipv4addr;
int family;
addr = &ipv4addr;
family = AF_INET;
}
- if (!inet_ntop(family, addr, buf + size, rem))
+ if (!inet_ntop(family, addr, addrbuf, sizeof(addrbuf)))
break;
- ret = strlen(buf + size);
+ ret = snprintf(buf+size, rem, "%s,", addrbuf);
+ if (ret < 0)
+ break;
rem -= ret;
size += ret;
break;