@ -632,15 +632,12 @@ static int g_dce_stub_data_buffer_id = 0;
*/
static int DetectBytejumpTestParse01 ( void )
{
int result = 0 ;
DetectBytejumpData * data = NULL ;
data = DetectBytejumpParse ( NULL , " 4,0 " , NULL , NULL ) ;
if ( data ! = NULL ) {
DetectBytejumpFree ( NULL , data ) ;
result = 1 ;
}
FAIL_IF_NULL ( data ) ;
return result ;
DetectBytejumpFree ( NULL , data ) ;
PASS ;
}
/**
@ -648,23 +645,18 @@ static int DetectBytejumpTestParse01(void)
*/
static int DetectBytejumpTestParse02 ( void )
{
int result = 0 ;
DetectBytejumpData * data = NULL ;
data = DetectBytejumpParse ( NULL , " 4, 0 " , NULL , NULL ) ;
if ( data ! = NULL ) {
if ( ( data - > nbytes = = 4 )
& & ( data - > offset = = 0 )
& & ( data - > multiplier = = 1 )
& & ( data - > post_offset = = 0 )
& & ( data - > flags = = 0 )
& & ( data - > base = = DETECT_BYTEJUMP_BASE_UNSET ) )
{
result = 1 ;
}
DetectBytejumpFree ( NULL , data ) ;
}
FAIL_IF_NULL ( data ) ;
FAIL_IF_NOT ( data - > nbytes = = 4 ) ;
FAIL_IF_NOT ( data - > offset = = 0 ) ;
FAIL_IF_NOT ( data - > multiplier = = 1 ) ;
FAIL_IF_NOT ( data - > post_offset = = 0 ) ;
FAIL_IF_NOT ( data - > flags = = 0 ) ;
FAIL_IF_NOT ( data - > base = = DETECT_BYTEJUMP_BASE_UNSET ) ;
return result ;
DetectBytejumpFree ( NULL , data ) ;
PASS ;
}
/**
@ -672,30 +664,23 @@ static int DetectBytejumpTestParse02(void)
*/
static int DetectBytejumpTestParse03 ( void )
{
int result = 0 ;
DetectBytejumpData * data = NULL ;
data = DetectBytejumpParse ( NULL ,
" 4,0 , relative , little, string, "
" dec, align, from_beginning " ,
NULL , NULL ) ;
if ( data ! = NULL ) {
if ( ( data - > nbytes = = 4 )
& & ( data - > offset = = 0 )
& & ( data - > multiplier = = 1 )
& & ( data - > post_offset = = 0 )
& & ( data - > flags = = ( DETECT_BYTEJUMP_RELATIVE
| DETECT_BYTEJUMP_LITTLE
| DETECT_BYTEJUMP_STRING
| DETECT_BYTEJUMP_ALIGN
| DETECT_BYTEJUMP_BEGIN ) )
& & ( data - > base = = DETECT_BYTEJUMP_BASE_DEC ) )
{
result = 1 ;
}
DetectBytejumpFree ( NULL , data ) ;
}
FAIL_IF_NULL ( data ) ;
FAIL_IF_NOT ( data - > nbytes = = 4 ) ;
FAIL_IF_NOT ( data - > offset = = 0 ) ;
FAIL_IF_NOT ( data - > multiplier = = 1 ) ;
FAIL_IF_NOT ( data - > post_offset = = 0 ) ;
FAIL_IF_NOT ( data - > flags = =
( DETECT_BYTEJUMP_RELATIVE | DETECT_BYTEJUMP_LITTLE | DETECT_BYTEJUMP_STRING |
DETECT_BYTEJUMP_ALIGN | DETECT_BYTEJUMP_BEGIN ) ) ;
FAIL_IF_NOT ( data - > base = = DETECT_BYTEJUMP_BASE_DEC ) ;
return result ;
DetectBytejumpFree ( NULL , data ) ;
PASS ;
}
/**
@ -706,31 +691,24 @@ static int DetectBytejumpTestParse03(void)
*/
static int DetectBytejumpTestParse04 ( void )
{
int result = 0 ;
DetectBytejumpData * data = NULL ;
data = DetectBytejumpParse ( NULL ,
" 4,0 , relative , little, string, "
" dec, align, from_beginning , "
" multiplier 2 , post_offset -16 " ,
NULL , NULL ) ;
if ( data ! = NULL ) {
if ( ( data - > nbytes = = 4 )
& & ( data - > offset = = 0 )
& & ( data - > multiplier = = 2 )
& & ( data - > post_offset = = - 16 )
& & ( data - > flags = = ( DETECT_BYTEJUMP_RELATIVE
| DETECT_BYTEJUMP_LITTLE
| DETECT_BYTEJUMP_ALIGN
| DETECT_BYTEJUMP_STRING
| DETECT_BYTEJUMP_BEGIN ) )
& & ( data - > base = = DETECT_BYTEJUMP_BASE_DEC ) )
{
result = 1 ;
}
DetectBytejumpFree ( NULL , data ) ;
}
FAIL_IF_NULL ( data ) ;
FAIL_IF_NOT ( data - > nbytes = = 4 ) ;
FAIL_IF_NOT ( data - > offset = = 0 ) ;
FAIL_IF_NOT ( data - > multiplier = = 2 ) ;
FAIL_IF_NOT ( data - > post_offset = = - 16 ) ;
FAIL_IF_NOT ( data - > flags = =
( DETECT_BYTEJUMP_RELATIVE | DETECT_BYTEJUMP_LITTLE | DETECT_BYTEJUMP_ALIGN |
DETECT_BYTEJUMP_STRING | DETECT_BYTEJUMP_BEGIN ) ) ;
FAIL_IF_NOT ( data - > base = = DETECT_BYTEJUMP_BASE_DEC ) ;
return result ;
DetectBytejumpFree ( NULL , data ) ;
PASS ;
}
/**
@ -738,17 +716,14 @@ static int DetectBytejumpTestParse04(void)
*/
static int DetectBytejumpTestParse05 ( void )
{
int result = 0 ;
DetectBytejumpData * data = NULL ;
data = DetectBytejumpParse ( NULL ,
" 4,0 , relative , little, dec, "
" align, from_beginning " ,
NULL , NULL ) ;
if ( data = = NULL ) {
result = 1 ;
}
FAIL_IF_NOT_NULL ( data ) ;
return result ;
PASS ;
}
/**
@ -756,14 +731,11 @@ static int DetectBytejumpTestParse05(void)
*/
static int DetectBytejumpTestParse06 ( void )
{
int result = 0 ;
DetectBytejumpData * data = NULL ;
data = DetectBytejumpParse ( NULL , " 9, 0 " , NULL , NULL ) ;
if ( data = = NULL ) {
result = 1 ;
}
FAIL_IF_NOT_NULL ( data ) ;
return result ;
PASS ;
}
/**
@ -771,14 +743,11 @@ static int DetectBytejumpTestParse06(void)
*/
static int DetectBytejumpTestParse07 ( void )
{
int result = 0 ;
DetectBytejumpData * data = NULL ;
data = DetectBytejumpParse ( NULL , " 24, 0, string, dec " , NULL , NULL ) ;
if ( data = = NULL ) {
result = 1 ;
}
FAIL_IF_NOT_NULL ( data ) ;
return result ;
PASS ;
}
/**
@ -786,14 +755,11 @@ static int DetectBytejumpTestParse07(void)
*/
static int DetectBytejumpTestParse08 ( void )
{
int result = 0 ;
DetectBytejumpData * data = NULL ;
data = DetectBytejumpParse ( NULL , " 4, 0xffffffffffffffff " , NULL , NULL ) ;
if ( data = = NULL ) {
result = 1 ;
}
FAIL_IF_NOT_NULL ( data ) ;
return result ;
PASS ;
}
/**
@ -856,11 +822,11 @@ static int DetectBytejumpTestParse10(void)
FAIL_IF_NOT ( sm - > type = = DETECT_BYTEJUMP ) ;
DetectBytejumpData * bd = ( DetectBytejumpData * ) sm - > ctx ;
if ( ! ( bd - > flags & DETECT_BYTEJUMP_DCE ) & & ! ( bd - > flags & DETECT_BYTEJUMP_RELATIVE ) & &
( bd - > flags & DETECT_BYTEJUMP_STRING ) & & ( bd - > flags & DETECT_BYTEJUMP_BIG ) & &
( bd - > flags & DETECT_BYTEJUMP_LITTLE ) ) {
goto end ;
}
FAIL_IF_NOT ( bd - > flags & DETECT_BYTEJUMP_DCE ) ;
FAIL_IF_NOT ( bd - > flags & DETECT_BYTEJUMP_RELATIVE ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_STRING ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_BIG ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_LITTLE ) ;
s = DetectEngineAppendSig ( de_ctx , " alert tcp any any -> any any "
" (msg: \" Testing bytejump_body \" ; "
@ -879,11 +845,11 @@ static int DetectBytejumpTestParse10(void)
FAIL_IF_NOT ( sm - > type = = DETECT_BYTEJUMP ) ;
bd = ( DetectBytejumpData * ) sm - > ctx ;
if ( ! ( bd - > flags & DETECT_BYTEJUMP_DCE ) & & ! ( bd - > flags & DETECT_BYTEJUMP_RELATIVE ) & &
( bd - > flags & DETECT_BYTEJUMP_STRING ) & & ( bd - > flags & DETECT_BYTEJUMP_BIG ) & &
( bd - > flags & DETECT_BYTEJUMP_LITTLE ) ) {
goto end ;
}
FAIL_IF_NOT ( bd - > flags & DETECT_BYTEJUMP_DCE ) ;
FAIL_IF_NOT ( bd - > flags & DETECT_BYTEJUMP_RELATIVE ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_STRING ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_BIG ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_LITTLE ) ;
s = DetectEngineAppendSig ( de_ctx , " alert tcp any any -> any any "
" (msg: \" Testing bytejump_body \" ; "
@ -902,13 +868,12 @@ static int DetectBytejumpTestParse10(void)
FAIL_IF_NOT ( sm - > type = = DETECT_BYTEJUMP ) ;
bd = ( DetectBytejumpData * ) sm - > ctx ;
if ( ( bd - > flags & DETECT_BYTEJUMP_DCE ) & & ! ( bd - > flags & DETECT_BYTEJUMP_RELATIVE ) & &
( bd - > flags & DETECT_BYTEJUMP_STRING ) & & ( bd - > flags & DETECT_BYTEJUMP_BIG ) & &
( bd - > flags & DETECT_BYTEJUMP_LITTLE ) ) {
goto end ;
}
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_DCE ) ;
FAIL_IF_NOT ( bd - > flags & DETECT_BYTEJUMP_RELATIVE ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_STRING ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_BIG ) ;
FAIL_IF ( bd - > flags & DETECT_BYTEJUMP_LITTLE ) ;
end :
DetectEngineCtxFree ( de_ctx ) ;
PASS ;
}
@ -919,12 +884,10 @@ end:
static int DetectBytejumpTestParse11 ( void )
{
DetectEngineCtx * de_ctx = NULL ;
int result = 1 ;
Signature * s = NULL ;
de_ctx = DetectEngineCtxInit ( ) ;
if ( de_ctx = = NULL )
goto end ;
FAIL_IF_NULL ( de_ctx ) ;
de_ctx - > flags | = DE_QUIET ;
s = SigInit ( de_ctx , " alert tcp any any -> any any "
@ -933,10 +896,7 @@ static int DetectBytejumpTestParse11(void)
" dce_stub_data; "
" content: \" one \" ; byte_jump:4,0,align,multiplier 2, "
" post_offset -16,string,dce; sid:1;) " ) ;
if ( s ! = NULL ) {
result = 0 ;
goto end ;
}
FAIL_IF_NOT_NULL ( s ) ;
s = SigInit ( de_ctx , " alert tcp any any -> any any "
" (msg: \" Testing bytejump_body \" ; "
@ -944,10 +904,7 @@ static int DetectBytejumpTestParse11(void)
" dce_sub_data; "
" content: \" one \" ; byte_jump:4,0,align,multiplier 2, "
" post_offset -16,big,dce; sid:1;) " ) ;
if ( s ! = NULL ) {
result = 0 ;
goto end ;
}
FAIL_IF_NOT_NULL ( s ) ;
s = SigInit ( de_ctx , " alert tcp any any -> any any "
" (msg: \" Testing bytejump_body \" ; "
@ -955,10 +912,7 @@ static int DetectBytejumpTestParse11(void)
" dce_stub_data; "
" content: \" one \" ; byte_jump:4,0,align,multiplier 2, "
" post_offset -16,little,dce; sid:1;) " ) ;
if ( s ! = NULL ) {
result = 0 ;
goto end ;
}
FAIL_IF_NOT_NULL ( s ) ;
s = SigInit ( de_ctx , " alert tcp any any -> any any "
" (msg: \" Testing bytejump_body \" ; "
@ -966,10 +920,7 @@ static int DetectBytejumpTestParse11(void)
" dce_stub_data; "
" content: \" one \" ; byte_jump:4,0,align,multiplier 2, "
" post_offset -16,string,hex,dce; sid:1;) " ) ;
if ( s ! = NULL ) {
result = 0 ;
goto end ;
}
FAIL_IF_NOT_NULL ( s ) ;
s = SigInit ( de_ctx , " alert tcp any any -> any any "
" (msg: \" Testing bytejump_body \" ; "
@ -977,10 +928,7 @@ static int DetectBytejumpTestParse11(void)
" dce_stub_data; "
" content: \" one \" ; byte_jump:4,0,align,multiplier 2, "
" post_offset -16,string,dec,dce; sid:1;) " ) ;
if ( s ! = NULL ) {
result = 0 ;
goto end ;
}
FAIL_IF_NOT_NULL ( s ) ;
s = SigInit ( de_ctx , " alert tcp any any -> any any "
" (msg: \" Testing bytejump_body \" ; "
@ -988,10 +936,7 @@ static int DetectBytejumpTestParse11(void)
" dce_stub_data; "
" content: \" one \" ; byte_jump:4,0,align,multiplier 2, "
" post_offset -16,string,oct,dce; sid:1;) " ) ;
if ( s ! = NULL ) {
result = 0 ;
goto end ;
}
FAIL_IF_NOT_NULL ( s ) ;
s = SigInit ( de_ctx , " alert tcp any any -> any any "
" (msg: \" Testing bytejump_body \" ; "
@ -999,17 +944,12 @@ static int DetectBytejumpTestParse11(void)
" dce_stub_data; "
" content: \" one \" ; byte_jump:4,0,align,multiplier 2, "
" post_offset -16,from_beginning,dce; sid:1;) " ) ;
if ( s ! = NULL ) {
result = 0 ;
goto end ;
}
FAIL_IF_NOT_NULL ( s ) ;
end :
SigGroupCleanup ( de_ctx ) ;
SigCleanSignatures ( de_ctx ) ;
DetectEngineCtxFree ( de_ctx ) ;
return result ;
PASS ;
}
/**
@ -1073,7 +1013,6 @@ static int DetectBytejumpTestParse14(void)
*/
static int DetectByteJumpTestPacket01 ( void )
{
int result = 0 ;
uint8_t * buf = ( uint8_t * ) " GET /AllWorkAndNoPlayMakesWillADullBoy HTTP/1.0 "
" User-Agent: Wget/1.11.4 "
" Accept: */* "
@ -1084,18 +1023,16 @@ static int DetectByteJumpTestPacket01 (void)
Packet * p ;
p = UTHBuildPacket ( ( uint8_t * ) buf , buflen , IPPROTO_TCP ) ;
if ( p = = NULL )
goto end ;
FAIL_IF_NULL ( p ) ;
char sig [ ] = " alert tcp any any -> any any (msg: \" pcre + byte_test + "
" relative \" ; pcre: \" /AllWorkAndNoPlayMakesWillADullBoy/ \" ; byte_jump:1,6, "
" relative,string,dec; content: \" 0 \" ; sid:134; rev:1;) " ;
result = UTHPacketMatchSig ( p , sig ) ;
FAIL_IF_NOT ( UTHPacketMatchSig ( p , sig ) ) ;
UTHFreePacket ( p ) ;
end :
return result ;
PASS ;
}
/**
@ -1105,7 +1042,6 @@ end:
*/
static int DetectByteJumpTestPacket02 ( void )
{
int result = 0 ;
uint8_t buf [ ] = { 0x00 , 0x00 , 0x00 , 0x77 , 0xff , 0x53 ,
0x4d , 0x42 , 0x2f , 0x00 , 0x00 , 0x00 , 0x00 , 0x18 ,
0x01 , 0x20 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
@ -1117,23 +1053,20 @@ static int DetectByteJumpTestPacket02 (void)
Packet * p ;
p = UTHBuildPacket ( ( uint8_t * ) buf , buflen , IPPROTO_TCP ) ;
if ( p = = NULL )
goto end ;
FAIL_IF_NULL ( p ) ;
char sig [ ] = " alert tcp any any -> any any (msg: \" byte_jump with byte_jump "
" + relative \" ; byte_jump:1,13; byte_jump:4,0,relative; "
" content: \" |48 00 00| \" ; within:3; sid:144; rev:1;) " ;
result = UTHPacketMatchSig ( p , sig ) ;
FAIL_IF_NOT ( UTHPacketMatchSig ( p , sig ) ) ;
UTHFreePacket ( p ) ;
end :
return result ;
PASS ;
}
static int DetectByteJumpTestPacket03 ( void )
{
int result = 0 ;
uint8_t * buf = NULL ;
uint16_t buflen = 0 ;
buf = SCMalloc ( 4 ) ;
@ -1147,20 +1080,18 @@ static int DetectByteJumpTestPacket03(void)
Packet * p ;
p = UTHBuildPacket ( ( uint8_t * ) buf , buflen , IPPROTO_TCP ) ;
if ( p = = NULL )
goto end ;
FAIL_IF_NULL ( p ) ;
char sig [ ] = " alert tcp any any -> any any (msg: \" byte_jump \" ; "
" byte_jump:1,214748364; sid:1; rev:1;) " ;
result = ! UTHPacketMatchSig ( p , sig ) ;
FAIL_IF ( UTHPacketMatchSig ( p , sig ) ) ;
UTHFreePacket ( p ) ;
FAIL_IF_NULL ( buf ) ;
end :
if ( buf ! = NULL )
SCFree ( buf ) ;
return result ;
SCFree ( buf ) ;
PASS ;
}
/**
@ -1168,22 +1099,19 @@ end:
*/
static int DetectByteJumpTestPacket04 ( void )
{
int result = 0 ;
uint8_t * buf = ( uint8_t * ) " XYZ04abcdABCD " ;
uint16_t buflen = strlen ( ( char * ) buf ) ;
Packet * p ;
p = UTHBuildPacket ( ( uint8_t * ) buf , buflen , IPPROTO_TCP ) ;
if ( p = = NULL )
goto end ;
FAIL_IF_NULL ( p ) ;
char sig [ ] = " alert tcp any any -> any any (content: \" XYZ \" ; byte_jump:2,0,relative,string,dec; content: \" ABCD \" ; distance:0; within:4; sid:1; rev:1;) " ;
result = UTHPacketMatchSig ( p , sig ) ;
FAIL_IF_NOT ( UTHPacketMatchSig ( p , sig ) ) ;
UTHFreePacket ( p ) ;
end :
return result ;
PASS ;
}
/**
@ -1191,22 +1119,19 @@ end:
*/
static int DetectByteJumpTestPacket05 ( void )
{
int result = 0 ;
uint8_t * buf = ( uint8_t * ) " XYZ04abcdABCD " ;
uint16_t buflen = strlen ( ( char * ) buf ) ;
Packet * p ;
p = UTHBuildPacket ( ( uint8_t * ) buf , buflen , IPPROTO_TCP ) ;
if ( p = = NULL )
goto end ;
FAIL_IF_NULL ( p ) ;
char sig [ ] = " alert tcp any any -> any any (content: \" XYZ \" ; byte_jump:2,0,relative,string,dec; content: \" cdABCD \" ; within:6; sid:1; rev:1;) " ;
result = UTHPacketMatchSig ( p , sig ) ? 0 : 1 ;
FAIL_IF_NOT ( UTHPacketMatchSig ( p , sig ) ? 0 : 1 ) ;
UTHFreePacket ( p ) ;
end :
return result ;
PASS ;
}
/**
@ -1214,22 +1139,19 @@ end:
*/
static int DetectByteJumpTestPacket06 ( void )
{
int result = 0 ;
uint8_t * buf = ( uint8_t * ) " XX04abcdABCD " ;
uint16_t buflen = strlen ( ( char * ) buf ) ;
Packet * p ;
p = UTHBuildPacket ( ( uint8_t * ) buf , buflen , IPPROTO_TCP ) ;
if ( p = = NULL )
goto end ;
FAIL_IF_NULL ( p ) ;
char sig [ ] = " alert tcp any any -> any any (content: \" XX \" ; byte_jump:2,0,relative,string,dec,from_beginning; content: \" ABCD \" ; distance:4; within:4; sid:1; rev:1;) " ;
result = UTHPacketMatchSig ( p , sig ) ;
FAIL_IF_NOT ( UTHPacketMatchSig ( p , sig ) ) ;
UTHFreePacket ( p ) ;
end :
return result ;
PASS ;
}
/**
@ -1237,22 +1159,19 @@ end:
*/
static int DetectByteJumpTestPacket07 ( void )
{
int result = 0 ;
uint8_t * buf = ( uint8_t * ) " XX04abcdABCD " ;
uint16_t buflen = strlen ( ( char * ) buf ) ;
Packet * p ;
p = UTHBuildPacket ( ( uint8_t * ) buf , buflen , IPPROTO_TCP ) ;
if ( p = = NULL )
goto end ;
FAIL_IF_NULL ( p ) ;
char sig [ ] = " alert tcp any any -> any any (content: \" XX \" ; byte_jump:2,0,relative,string,dec,from_beginning; content: \" abcdABCD \" ; distance:0; within:8; sid:1; rev:1;) " ;
result = UTHPacketMatchSig ( p , sig ) ? 1 : 0 ;
FAIL_IF_NOT ( UTHPacketMatchSig ( p , sig ) ? 1 : 0 ) ;
UTHFreePacket ( p ) ;
end :
return result ;
PASS ;
}
/**