[Forensics-changes] [yara] 13/192: Fix issue #506
Hilko Bengen
bengen at moszumanska.debian.org
Sat Jul 1 10:31:41 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 f4b535fa2b8adb73a0494b8f96d16af0c920180d
Author: plusvic <plusvic at gmail.com>
Date: Fri Aug 19 17:25:14 2016 +0200
Fix issue #506
---
libyara/lexer.c | 309 ++++++++++++++++++++++++++---------------------------
libyara/lexer.l | 2 +-
tests/test-rules.c | 10 +-
3 files changed, 163 insertions(+), 158 deletions(-)
diff --git a/libyara/lexer.c b/libyara/lexer.c
index d0f3688..cc67184 100644
--- a/libyara/lexer.c
+++ b/libyara/lexer.c
@@ -455,7 +455,7 @@ static yyconst YY_CHAR yy_ec[256] =
static yyconst YY_CHAR yy_meta[56] =
{ 0,
- 1, 2, 3, 1, 1, 4, 1, 1, 2, 5,
+ 1, 2, 3, 2, 1, 4, 1, 1, 2, 5,
6, 7, 8, 8, 8, 8, 8, 8, 8, 1,
9, 1, 1, 10, 10, 11, 12, 12, 13, 11,
10, 10, 10, 10, 10, 10, 11, 11, 11, 11,
@@ -465,32 +465,32 @@ static yyconst YY_CHAR yy_meta[56] =
static yyconst flex_uint16_t yy_base[266] =
{ 0,
- 0, 0, 53, 54, 55, 58, 343, 342, 337, 330,
- 339, 640, 640, 640, 317, 640, 0, 327, 325, 52,
- 52, 58, 45, 312, 50, 0, 0, 48, 289, 289,
- 50, 290, 32, 61, 278, 32, 273, 269, 269, 59,
- 276, 275, 298, 0, 640, 640, 70, 0, 640, 61,
- 297, 0, 640, 640, 296, 286, 640, 0, 640, 296,
- 640, 640, 0, 109, 0, 280, 279, 0, 640, 640,
- 640, 640, 640, 0, 0, 263, 67, 269, 0, 259,
- 253, 259, 258, 252, 256, 252, 250, 58, 246, 239,
- 69, 0, 0, 246, 244, 238, 247, 231, 236, 243,
+ 0, 0, 53, 54, 55, 58, 347, 346, 341, 340,
+ 349, 640, 640, 640, 327, 640, 0, 337, 329, 52,
+ 52, 58, 45, 318, 50, 0, 0, 48, 295, 295,
+ 50, 296, 32, 61, 290, 32, 287, 283, 283, 59,
+ 282, 279, 305, 0, 640, 640, 70, 0, 640, 61,
+ 304, 0, 640, 640, 303, 289, 640, 0, 640, 299,
+ 640, 640, 0, 109, 0, 283, 282, 0, 640, 640,
+ 640, 640, 640, 0, 0, 266, 67, 272, 0, 262,
+ 256, 262, 261, 255, 259, 255, 253, 58, 249, 248,
+ 69, 0, 0, 255, 253, 241, 250, 236, 241, 248,
63, 96, 0, 640, 640, 640, 640, 640, 0, 0,
- 230, 640, 640, 640, 0, 640, 0, 116, 640, 0,
- 0, 0, 0, 228, 102, 219, 217, 227, 0, 221,
- 228, 213, 215, 123, 221, 222, 221, 0, 202, 215,
- 210, 207, 212, 199, 210, 640, 234, 148, 0, 204,
- 203, 210, 188, 204, 186, 181, 199, 184, 180, 207,
- 209, 191, 184, 0, 167, 181, 0, 168, 0, 0,
- 0, 199, 196, 202, 0, 101, 0, 640, 0, 160,
- 167, 158, 0, 162, 157, 159, 151, 163, 161, 160,
- 159, 146, 155, 256, 128, 152, 148, 146, 135, 142,
-
- 0, 0, 151, 0, 139, 0, 143, 131, 310, 0,
- 364, 164, 131, 0, 132, 128, 132, 135, 135, 166,
- 0, 0, 0, 134, 149, 135, 136, 142, 78, 0,
- 73, 0, 0, 108, 143, 0, 146, 0, 31, 640,
+ 233, 640, 640, 640, 0, 640, 0, 116, 640, 0,
+ 0, 0, 0, 239, 102, 232, 230, 232, 0, 224,
+ 231, 219, 221, 123, 223, 224, 223, 0, 204, 217,
+ 212, 209, 214, 201, 212, 640, 236, 148, 0, 206,
+ 205, 212, 190, 206, 194, 189, 201, 186, 182, 211,
+ 213, 193, 186, 0, 177, 191, 0, 171, 0, 0,
+ 0, 202, 198, 202, 0, 101, 0, 640, 0, 162,
+ 169, 163, 0, 163, 158, 160, 152, 164, 162, 161,
+ 160, 147, 156, 256, 128, 153, 149, 147, 136, 143,
+
+ 0, 0, 152, 0, 140, 0, 150, 132, 310, 0,
+ 364, 165, 131, 0, 133, 129, 135, 136, 135, 157,
+ 0, 0, 0, 134, 148, 135, 136, 143, 78, 0,
+ 73, 0, 0, 108, 144, 0, 158, 0, 31, 640,
0, 640, 419, 432, 445, 458, 464, 469, 477, 484,
489, 494, 505, 515, 527, 540, 552, 565, 578, 584,
587, 597, 610, 616, 626
@@ -547,30 +547,30 @@ static yyconst flex_uint16_t yy_nxt[696] =
109, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 151, 160, 194, 161, 195,
227, 162, 228, 235, 194, 236, 195, 237, 152, 175,
- 101, 227, 173, 228, 211, 227, 175, 228, 173, 176,
- 175, 175, 175, 175, 175, 175, 175, 234, 233, 232,
- 231, 175, 175, 230, 229, 226, 223, 222, 175, 175,
- 175, 175, 175, 175, 221, 220, 219, 218, 217, 216,
- 215, 208, 207, 206, 205, 204, 203, 202, 201, 200,
-
- 199, 198, 177, 175, 101, 197, 196, 101, 173, 193,
- 175, 192, 191, 176, 175, 175, 175, 175, 175, 175,
- 175, 190, 189, 162, 162, 175, 175, 188, 187, 186,
- 185, 184, 175, 175, 175, 175, 175, 175, 183, 182,
- 181, 180, 179, 173, 171, 134, 170, 169, 168, 167,
- 166, 165, 164, 163, 159, 158, 177, 210, 211, 157,
- 156, 155, 154, 153, 210, 212, 150, 213, 210, 210,
- 210, 210, 210, 210, 210, 112, 145, 144, 143, 210,
- 210, 142, 141, 140, 139, 136, 210, 210, 210, 210,
- 210, 210, 135, 132, 131, 130, 129, 128, 127, 126,
-
- 125, 124, 121, 119, 119, 59, 242, 116, 114, 102,
- 214, 210, 211, 100, 99, 96, 95, 94, 210, 212,
- 91, 213, 210, 210, 210, 210, 210, 210, 210, 86,
- 81, 80, 71, 210, 210, 61, 59, 57, 242, 55,
- 210, 210, 210, 210, 210, 210, 55, 53, 53, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 214, 211, 211, 242, 242, 242,
+ 101, 175, 227, 173, 228, 211, 175, 173, 234, 176,
+ 175, 175, 175, 175, 175, 175, 175, 227, 233, 228,
+ 232, 175, 175, 231, 230, 229, 226, 223, 175, 175,
+ 175, 175, 175, 175, 222, 221, 220, 219, 218, 217,
+ 216, 215, 208, 207, 206, 205, 204, 203, 202, 201,
+
+ 200, 199, 177, 175, 101, 175, 198, 197, 196, 101,
+ 175, 173, 193, 176, 175, 175, 175, 175, 175, 175,
+ 175, 192, 191, 190, 189, 175, 175, 162, 162, 188,
+ 187, 186, 175, 175, 175, 175, 175, 175, 185, 184,
+ 183, 182, 181, 180, 179, 173, 171, 134, 170, 169,
+ 168, 167, 166, 165, 164, 163, 177, 210, 211, 210,
+ 159, 158, 157, 156, 210, 212, 155, 213, 210, 210,
+ 210, 210, 210, 210, 210, 154, 153, 150, 112, 210,
+ 210, 145, 144, 143, 142, 141, 210, 210, 210, 210,
+ 210, 210, 140, 139, 136, 135, 132, 131, 130, 129,
+
+ 128, 127, 126, 125, 124, 121, 119, 119, 59, 242,
+ 214, 210, 211, 210, 116, 114, 102, 100, 210, 212,
+ 99, 213, 210, 210, 210, 210, 210, 210, 210, 96,
+ 95, 94, 91, 210, 210, 86, 81, 80, 71, 61,
+ 210, 210, 210, 210, 210, 210, 59, 57, 242, 55,
+ 55, 53, 53, 242, 242, 242, 242, 242, 242, 242,
+ 242, 242, 242, 242, 214, 211, 211, 211, 242, 242,
242, 242, 211, 173, 242, 224, 211, 211, 211, 211,
211, 211, 211, 242, 242, 242, 242, 211, 211, 242,
242, 242, 242, 242, 211, 211, 211, 211, 211, 211,
@@ -628,30 +628,30 @@ static yyconst flex_int16_t yy_chk[696] =
47, 64, 64, 64, 64, 64, 64, 64, 118, 118,
118, 118, 118, 118, 118, 125, 134, 195, 134, 195,
213, 134, 213, 224, 226, 224, 226, 227, 125, 148,
- 148, 228, 235, 228, 235, 237, 148, 237, 225, 148,
- 148, 148, 148, 148, 148, 148, 148, 220, 219, 218,
- 217, 148, 148, 216, 215, 212, 208, 207, 148, 148,
- 148, 148, 148, 148, 205, 203, 200, 199, 198, 197,
- 196, 193, 192, 191, 190, 189, 188, 187, 186, 185,
-
- 184, 182, 148, 174, 174, 181, 180, 173, 172, 168,
- 174, 166, 165, 174, 174, 174, 174, 174, 174, 174,
- 174, 163, 162, 161, 160, 174, 174, 159, 158, 157,
- 156, 155, 174, 174, 174, 174, 174, 174, 154, 153,
- 152, 151, 150, 147, 145, 144, 143, 142, 141, 140,
- 139, 137, 136, 135, 133, 132, 174, 194, 194, 131,
- 130, 128, 127, 126, 194, 194, 124, 194, 194, 194,
- 194, 194, 194, 194, 194, 111, 100, 99, 98, 194,
- 194, 97, 96, 95, 94, 90, 194, 194, 194, 194,
- 194, 194, 89, 87, 86, 85, 84, 83, 82, 81,
-
- 80, 78, 76, 67, 66, 60, 56, 55, 51, 43,
- 194, 209, 209, 42, 41, 39, 38, 37, 209, 209,
- 35, 209, 209, 209, 209, 209, 209, 209, 209, 32,
- 30, 29, 24, 209, 209, 19, 18, 15, 11, 10,
- 209, 209, 209, 209, 209, 209, 9, 8, 7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 209, 211, 211, 0, 0, 0,
+ 148, 148, 228, 235, 228, 235, 148, 225, 220, 148,
+ 148, 148, 148, 148, 148, 148, 148, 237, 219, 237,
+ 218, 148, 148, 217, 216, 215, 212, 208, 148, 148,
+ 148, 148, 148, 148, 207, 205, 203, 200, 199, 198,
+ 197, 196, 193, 192, 191, 190, 189, 188, 187, 186,
+
+ 185, 184, 148, 174, 174, 174, 182, 181, 180, 173,
+ 174, 172, 168, 174, 174, 174, 174, 174, 174, 174,
+ 174, 166, 165, 163, 162, 174, 174, 161, 160, 159,
+ 158, 157, 174, 174, 174, 174, 174, 174, 156, 155,
+ 154, 153, 152, 151, 150, 147, 145, 144, 143, 142,
+ 141, 140, 139, 137, 136, 135, 174, 194, 194, 194,
+ 133, 132, 131, 130, 194, 194, 128, 194, 194, 194,
+ 194, 194, 194, 194, 194, 127, 126, 124, 111, 194,
+ 194, 100, 99, 98, 97, 96, 194, 194, 194, 194,
+ 194, 194, 95, 94, 90, 89, 87, 86, 85, 84,
+
+ 83, 82, 81, 80, 78, 76, 67, 66, 60, 56,
+ 194, 209, 209, 209, 55, 51, 43, 42, 209, 209,
+ 41, 209, 209, 209, 209, 209, 209, 209, 209, 39,
+ 38, 37, 35, 209, 209, 32, 30, 29, 24, 19,
+ 209, 209, 209, 209, 209, 209, 18, 15, 11, 10,
+ 9, 8, 7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 209, 211, 211, 211, 0, 0,
0, 0, 211, 211, 0, 211, 211, 211, 211, 211,
211, 211, 211, 0, 0, 0, 0, 211, 211, 0,
0, 0, 0, 0, 211, 211, 211, 211, 211, 211,
@@ -736,7 +736,7 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/* Lexical analyzer for YARA */
-#line 20 "lexer.l"
+#line 33 "lexer.l"
/* Disable warnings for unused functions in this file.
@@ -754,11 +754,10 @@ with noyywrap then we can remove this pragma.
#include <math.h>
#include <stdarg.h>
#include <stdio.h>
-#include <stdint.h>
#include <string.h>
#include <setjmp.h>
-
+#include <yara/integers.h>
#include <yara/lexer.h>
#include <yara/sizedstr.h>
#include <yara/error.h>
@@ -810,7 +809,7 @@ with noyywrap then we can remove this pragma.
-#line 801 "lexer.c"
+#line 813 "lexer.c"
#define INITIAL 0
#define str 1
@@ -1087,10 +1086,10 @@ YY_DECL
}
{
-#line 111 "lexer.l"
+#line 123 "lexer.l"
-#line 1081 "lexer.c"
+#line 1093 "lexer.c"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1157,208 +1156,208 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 113 "lexer.l"
+#line 125 "lexer.l"
{ return _DOT_DOT_; }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 114 "lexer.l"
+#line 126 "lexer.l"
{ return _LT_; }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 115 "lexer.l"
+#line 127 "lexer.l"
{ return _GT_; }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 116 "lexer.l"
+#line 128 "lexer.l"
{ return _LE_; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 117 "lexer.l"
+#line 129 "lexer.l"
{ return _GE_; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 118 "lexer.l"
+#line 130 "lexer.l"
{ return _EQ_; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 119 "lexer.l"
+#line 131 "lexer.l"
{ return _NEQ_; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 120 "lexer.l"
+#line 132 "lexer.l"
{ return _SHIFT_LEFT_; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 121 "lexer.l"
+#line 133 "lexer.l"
{ return _SHIFT_RIGHT_; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 122 "lexer.l"
+#line 134 "lexer.l"
{ return _PRIVATE_; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 123 "lexer.l"
+#line 135 "lexer.l"
{ return _GLOBAL_; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 124 "lexer.l"
+#line 136 "lexer.l"
{ return _RULE_; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 125 "lexer.l"
+#line 137 "lexer.l"
{ return _META_; }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 126 "lexer.l"
+#line 138 "lexer.l"
{ return _STRINGS_; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 127 "lexer.l"
+#line 139 "lexer.l"
{ return _ASCII_; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 128 "lexer.l"
+#line 140 "lexer.l"
{ return _WIDE_; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 129 "lexer.l"
+#line 141 "lexer.l"
{ return _FULLWORD_; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 130 "lexer.l"
+#line 142 "lexer.l"
{ return _NOCASE_; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 131 "lexer.l"
+#line 143 "lexer.l"
{ return _CONDITION_; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 132 "lexer.l"
+#line 144 "lexer.l"
{ return _TRUE_; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 133 "lexer.l"
+#line 145 "lexer.l"
{ return _FALSE_; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 134 "lexer.l"
+#line 146 "lexer.l"
{ return _NOT_; }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 135 "lexer.l"
+#line 147 "lexer.l"
{ return _AND_; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 136 "lexer.l"
+#line 148 "lexer.l"
{ return _OR_; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 137 "lexer.l"
+#line 149 "lexer.l"
{ return _AT_; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 138 "lexer.l"
+#line 150 "lexer.l"
{ return _IN_; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 139 "lexer.l"
+#line 151 "lexer.l"
{ return _OF_; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 140 "lexer.l"
+#line 152 "lexer.l"
{ return _THEM_; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 141 "lexer.l"
+#line 153 "lexer.l"
{ return _FOR_; }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 142 "lexer.l"
+#line 154 "lexer.l"
{ return _ALL_; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 143 "lexer.l"
+#line 155 "lexer.l"
{ return _ANY_; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 144 "lexer.l"
+#line 156 "lexer.l"
{ return _ENTRYPOINT_; }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 145 "lexer.l"
+#line 157 "lexer.l"
{ return _FILESIZE_; }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 146 "lexer.l"
+#line 158 "lexer.l"
{ return _MATCHES_; }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 147 "lexer.l"
+#line 159 "lexer.l"
{ return _CONTAINS_; }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 148 "lexer.l"
+#line 160 "lexer.l"
{ return _IMPORT_; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 151 "lexer.l"
+#line 163 "lexer.l"
{ BEGIN(comment); }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 152 "lexer.l"
+#line 164 "lexer.l"
{ BEGIN(INITIAL); }
YY_BREAK
case 39:
/* rule 39 can match eol */
YY_RULE_SETUP
-#line 153 "lexer.l"
+#line 165 "lexer.l"
{ /* skip comments */ }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 156 "lexer.l"
+#line 168 "lexer.l"
{ /* skip single-line comments */ }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 159 "lexer.l"
+#line 171 "lexer.l"
{
yyextra->lex_buf_ptr = yyextra->lex_buf;
yyextra->lex_buf_len = 0;
@@ -1368,12 +1367,12 @@ YY_RULE_SETUP
case 42:
/* rule 42 can match eol */
YY_RULE_SETUP
-#line 166 "lexer.l"
+#line 178 "lexer.l"
{ YYTEXT_TO_BUFFER; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 169 "lexer.l"
+#line 181 "lexer.l"
{
char buffer[1024];
@@ -1489,7 +1488,7 @@ case YY_STATE_EOF(str):
case YY_STATE_EOF(regexp):
case YY_STATE_EOF(include):
case YY_STATE_EOF(comment):
-#line 281 "lexer.l"
+#line 293 "lexer.l"
{
YR_COMPILER* compiler = yara_yyget_extra(yyscanner);
@@ -1511,7 +1510,7 @@ case YY_STATE_EOF(comment):
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 301 "lexer.l"
+#line 313 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1527,7 +1526,7 @@ YY_RULE_SETUP
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 315 "lexer.l"
+#line 327 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1543,7 +1542,7 @@ YY_RULE_SETUP
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 329 "lexer.l"
+#line 341 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1560,7 +1559,7 @@ YY_RULE_SETUP
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 344 "lexer.l"
+#line 356 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1577,7 +1576,7 @@ YY_RULE_SETUP
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 359 "lexer.l"
+#line 371 "lexer.l"
{
yylval->c_string = yr_strdup(yytext);
@@ -1594,7 +1593,7 @@ YY_RULE_SETUP
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 374 "lexer.l"
+#line 386 "lexer.l"
{
char* text = yytext;
@@ -1635,7 +1634,7 @@ YY_RULE_SETUP
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 413 "lexer.l"
+#line 425 "lexer.l"
{
if (strlen(yytext) > 128)
@@ -1656,7 +1655,7 @@ YY_RULE_SETUP
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 432 "lexer.l"
+#line 444 "lexer.l"
{
#ifdef _MSC_VER
@@ -1678,7 +1677,7 @@ YY_RULE_SETUP
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 451 "lexer.l"
+#line 463 "lexer.l"
{
yylval->double_ = atof(yytext);
return _DOUBLE_;
@@ -1686,7 +1685,7 @@ YY_RULE_SETUP
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 456 "lexer.l"
+#line 468 "lexer.l"
{
yylval->integer = xtoi(yytext + 2);
@@ -1695,7 +1694,7 @@ YY_RULE_SETUP
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 463 "lexer.l"
+#line 475 "lexer.l"
{ /* saw closing quote - all done */
ALLOC_SIZED_STRING(s, yyextra->lex_buf_len);
@@ -1711,7 +1710,7 @@ YY_RULE_SETUP
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 477 "lexer.l"
+#line 489 "lexer.l"
{
LEX_CHECK_SPACE_OK("\t", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1721,7 +1720,7 @@ YY_RULE_SETUP
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 485 "lexer.l"
+#line 497 "lexer.l"
{
LEX_CHECK_SPACE_OK("\n", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1731,7 +1730,7 @@ YY_RULE_SETUP
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 493 "lexer.l"
+#line 505 "lexer.l"
{
LEX_CHECK_SPACE_OK("\"", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1741,7 +1740,7 @@ YY_RULE_SETUP
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 501 "lexer.l"
+#line 513 "lexer.l"
{
LEX_CHECK_SPACE_OK("\\", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1751,7 +1750,7 @@ YY_RULE_SETUP
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 509 "lexer.l"
+#line 521 "lexer.l"
{
int result;
@@ -1764,13 +1763,13 @@ YY_RULE_SETUP
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 520 "lexer.l"
+#line 532 "lexer.l"
{ YYTEXT_TO_BUFFER; }
YY_BREAK
case 61:
/* rule 61 can match eol */
YY_RULE_SETUP
-#line 523 "lexer.l"
+#line 535 "lexer.l"
{
yyerror(yyscanner, compiler, "unterminated string");
@@ -1780,7 +1779,7 @@ YY_RULE_SETUP
case 62:
/* rule 62 can match eol */
YY_RULE_SETUP
-#line 529 "lexer.l"
+#line 541 "lexer.l"
{
yyerror(yyscanner, compiler, "illegal escape sequence");
@@ -1788,7 +1787,7 @@ YY_RULE_SETUP
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 535 "lexer.l"
+#line 547 "lexer.l"
{
if (yyextra->lex_buf_len > 0)
@@ -1816,7 +1815,7 @@ YY_RULE_SETUP
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 561 "lexer.l"
+#line 573 "lexer.l"
{
LEX_CHECK_SPACE_OK("/", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1826,7 +1825,7 @@ YY_RULE_SETUP
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 569 "lexer.l"
+#line 581 "lexer.l"
{
LEX_CHECK_SPACE_OK("\\.", yyextra->lex_buf_len, LEX_BUF_SIZE);
@@ -1837,13 +1836,13 @@ YY_RULE_SETUP
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 578 "lexer.l"
+#line 590 "lexer.l"
{ YYTEXT_TO_BUFFER; }
YY_BREAK
case 67:
/* rule 67 can match eol */
YY_RULE_SETUP
-#line 581 "lexer.l"
+#line 593 "lexer.l"
{
yyerror(yyscanner, compiler, "unterminated regular expression");
@@ -1852,7 +1851,7 @@ YY_RULE_SETUP
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 588 "lexer.l"
+#line 600 "lexer.l"
{
yyextra->lex_buf_ptr = yyextra->lex_buf;
@@ -1862,7 +1861,7 @@ YY_RULE_SETUP
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 596 "lexer.l"
+#line 608 "lexer.l"
{
yyextra->lex_buf_ptr = yyextra->lex_buf;
@@ -1873,7 +1872,7 @@ YY_RULE_SETUP
case 70:
/* rule 70 can match eol */
YY_RULE_SETUP
-#line 604 "lexer.l"
+#line 616 "lexer.l"
{
// Match hex-digits with whitespace or comments. The latter are stripped
// out by hex_lexer.l
@@ -1889,12 +1888,12 @@ YY_RULE_SETUP
case 71:
/* rule 71 can match eol */
YY_RULE_SETUP
-#line 617 "lexer.l"
+#line 629 "lexer.l"
/* skip whitespace */
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 619 "lexer.l"
+#line 631 "lexer.l"
{
if (yytext[0] >= 32 && yytext[0] < 127)
@@ -1910,10 +1909,10 @@ YY_RULE_SETUP
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 632 "lexer.l"
+#line 644 "lexer.l"
ECHO;
YY_BREAK
-#line 1904 "lexer.c"
+#line 1916 "lexer.c"
case YY_END_OF_BUFFER:
{
@@ -3062,7 +3061,7 @@ void yara_yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 632 "lexer.l"
+#line 644 "lexer.l"
diff --git a/libyara/lexer.l b/libyara/lexer.l
index 640304a..b22af75 100644
--- a/libyara/lexer.l
+++ b/libyara/lexer.l
@@ -613,7 +613,7 @@ u?int(8|16|32)(be)? {
}
-\{(({hexdigit}|[ \-|\?\[\]\(\)\n\t]|\/\*[^*]*\*\/)+|\/\/.*)+\} {
+\{(({hexdigit}|[ \-|\?\[\]\(\)\n\r\t]|\/\*[^*]*\*\/)+|\/\/.*)+\} {
// Match hex-digits with whitespace or comments. The latter are stripped
// out by hex_lexer.l
diff --git a/tests/test-rules.c b/tests/test-rules.c
index b596029..9072c09 100644
--- a/tests/test-rules.c
+++ b/tests/test-rules.c
@@ -463,7 +463,7 @@ static void test_hex_strings()
assert_true_rule(
"rule test { \
- strings: $a = { 31 32 [-] // Inline comment\n\
+ strings: $a = { 31 32 [-] // Inline comment\n\r \
38 39 } \
condition: $a }",
"1234567890");
@@ -476,13 +476,19 @@ static void test_hex_strings()
assert_true_rule(
"rule test { \
- strings: $a = { 31 32 /* Inline multi-line\n\
+ strings: $a = { 31 32 /* Inline multi-line\n\r \
comment */ [-] 38 39 } \
condition: $a }",
"1234567890");
assert_true_rule(
"rule test { \
+ strings: $a = {\n 31 32 [-] 38 39 \n\r} \
+ condition: $a }",
+ "1234567890");
+
+ assert_true_rule(
+ "rule test { \
strings: $a = { 31 32 [-] 33 34 [-] 38 39 } \
condition: $a }",
"1234567890");
--
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