]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
fileext: make case insensitive
authorVictor Julien <victor@inliniac.net>
Tue, 4 Feb 2014 16:26:39 +0000 (17:26 +0100)
committerVictor Julien <victor@inliniac.net>
Tue, 4 Feb 2014 17:20:29 +0000 (18:20 +0100)
Change keyword to be case insensitive when matching.

Ticket #597.

src/detect-fileext.c

index 8e51981bc928afb2f9a5c8ebbf554052425e5367..7120e49f5308c4c47889e0d59c4d3434eba3e830 100644 (file)
@@ -110,8 +110,9 @@ static int DetectFileextMatch (ThreadVars *t, DetectEngineThreadCtx *det_ctx,
 
     int offset = file->name_len - fileext->len;
 
+    /* fileext->ext is already in lowercase, as SCMemcmpLowercase requires */
     if (file->name[offset - 1] == '.' &&
-        SCMemcmp(file->name + offset, fileext->ext, fileext->len) == 0)
+        SCMemcmpLowercase(fileext->ext, file->name + offset, fileext->len) == 0)
     {
         if (!(fileext->flags & DETECT_CONTENT_NEGATED)) {
             ret = 1;
@@ -149,6 +150,9 @@ static DetectFileextData *DetectFileextParse (char *str)
     if (DetectContentDataParse("fileext", str, &fileext->ext, &fileext->len, &fileext->flags) == -1) {
         goto error;
     }
+    uint16_t u;
+    for (u = 0; u < fileext->len; u++)
+        fileext->ext[u] = tolower(fileext->ext[u]);
 
     SCLogDebug("flags %02X", fileext->flags);
     if (fileext->flags & DETECT_CONTENT_NEGATED) {