[Forensics-changes] [yara] 152/192: Fix issue #647

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


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

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

commit bbbb712cc68d6f126ec72d87b27a2e22e63db1d9
Author: plusvic <plusvic at gmail.com>
Date:   Wed Apr 26 14:04:01 2017 +0200

    Fix issue #647
---
 libyara/re.c       | 6 +++---
 tests/test-rules.c | 7 +++++++
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/libyara/re.c b/libyara/re.c
index 8237506..a5e4b86 100644
--- a/libyara/re.c
+++ b/libyara/re.c
@@ -2056,9 +2056,9 @@ int yr_re_exec(
           break;
 
         case RE_OPCODE_MATCH_AT_END:
-          action = input_size > (size_t) bytes_matched ?
-              ACTION_KILL :
-              ACTION_CONTINUE;
+          kill = flags & RE_FLAGS_BACKWARDS ||
+                 input_size > (size_t) bytes_matched;
+          action = kill ? ACTION_KILL : ACTION_CONTINUE;
           fiber->ip += 1;
           break;
 
diff --git a/tests/test-rules.c b/tests/test-rules.c
index 56aacf4..c26a25f 100644
--- a/tests/test-rules.c
+++ b/tests/test-rules.c
@@ -1111,7 +1111,14 @@ void test_re()
   assert_false_regexp("^abc$", "abcc");
   assert_true_regexp("^abc", "abcc", "abc");
   assert_false_regexp("^abc$", "aabc");
+  assert_false_regexp("abc^", "abc");
+  assert_false_regexp("ab^c", "abc");
+  assert_false_regexp("a^bcdef", "abcdef")
   assert_true_regexp("abc$", "aabc", "abc");
+  assert_false_regexp("$abc", "abc");
+  assert_true_regexp("(a|a$)bcd", "abcd", "abcd");
+  assert_false_regexp("(a$|a$)bcd", "abcd");
+  assert_false_regexp("(abc$|ab$)", "abcd");
   assert_true_regexp("^a(bc+|b[eh])g|.h$", "abhg", "abhg");
   assert_true_regexp("(bc+d$|ef*g.|h?i(j|k))", "effgz", "effgz");
   assert_true_regexp("(bc+d$|ef*g.|h?i(j|k))", "ij", "ij");

-- 
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