Skip to content

Commit 0683e3c

Browse files
committed
Fix masked output in collector short prints. (-v3)
1 parent eb25282 commit 0683e3c

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

src/libnffile/output_short.c

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -237,17 +237,21 @@ static void stringsEXflowMisc(FILE *stream, record_map_t *r) {
237237

238238
char snet[INET6_ADDRSTRLEN] = {0};
239239
char dnet[INET6_ADDRSTRLEN] = {0};
240-
if (r->offsetMap[EXipv6FlowID]) {
241-
// IPv6
242-
EXipv6Flow_t *ipv6Flow = (EXipv6Flow_t *)r->offsetMap[EXipv6FlowID];
243-
inet6_ntop_mask(ipv6Flow->srcAddr, flowMisc->srcMask, snet, sizeof(snet));
244-
inet6_ntop_mask(ipv6Flow->dstAddr, flowMisc->dstMask, dnet, sizeof(dnet));
245-
}
246240
if (r->offsetMap[EXipv4FlowID]) {
247241
// IPv4
248-
EXipv4Flow_t *ipv4Flow = (EXipv4Flow_t *)r->offsetMap[EXipv4FlowID];
242+
elementHeader = r->offsetMap[EXipv4FlowID];
243+
EXipv4Flow_t *ipv4Flow = (EXipv4Flow_t *)((void *)elementHeader + sizeof(elementHeader_t));
249244
inet_ntop_mask(ipv4Flow->srcAddr, flowMisc->srcMask, snet, sizeof(snet));
250245
inet_ntop_mask(ipv4Flow->dstAddr, flowMisc->dstMask, dnet, sizeof(dnet));
246+
} else if (r->offsetMap[EXipv6FlowID]) {
247+
// IPv6
248+
elementHeader = r->offsetMap[EXipv4FlowID];
249+
EXipv6Flow_t *ipv6Flow = (EXipv6Flow_t *)((void *)elementHeader + sizeof(elementHeader_t));
250+
inet6_ntop_mask(ipv6Flow->srcAddr, flowMisc->srcMask, snet, sizeof(snet));
251+
inet6_ntop_mask(ipv6Flow->dstAddr, flowMisc->dstMask, dnet, sizeof(dnet));
252+
} else {
253+
snet[0] = '\0';
254+
dnet[0] = '\0';
251255
}
252256

253257
uint32_t fwdStatus = 0;

0 commit comments

Comments
 (0)