[Forensics-changes] [yara] 15/135: Fix issue #131

Hilko Bengen bengen at moszumanska.debian.org
Sat Jul 1 10:27:27 UTC 2017


This is an automated email from the git hooks/post-receive script.

bengen pushed a commit to annotated tag v3.1.0
in repository yara.

commit 74a7e4e9c4b914c0f7157e59d1e61cf07a72934e
Author: Victor M. Alvarez <plusvic at gmail.com>
Date:   Mon Mar 31 12:01:45 2014 +0200

    Fix issue #131
---
 libyara/re.c         | 30 ++++++++++++++++++++++++++++--
 yara-python/tests.py | 12 ++++++++++++
 2 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/libyara/re.c b/libyara/re.c
index cd8b282..bf042aa 100644
--- a/libyara/re.c
+++ b/libyara/re.c
@@ -1465,14 +1465,40 @@ int yr_re_exec(
 
         case RE_OPCODE_SPACE:
           prolog;
-          match = (*input == ' ' || *input == '\t');
+          switch(*input)
+          {
+            case ' ':
+            case '\t':
+            case '\r':
+            case '\n':
+            case '\v':
+            case '\f':
+              match = TRUE;
+              break;
+
+            default:
+              match = FALSE;
+          }
           action = match ? ACTION_NONE : ACTION_KILL;
           fiber->ip += 1;
           break;
 
         case RE_OPCODE_NON_SPACE:
           prolog;
-          match = (*input != ' ' && *input != '\t');
+          switch(*input)
+          {
+            case ' ':
+            case '\t':
+            case '\r':
+            case '\n':
+            case '\v':
+            case '\f':
+              match = FALSE;
+              break;
+
+            default:
+              match = TRUE;
+          }
           action = match ? ACTION_NONE : ACTION_KILL;
           fiber->ip += 1;
           break;
diff --git a/yara-python/tests.py b/yara-python/tests.py
index 34c238d..b8b83c7 100644
--- a/yara-python/tests.py
+++ b/yara-python/tests.py
@@ -160,6 +160,18 @@ RE_TESTS = [
   ('a[^]b]c', 'adc', SUCCEED, 'adc'),
   ('[^ab]*', 'cde', SUCCEED, 'cde'),
   (')(', '', SYNTAX_ERROR),
+  (r'a\sb', 'a b', SUCCEED, 'a b'),
+  (r'a\sb', 'a\tb', SUCCEED, 'a\tb'),
+  (r'a\sb', 'a\rb', SUCCEED, 'a\rb'),
+  (r'a\sb', 'a\nb', SUCCEED, 'a\nb'),
+  (r'a\sb', 'a\vb', SUCCEED, 'a\vb'),
+  (r'a\sb', 'a\fb', SUCCEED, 'a\fb'),
+  (r'a\Sb', 'a b', FAIL),
+  (r'a\Sb', 'a\tb', FAIL),
+  (r'a\Sb', 'a\rb', FAIL),
+  (r'a\Sb', 'a\nb', FAIL),
+  (r'a\Sb', 'a\vb', FAIL),
+  (r'a\Sb', 'a\fb', FAIL),
   (r'\n\r\t\f\a', '\n\r\t\f\a', SUCCEED, '\n\r\t\f\a'),
   (r'[\n][\r][\t][\f][\a]', '\n\r\t\f\a', SUCCEED, '\n\r\t\f\a'),
   (r'\x00\x01\x02', '\x00\x01\x02', SUCCEED, '\x00\x01\x02'),

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/forensics/yara.git



More information about the forensics-changes mailing list