@ -2583,6 +2583,134 @@ end:
UTHFreePacket ( p ) ;
return result ;
}
static int DetectLongContentTestCommon ( char * sig , uint32_t sid )
{
/* Packet with 512 A's in it for testing long content. */
static uint8_t pkt [ 739 ] = {
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x08 , 0x00 , 0x45 , 0x00 ,
0x02 , 0xd5 , 0x4a , 0x18 , 0x40 , 0x00 , 0x40 , 0x06 ,
0xd7 , 0xd6 , 0x0a , 0x10 , 0x01 , 0x0b , 0x0a , 0x10 ,
0x01 , 0x0a , 0xdb , 0x36 , 0x00 , 0x50 , 0xca , 0xc5 ,
0xcc , 0xd1 , 0x95 , 0x77 , 0x0f , 0x7d , 0x80 , 0x18 ,
0x00 , 0xe5 , 0x77 , 0x9d , 0x00 , 0x00 , 0x01 , 0x01 ,
0x08 , 0x0a , 0x1d , 0xe0 , 0x86 , 0xc6 , 0xfc , 0x73 ,
0x49 , 0xf3 , 0x50 , 0x4f , 0x53 , 0x54 , 0x20 , 0x2f ,
0x20 , 0x48 , 0x54 , 0x54 , 0x50 , 0x2f , 0x31 , 0x2e ,
0x31 , 0x0d , 0x0a , 0x55 , 0x73 , 0x65 , 0x72 , 0x2d ,
0x41 , 0x67 , 0x65 , 0x6e , 0x74 , 0x3a , 0x20 , 0x63 ,
0x75 , 0x72 , 0x6c , 0x2f , 0x37 , 0x2e , 0x33 , 0x37 ,
0x2e , 0x30 , 0x0d , 0x0a , 0x48 , 0x6f , 0x73 , 0x74 ,
0x3a , 0x20 , 0x31 , 0x30 , 0x2e , 0x31 , 0x36 , 0x2e ,
0x31 , 0x2e , 0x31 , 0x30 , 0x0d , 0x0a , 0x41 , 0x63 ,
0x63 , 0x65 , 0x70 , 0x74 , 0x3a , 0x20 , 0x2a , 0x2f ,
0x2a , 0x0d , 0x0a , 0x43 , 0x6f , 0x6e , 0x74 , 0x65 ,
0x6e , 0x74 , 0x2d , 0x4c , 0x65 , 0x6e , 0x67 , 0x74 ,
0x68 , 0x3a , 0x20 , 0x35 , 0x32 , 0x38 , 0x0d , 0x0a ,
0x43 , 0x6f , 0x6e , 0x74 , 0x65 , 0x6e , 0x74 , 0x2d ,
0x54 , 0x79 , 0x70 , 0x65 , 0x3a , 0x20 , 0x61 , 0x70 ,
0x70 , 0x6c , 0x69 , 0x63 , 0x61 , 0x74 , 0x69 , 0x6f ,
0x6e , 0x2f , 0x78 , 0x2d , 0x77 , 0x77 , 0x77 , 0x2d ,
0x66 , 0x6f , 0x72 , 0x6d , 0x2d , 0x75 , 0x72 , 0x6c ,
0x65 , 0x6e , 0x63 , 0x6f , 0x64 , 0x65 , 0x64 , 0x0d ,
0x0a , 0x0d , 0x0a , 0x58 , 0x58 , 0x58 , 0x58 , 0x58 ,
0x58 , 0x58 , 0x58 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 , 0x41 ,
0x41 , 0x41 , 0x41 , 0x58 , 0x58 , 0x58 , 0x58 , 0x58 ,
0x58 , 0x58 , 0x58
} ;
return DetectContentLongPatternMatchTest ( pkt , ( uint16_t ) sizeof ( pkt ) , sig ,
sid ) ;
}
static int DetectLongContentTest1 ( void )
{
/* Signature with 256 A's. */
char * sig = " alert tcp any any -> any any (msg: \" Test Rule \" ; content: \" AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \" ; sid:1;) " ;
return DetectLongContentTestCommon ( sig , 1 ) ;
}
static int DetectLongContentTest2 ( void )
{
/* Signature with 512 A's. */
char * sig = " alert tcp any any -> any any (msg: \" Test Rule \" ; content: \" AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \" ; sid:1;) " ;
return DetectLongContentTestCommon ( sig , 1 ) ;
}
static int DetectLongContentTest3 ( void )
{
/* Signature with 513 A's. */
char * sig = " alert tcp any any -> any any (msg: \" Test Rule \" ; content: \" AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \" ; sid:1;) " ;
return ! DetectLongContentTestCommon ( sig , 1 ) ;
}
# endif /* UNITTESTS */
/**
@ -2689,5 +2817,8 @@ void DetectContentRegisterTests(void)
UtRegisterTest ( " SigTest76TestBug134 " , SigTest76TestBug134 , 1 ) ;
UtRegisterTest ( " SigTest77TestBug139 " , SigTest77TestBug139 , 1 ) ;
UtRegisterTest ( " DetectLongContentTest1 " , DetectLongContentTest1 , 1 ) ;
UtRegisterTest ( " DetectLongContentTest2 " , DetectLongContentTest2 , 1 ) ;
UtRegisterTest ( " DetectLongContentTest3 " , DetectLongContentTest3 , 1 ) ;
# endif /* UNITTESTS */
}