summaryrefslogtreecommitdiffstats
path: root/filter/ulogd_filter_IP2BIN.c
diff options
context:
space:
mode:
authorJeremy Sowden <jeremy@azazel.net>2025-05-26 18:19:01 +0100
committerFlorian Westphal <fw@strlen.de>2025-06-01 14:12:47 +0200
commit6498d29aa15557428aa62f37c478a602e03bd740 (patch)
tree3a56cbbf145875ee5943030b43860f51d71abd8e /filter/ulogd_filter_IP2BIN.c
parent512a0d4915bfd9c47196deed5ef27710b4418491 (diff)
db, IP2BIN: correct `format_ipv6()` output buffer sizes
`format_ipv6()` formats IPv6 addresses as hex-strings. However, sizing for the output buffer is not done quite right. The elements of the `ipbin_array` array in ulogd_filter_IP2BIN.c are sized using a local macro, `IPADDR_LENGTH`, which is defined as 128, the number of bits in an IPv6 address; this is much larger than necessary. Define an appropriate macro and use that instead. Signed-off-by: Jeremy Sowden <jeremy@azazel.net> Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'filter/ulogd_filter_IP2BIN.c')
-rw-r--r--filter/ulogd_filter_IP2BIN.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/filter/ulogd_filter_IP2BIN.c b/filter/ulogd_filter_IP2BIN.c
index 7f7bea5..f1ca4ee 100644
--- a/filter/ulogd_filter_IP2BIN.c
+++ b/filter/ulogd_filter_IP2BIN.c
@@ -28,8 +28,6 @@
#include <ulogd/ulogd.h>
#include <netinet/if_ether.h>
-#define IPADDR_LENGTH 128
-
enum input_keys {
KEY_OOB_FAMILY,
KEY_OOB_PROTOCOL,
@@ -114,7 +112,7 @@ static struct ulogd_key ip2bin_keys[] = {
};
-static char ipbin_array[MAX_KEY - START_KEY + 1][IPADDR_LENGTH];
+static char ipbin_array[MAX_KEY - START_KEY + 1][FORMAT_IPV6_BUFSZ];
static int ip2bin(struct ulogd_key *inp, int index, int oindex)
{
@@ -161,7 +159,7 @@ static int ip2bin(struct ulogd_key *inp, int index, int oindex)
return ULOGD_IRET_ERR;
}
- format_ipv6(ipbin_array[oindex], IPADDR_LENGTH, addr);
+ format_ipv6(ipbin_array[oindex], sizeof(ipbin_array[oindex]), addr);
return ULOGD_IRET_OK;
}