From 0581a23f3cffe8e6685e82a80df032a19f0305e7 Mon Sep 17 00:00:00 2001 From: Eric Leblond Date: Wed, 19 Sep 2012 09:55:50 +0200 Subject: [PATCH] af-packet: fix IPS mode There was an inversion in code resulting as all sockets being seen as non IPS mode when doing the peering. This resulted in a crash at first packet because it has no peer. --- src/source-af-packet.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/source-af-packet.c b/src/source-af-packet.c index 904d571f5d..d924c86eeb 100644 --- a/src/source-af-packet.c +++ b/src/source-af-packet.c @@ -1512,18 +1512,18 @@ TmEcode ReceiveAFPThreadInit(ThreadVars *tv, void *initdata, void **data) { SCLogInfo("Enabling zero copy mode by using data release call"); } - if (AFPPeersListAdd(ptv) == TM_ECODE_FAILED) { - SCFree(ptv); - afpconfig->DerefFunc(afpconfig); - SCReturnInt(TM_ECODE_FAILED); - } - ptv->copy_mode = afpconfig->copy_mode; if (ptv->copy_mode != AFP_COPY_MODE_NONE) { strlcpy(ptv->out_iface, afpconfig->out_iface, AFP_IFACE_NAME_LENGTH); ptv->out_iface[AFP_IFACE_NAME_LENGTH - 1]= '\0'; } + if (AFPPeersListAdd(ptv) == TM_ECODE_FAILED) { + SCFree(ptv); + afpconfig->DerefFunc(afpconfig); + SCReturnInt(TM_ECODE_FAILED); + } + #define T_DATA_SIZE 70000 ptv->data = SCMalloc(T_DATA_SIZE); if (ptv->data == NULL) {