[PATCH ulogd2 v2 2/3] gprint: fix comma after ip addresses

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxx>
---
 output/ulogd_output_GPRINT.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/output/ulogd_output_GPRINT.c b/output/ulogd_output_GPRINT.c
index 37829fa..20dd308 100644
--- a/output/ulogd_output_GPRINT.c
+++ b/output/ulogd_output_GPRINT.c
@@ -155,6 +155,7 @@ static int gprint_interp(struct ulogd_pluginstance *upi)
 			size += ret;
 			break;
 		case ULOGD_RET_IPADDR: {
+			char addrbuf[INET6_ADDRSTRLEN + 1] = "";
 			struct in6_addr ipv6addr;
 			struct in_addr ipv4addr;
 			int family;
@@ -176,10 +177,12 @@ static int gprint_interp(struct ulogd_pluginstance *upi)
 				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;
--
2.48.1






[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux