@ -27,6 +27,7 @@
# include "detect.h"
# include "detect-parse.h"
# include "detect-engine-prefilter-common.h"
# include "util-byte.h"
# include "detect-tcpmss.h"
@ -178,8 +179,10 @@ static DetectTcpmssData *DetectTcpmssParse (const char *tcpmssstr)
goto error ;
tcpmssd - > mode = DETECT_TCPMSS_LT ;
tcpmssd - > arg1 = ( uint16_t ) atoi ( arg3 ) ;
if ( StringParseUint16 ( & tcpmssd - > arg1 , 10 , 0 , ( const char * ) arg3 ) < 0 ) {
SCLogError ( SC_ERR_INVALID_SIGNATURE , " Invalid first arg: %s " , arg3 ) ;
goto error ;
}
SCLogDebug ( " tcpmss is % " PRIu16 " " , tcpmssd - > arg1 ) ;
if ( strlen ( arg1 ) > 0 )
goto error ;
@ -190,8 +193,10 @@ static DetectTcpmssData *DetectTcpmssParse (const char *tcpmssstr)
goto error ;
tcpmssd - > mode = DETECT_TCPMSS_GT ;
tcpmssd - > arg1 = ( uint16_t ) atoi ( arg3 ) ;
if ( StringParseUint16 ( & tcpmssd - > arg1 , 10 , 0 , ( const char * ) arg3 ) < 0 ) {
SCLogError ( SC_ERR_INVALID_SIGNATURE , " Invalid first arg: %s " , arg3 ) ;
goto error ;
}
SCLogDebug ( " tcpmss is % " PRIu16 " " , tcpmssd - > arg1 ) ;
if ( strlen ( arg1 ) > 0 )
goto error ;
@ -204,9 +209,14 @@ static DetectTcpmssData *DetectTcpmssParse (const char *tcpmssstr)
goto error ;
tcpmssd - > mode = DETECT_TCPMSS_RA ;
tcpmssd - > arg1 = ( uint16_t ) atoi ( arg1 ) ;
tcpmssd - > arg2 = ( uint16_t ) atoi ( arg3 ) ;
if ( StringParseUint16 ( & tcpmssd - > arg1 , 10 , 0 , ( const char * ) arg1 ) < 0 ) {
SCLogError ( SC_ERR_INVALID_SIGNATURE , " Invalid first arg: %s " , arg1 ) ;
goto error ;
}
if ( StringParseUint16 ( & tcpmssd - > arg2 , 10 , 0 , ( const char * ) arg3 ) < 0 ) {
SCLogError ( SC_ERR_INVALID_SIGNATURE , " Invalid second arg: %s " , arg3 ) ;
goto error ;
}
SCLogDebug ( " tcpmss is % " PRIu16 " to % " PRIu16 " " , tcpmssd - > arg1 , tcpmssd - > arg2 ) ;
if ( tcpmssd - > arg1 > = tcpmssd - > arg2 ) {
SCLogError ( SC_ERR_INVALID_SIGNATURE , " Invalid tcpmss range. " ) ;
@ -221,7 +231,10 @@ static DetectTcpmssData *DetectTcpmssParse (const char *tcpmssstr)
( arg1 = = NULL | | strlen ( arg1 ) = = 0 ) )
goto error ;
tcpmssd - > arg1 = ( uint16_t ) atoi ( arg1 ) ;
if ( StringParseUint16 ( & tcpmssd - > arg1 , 10 , 0 , ( const char * ) arg1 ) < 0 ) {
SCLogError ( SC_ERR_INVALID_SIGNATURE , " Invalid first arg: %s " , arg1 ) ;
goto error ;
}
break ;
}
} else {
@ -231,7 +244,10 @@ static DetectTcpmssData *DetectTcpmssParse (const char *tcpmssstr)
( arg1 = = NULL | | strlen ( arg1 ) = = 0 ) )
goto error ;
tcpmssd - > arg1 = ( uint16_t ) atoi ( arg1 ) ;
if ( StringParseUint16 ( & tcpmssd - > arg1 , 10 , 0 , ( const char * ) arg1 ) < 0 ) {
SCLogError ( SC_ERR_INVALID_SIGNATURE , " Invalid first arg: %s " , arg1 ) ;
goto error ;
}
}
SCFree ( arg1 ) ;