From: Philippe Antoine Date: Mon, 22 Nov 2021 08:42:40 +0000 (+0100) Subject: enip: fix int warnings X-Git-Tag: suricata-7.0.0-beta1~1152 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86f5d33f75da4087a76e1df7789f2695bbbc1001;p=thirdparty%2Fsuricata.git enip: fix int warnings There seems to fix a real bug when an ENIP connection has more than 65k transactions --- diff --git a/src/app-layer-enip-common.h b/src/app-layer-enip-common.h index 2eaa3a035e..d8b5a0a7e1 100644 --- a/src/app-layer-enip-common.h +++ b/src/app-layer-enip-common.h @@ -120,8 +120,8 @@ typedef struct ENIPEncapAddresItem_ { uint16_t type; uint16_t length; - uint16_t conn_id; - uint16_t sequence_num; + uint32_t conn_id; + uint32_t sequence_num; } ENIPEncapAddresItem; /** @@ -182,7 +182,7 @@ typedef struct CIPServiceEntry_ } request; struct { - uint8_t status; + uint16_t status; } response; }; @@ -195,7 +195,7 @@ typedef struct CIPServiceEntry_ typedef struct ENIPTransaction_ { struct ENIPState_ *enip; - uint16_t tx_num; /**< internal: id */ + uint64_t tx_num; /**< internal: id */ uint16_t tx_id; /**< transaction id */ uint16_t service_count; diff --git a/src/app-layer-enip.c b/src/app-layer-enip.c index e7a9e9d3ed..cac76412f6 100644 --- a/src/app-layer-enip.c +++ b/src/app-layer-enip.c @@ -93,7 +93,7 @@ static void *ENIPGetTx(void *alstate, uint64_t tx_id) static uint64_t ENIPGetTxCnt(void *alstate) { - return ((uint64_t) ((ENIPState *) alstate)->transaction_max); + return ((ENIPState *)alstate)->transaction_max; } static AppLayerDecoderEvents *ENIPGetEvents(void *tx)