From 011eb77d4e21cb18035ba7bd0ecc0abfb33bcba9 Mon Sep 17 00:00:00 2001 From: Guido Falsi Date: Tue, 14 Apr 2020 01:06:34 +0200 Subject: [PATCH] htons(3) expect an unsigned integer as input, so lua_tointeger() looks more appropriate there. Not sure why on FreeBSD armv7 it's causing an error, my best guess is that certain compiler/arch combinations refuse tu implicitly cast float to unsigned int. Problem and patch reported and proposed by @rbgarga This should fix #3743 --- src/ParsedFlow.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ParsedFlow.cpp b/src/ParsedFlow.cpp index 4d9627b462..bc97b54c60 100644 --- a/src/ParsedFlow.cpp +++ b/src/ParsedFlow.cpp @@ -127,17 +127,17 @@ void ParsedFlow::fromLua(lua_State *L, int index) { if(!strcmp(key, "vlan_id")) vlan_id = lua_tonumber(L, -1); else if(!strcmp(key, "version")) - version = htons(lua_tonumber(L, -1)); + version = htons(lua_tointeger(L, -1)); else if(!strcmp(key, "src_port")) - src_port = htons(lua_tonumber(L, -1)); + src_port = htons(lua_tointeger(L, -1)); else if(!strcmp(key, "dst_port")) - dst_port = htons(lua_tonumber(L, -1)); + dst_port = htons(lua_tointeger(L, -1)); else if(!strcmp(key, "l4_proto")) l4_proto = lua_tonumber(L, -1); else if(!strcmp(key, "tcp_flags")) - tcp.tcp_flags = htons(lua_tonumber(L, -1)); + tcp.tcp_flags = htons(lua_tointeger(L, -1)); else if(!strcmp(key, "direction")) - direction = htons(lua_tonumber(L, -1)); + direction = htons(lua_tointeger(L, -1)); else if(!strcmp(key, "first_switched")) first_switched = lua_tonumber(L, -1); else if(!strcmp(key, "last_switched"))