From 64912b1f11c30796f961c2bea7c6650b6aa00142 Mon Sep 17 00:00:00 2001 From: Stephen Donnelly Date: Mon, 11 Dec 2023 15:32:06 +1300 Subject: [PATCH] endace: Fix source-dag timestamps Bug: #6618. Fix Endace ERF to SCTime_t timestamp conversion Fix typo preventing compilation with --enable-dag --- src/source-erf-dag.c | 10 +++------- src/source-erf-file.c | 7 +------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/source-erf-dag.c b/src/source-erf-dag.c index e3c820dc4c08..b7ea14d83239 100644 --- a/src/source-erf-dag.c +++ b/src/source-erf-dag.c @@ -186,7 +186,7 @@ ReceiveErfDagThreadInit(ThreadVars *tv, void *initdata, void **data) SCReturnInt(TM_ECODE_FAILED); } - ErfDagThreadVars *ewtn = SCMClloc(1, sizeof(ErfDagThreadVars)); + ErfDagThreadVars *ewtn = SCCalloc(1, sizeof(ErfDagThreadVars)); if (unlikely(ewtn == NULL)) { FatalError("Failed to allocate memory for ERF DAG thread vars."); } @@ -506,17 +506,13 @@ ProcessErfDagRecord(ErfDagThreadVars *ewtn, char *prec) SCReturnInt(TM_ECODE_FAILED); } - /* Convert ERF time to timeval - from libpcap. */ + /* Convert ERF time to SCTime_t */ uint64_t ts = dr->ts; p->ts = SCTIME_FROM_SECS(ts >> 32); ts = (ts & 0xffffffffULL) * 1000000; ts += 0x80000000; /* rounding */ uint64_t usecs = ts >> 32; - if (usecs >= 1000000) { - usecs -= 1000000; - p->ts += SCTIME_FROM_SECS(1); - } - p->ts += SCTIME_FROM_USECS(usecs); + p->ts = SCTIME_ADD_USECS(p->ts, usecs); StatsIncr(ewtn->tv, ewtn->packets); ewtn->bytes += wlen; diff --git a/src/source-erf-file.c b/src/source-erf-file.c index 4803f8b3e28f..f3102cebf3e7 100644 --- a/src/source-erf-file.c +++ b/src/source-erf-file.c @@ -195,17 +195,12 @@ static inline TmEcode ReadErfRecord(ThreadVars *tv, Packet *p, void *data) GET_PKT_LEN(p) = wlen; p->datalink = LINKTYPE_ETHERNET; - /* Convert ERF time to timeval - from libpcap. */ + /* Convert ERF time to SCTime_t */ uint64_t ts = dr.ts; p->ts = SCTIME_FROM_SECS(ts >> 32); ts = (ts & 0xffffffffULL) * 1000000; ts += 0x80000000; /* rounding */ uint64_t usecs = (ts >> 32); - if (usecs >= 1000000) { - usecs -= 1000000; - p->ts = SCTIME_ADD_SECS(p->ts, 1); - usecs++; - } p->ts = SCTIME_ADD_USECS(p->ts, usecs); etv->pkts++;