X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Fos_regex%2Fos_match_execute.c;h=8977484cb33edfa786370e7504797c2f2b7622ec;hb=6ef2f786c6c8ead94841b5f93baf9f43421f08c8;hp=70f31842a4cd94e8a7998c2c169daa5d9d1d9a79;hpb=914feba5d54f979cd5d7e69c349c3d01f630042a;p=ossec-hids.git diff --git a/src/os_regex/os_match_execute.c b/src/os_regex/os_match_execute.c index 70f3184..8977484 100755 --- a/src/os_regex/os_match_execute.c +++ b/src/os_regex/os_match_execute.c @@ -5,7 +5,7 @@ * * This program is a free software; you can redistribute it * and/or modify it under the terms of the GNU General Public - * License (version 3) as published by the FSF - Free Software + * License (version 2) as published by the FSF - Free Software * Foundation */ @@ -39,10 +39,10 @@ int _OS_Match(char *pattern, char *str, int str_len, int size) { if(str[j] == '\0') return(FALSE); - + else if(*pt != charmap[(uchar)str[j]]) { - pt = pattern; + pt = pattern; goto nnext; } j++;pt++; @@ -62,8 +62,8 @@ int _os_strncmp(char *pattern, char *str, int str_len, int size) { if(strncasecmp(pattern, str, size) == 0) return(TRUE); - - return(FALSE); + + return(FALSE); } /** Internal matching **/ @@ -71,8 +71,8 @@ int _os_strcmp(char *pattern, char *str, int str_len, int size) { if(strcasecmp(pattern, str) == 0) return(TRUE); - - return(FALSE); + + return(FALSE); } int _os_strmatch(char *pattern, char *str, int str_len, int size) @@ -80,6 +80,15 @@ int _os_strmatch(char *pattern, char *str, int str_len, int size) return(TRUE); } +int _os_strstr(char *pattern, char *str, int str_len, int size) +{ + if(strstr(str, pattern) != NULL) + { + return(TRUE); + } + return(FALSE); +} + /** Internal matching **/ int _os_strcmp_last(char *pattern, char *str, int str_len, int size) @@ -87,11 +96,11 @@ int _os_strcmp_last(char *pattern, char *str, int str_len, int size) /* Size of the string must be bigger */ if((str_len - size) < 0) return(FALSE); - + if(strcasecmp(pattern, str + (str_len - size)) == 0) return(TRUE); - - return(FALSE); + + return(FALSE); } @@ -104,7 +113,7 @@ int _os_strcmp_last(char *pattern, char *str, int str_len, int size) int OSMatch_Execute(char *str, int str_len, OSMatch *reg) { short int i = 0; - + /* The string can't be NULL */ if(str == NULL) { @@ -116,9 +125,9 @@ int OSMatch_Execute(char *str, int str_len, OSMatch *reg) /* Looping on all sub patterns */ while(reg->patterns[i]) { - if(reg->match_fp[i](reg->patterns[i], - str, - str_len, + if(reg->match_fp[i](reg->patterns[i], + str, + str_len, reg->size[i]) == TRUE) { return(1); @@ -127,7 +136,7 @@ int OSMatch_Execute(char *str, int str_len, OSMatch *reg) } return(0); -} +} /* EOF */