[Forensics-changes] [yara] 107/135: Fix issue #157
Hilko Bengen
bengen at moszumanska.debian.org
Sat Jul 1 10:27:37 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 68d8a49ffb2444826326b0a541e992a74484d03c
Author: Victor M. Alvarez <plusvic at gmail.com>
Date: Wed Aug 20 14:44:10 2014 +0200
Fix issue #157
---
libyara/grammar.c | 153 ++++++++++++++++++++++++++++--------------------------
libyara/grammar.y | 3 ++
2 files changed, 81 insertions(+), 75 deletions(-)
diff --git a/libyara/grammar.c b/libyara/grammar.c
index 4752b0d..0b1dbbc 100644
--- a/libyara/grammar.c
+++ b/libyara/grammar.c
@@ -635,14 +635,14 @@ static const yytype_uint16 yyrline[] =
242, 270, 274, 302, 307, 308, 313, 314, 320, 323,
341, 354, 391, 392, 397, 413, 426, 439, 456, 457,
462, 476, 475, 492, 509, 510, 515, 516, 517, 518,
- 523, 611, 660, 683, 722, 744, 774, 819, 837, 846,
- 855, 870, 884, 897, 912, 926, 961, 925, 1072, 1071,
- 1148, 1154, 1160, 1166, 1174, 1183, 1192, 1201, 1210, 1237,
- 1264, 1291, 1295, 1303, 1304, 1309, 1331, 1343, 1359, 1358,
- 1364, 1373, 1374, 1379, 1384, 1393, 1394, 1398, 1406, 1410,
- 1419, 1431, 1442, 1453, 1464, 1475, 1486, 1497, 1506, 1529,
- 1542, 1555, 1575, 1610, 1619, 1628, 1637, 1646, 1655, 1664,
- 1673, 1682, 1690, 1699, 1708
+ 523, 611, 660, 683, 722, 744, 777, 822, 840, 849,
+ 858, 873, 887, 900, 915, 929, 964, 928, 1075, 1074,
+ 1151, 1157, 1163, 1169, 1177, 1186, 1195, 1204, 1213, 1240,
+ 1267, 1294, 1298, 1306, 1307, 1312, 1334, 1346, 1362, 1361,
+ 1367, 1376, 1377, 1382, 1387, 1396, 1397, 1401, 1409, 1413,
+ 1422, 1434, 1445, 1456, 1467, 1478, 1489, 1500, 1509, 1532,
+ 1545, 1558, 1578, 1613, 1622, 1631, 1640, 1649, 1658, 1667,
+ 1676, 1685, 1693, 1702, 1711
};
#endif
@@ -2407,6 +2407,9 @@ yyreduce:
case EXPRESSION_TYPE_STRING:
strcat((yyvsp[(1) - (3)].c_string), "s");
break;
+ case EXPRESSION_TYPE_REGEXP:
+ strcat((yyvsp[(1) - (3)].c_string), "r");
+ break;
}
}
@@ -2417,7 +2420,7 @@ yyreduce:
break;
case 46:
-#line 775 "grammar.y"
+#line 778 "grammar.y"
{
SIZED_STRING* sized_string = (yyvsp[(1) - (1)].sized_string);
RE* re;
@@ -2461,7 +2464,7 @@ yyreduce:
break;
case 47:
-#line 820 "grammar.y"
+#line 823 "grammar.y"
{
if ((yyvsp[(1) - (1)].expression_type) == EXPRESSION_TYPE_STRING)
{
@@ -2479,7 +2482,7 @@ yyreduce:
break;
case 48:
-#line 838 "grammar.y"
+#line 841 "grammar.y"
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, 1, NULL);
@@ -2491,7 +2494,7 @@ yyreduce:
break;
case 49:
-#line 847 "grammar.y"
+#line 850 "grammar.y"
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, 0, NULL);
@@ -2503,7 +2506,7 @@ yyreduce:
break;
case 50:
-#line 856 "grammar.y"
+#line 859 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_STRING, "matches");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_REGEXP, "matches");
@@ -2521,7 +2524,7 @@ yyreduce:
break;
case 51:
-#line 871 "grammar.y"
+#line 874 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_STRING, "contains");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_STRING, "contains");
@@ -2538,7 +2541,7 @@ yyreduce:
break;
case 52:
-#line 885 "grammar.y"
+#line 888 "grammar.y"
{
int result = yr_parser_reduce_string_identifier(
yyscanner,
@@ -2554,7 +2557,7 @@ yyreduce:
break;
case 53:
-#line 898 "grammar.y"
+#line 901 "grammar.y"
{
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "at");
@@ -2572,7 +2575,7 @@ yyreduce:
break;
case 54:
-#line 913 "grammar.y"
+#line 916 "grammar.y"
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner,
@@ -2588,7 +2591,7 @@ yyreduce:
break;
case 55:
-#line 926 "grammar.y"
+#line 929 "grammar.y"
{
int var_index;
@@ -2626,7 +2629,7 @@ yyreduce:
break;
case 56:
-#line 961 "grammar.y"
+#line 964 "grammar.y"
{
int mem_offset = LOOP_LOCAL_VARS * compiler->loop_depth;
int8_t* addr;
@@ -2664,7 +2667,7 @@ yyreduce:
break;
case 57:
-#line 996 "grammar.y"
+#line 999 "grammar.y"
{
int mem_offset;
@@ -2743,7 +2746,7 @@ yyreduce:
break;
case 58:
-#line 1072 "grammar.y"
+#line 1075 "grammar.y"
{
int mem_offset = LOOP_LOCAL_VARS * compiler->loop_depth;
int8_t* addr;
@@ -2776,7 +2779,7 @@ yyreduce:
break;
case 59:
-#line 1102 "grammar.y"
+#line 1105 "grammar.y"
{
int mem_offset;
@@ -2826,7 +2829,7 @@ yyreduce:
break;
case 60:
-#line 1149 "grammar.y"
+#line 1152 "grammar.y"
{
yr_parser_emit(yyscanner, OP_OF, NULL);
@@ -2835,7 +2838,7 @@ yyreduce:
break;
case 61:
-#line 1155 "grammar.y"
+#line 1158 "grammar.y"
{
yr_parser_emit(yyscanner, OP_NOT, NULL);
@@ -2844,7 +2847,7 @@ yyreduce:
break;
case 62:
-#line 1161 "grammar.y"
+#line 1164 "grammar.y"
{
yr_parser_emit(yyscanner, OP_AND, NULL);
@@ -2853,7 +2856,7 @@ yyreduce:
break;
case 63:
-#line 1167 "grammar.y"
+#line 1170 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_BOOLEAN, "or");
@@ -2864,7 +2867,7 @@ yyreduce:
break;
case 64:
-#line 1175 "grammar.y"
+#line 1178 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "<");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "<");
@@ -2876,7 +2879,7 @@ yyreduce:
break;
case 65:
-#line 1184 "grammar.y"
+#line 1187 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, ">");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, ">");
@@ -2888,7 +2891,7 @@ yyreduce:
break;
case 66:
-#line 1193 "grammar.y"
+#line 1196 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "<=");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "<=");
@@ -2900,7 +2903,7 @@ yyreduce:
break;
case 67:
-#line 1202 "grammar.y"
+#line 1205 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, ">=");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, ">=");
@@ -2912,7 +2915,7 @@ yyreduce:
break;
case 68:
-#line 1211 "grammar.y"
+#line 1214 "grammar.y"
{
if ((yyvsp[(1) - (3)].expression_type) != (yyvsp[(3) - (3)].expression_type))
{
@@ -2942,7 +2945,7 @@ yyreduce:
break;
case 69:
-#line 1238 "grammar.y"
+#line 1241 "grammar.y"
{
if ((yyvsp[(1) - (3)].expression_type) != (yyvsp[(3) - (3)].expression_type))
{
@@ -2972,7 +2975,7 @@ yyreduce:
break;
case 70:
-#line 1265 "grammar.y"
+#line 1268 "grammar.y"
{
if ((yyvsp[(1) - (3)].expression_type) != (yyvsp[(3) - (3)].expression_type))
{
@@ -3002,31 +3005,31 @@ yyreduce:
break;
case 71:
-#line 1292 "grammar.y"
+#line 1295 "grammar.y"
{
(yyval.expression_type) = (yyvsp[(1) - (1)].expression_type);
}
break;
case 72:
-#line 1296 "grammar.y"
+#line 1299 "grammar.y"
{
(yyval.expression_type) = (yyvsp[(2) - (3)].expression_type);
}
break;
case 73:
-#line 1303 "grammar.y"
+#line 1306 "grammar.y"
{ (yyval.integer) = INTEGER_SET_ENUMERATION; }
break;
case 74:
-#line 1304 "grammar.y"
+#line 1307 "grammar.y"
{ (yyval.integer) = INTEGER_SET_RANGE; }
break;
case 75:
-#line 1310 "grammar.y"
+#line 1313 "grammar.y"
{
if ((yyvsp[(2) - (6)].expression_type) != EXPRESSION_TYPE_INTEGER)
{
@@ -3047,7 +3050,7 @@ yyreduce:
break;
case 76:
-#line 1332 "grammar.y"
+#line 1335 "grammar.y"
{
if ((yyvsp[(1) - (1)].expression_type) != EXPRESSION_TYPE_INTEGER)
{
@@ -3062,7 +3065,7 @@ yyreduce:
break;
case 77:
-#line 1344 "grammar.y"
+#line 1347 "grammar.y"
{
if ((yyvsp[(3) - (3)].expression_type) != EXPRESSION_TYPE_INTEGER)
{
@@ -3076,7 +3079,7 @@ yyreduce:
break;
case 78:
-#line 1359 "grammar.y"
+#line 1362 "grammar.y"
{
// Push end-of-list marker
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL);
@@ -3084,7 +3087,7 @@ yyreduce:
break;
case 80:
-#line 1365 "grammar.y"
+#line 1368 "grammar.y"
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL);
yr_parser_emit_pushes_for_strings(yyscanner, "$*");
@@ -3092,7 +3095,7 @@ yyreduce:
break;
case 83:
-#line 1380 "grammar.y"
+#line 1383 "grammar.y"
{
yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[(1) - (1)].c_string));
yr_free((yyvsp[(1) - (1)].c_string));
@@ -3100,7 +3103,7 @@ yyreduce:
break;
case 84:
-#line 1385 "grammar.y"
+#line 1388 "grammar.y"
{
yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[(1) - (1)].c_string));
yr_free((yyvsp[(1) - (1)].c_string));
@@ -3108,28 +3111,28 @@ yyreduce:
break;
case 86:
-#line 1395 "grammar.y"
+#line 1398 "grammar.y"
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL);
}
break;
case 87:
-#line 1399 "grammar.y"
+#line 1402 "grammar.y"
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, 1, NULL);
}
break;
case 88:
-#line 1407 "grammar.y"
+#line 1410 "grammar.y"
{
(yyval.expression_type) = (yyvsp[(2) - (3)].expression_type);
}
break;
case 89:
-#line 1411 "grammar.y"
+#line 1414 "grammar.y"
{
compiler->last_result = yr_parser_emit(
yyscanner, OP_FILESIZE, NULL);
@@ -3141,7 +3144,7 @@ yyreduce:
break;
case 90:
-#line 1420 "grammar.y"
+#line 1423 "grammar.y"
{
yywarning(yyscanner,
"Using deprecated \"entrypoint\" keyword. Use the \"entry_point\" " "function from PE module instead.");
@@ -3156,7 +3159,7 @@ yyreduce:
break;
case 91:
-#line 1432 "grammar.y"
+#line 1435 "grammar.y"
{
CHECK_TYPE((yyvsp[(3) - (4)].expression_type), EXPRESSION_TYPE_INTEGER, "int8");
@@ -3170,7 +3173,7 @@ yyreduce:
break;
case 92:
-#line 1443 "grammar.y"
+#line 1446 "grammar.y"
{
CHECK_TYPE((yyvsp[(3) - (4)].expression_type), EXPRESSION_TYPE_INTEGER, "int16");
@@ -3184,7 +3187,7 @@ yyreduce:
break;
case 93:
-#line 1454 "grammar.y"
+#line 1457 "grammar.y"
{
CHECK_TYPE((yyvsp[(3) - (4)].expression_type), EXPRESSION_TYPE_INTEGER, "int32");
@@ -3198,7 +3201,7 @@ yyreduce:
break;
case 94:
-#line 1465 "grammar.y"
+#line 1468 "grammar.y"
{
CHECK_TYPE((yyvsp[(3) - (4)].expression_type), EXPRESSION_TYPE_INTEGER, "uint8");
@@ -3212,7 +3215,7 @@ yyreduce:
break;
case 95:
-#line 1476 "grammar.y"
+#line 1479 "grammar.y"
{
CHECK_TYPE((yyvsp[(3) - (4)].expression_type), EXPRESSION_TYPE_INTEGER, "uint16");
@@ -3226,7 +3229,7 @@ yyreduce:
break;
case 96:
-#line 1487 "grammar.y"
+#line 1490 "grammar.y"
{
CHECK_TYPE((yyvsp[(3) - (4)].expression_type), EXPRESSION_TYPE_INTEGER, "uint32");
@@ -3240,7 +3243,7 @@ yyreduce:
break;
case 97:
-#line 1498 "grammar.y"
+#line 1501 "grammar.y"
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, (yyvsp[(1) - (1)].integer), NULL);
@@ -3252,7 +3255,7 @@ yyreduce:
break;
case 98:
-#line 1507 "grammar.y"
+#line 1510 "grammar.y"
{
SIZED_STRING* sized_string = (yyvsp[(1) - (1)].sized_string);
char* string;
@@ -3278,7 +3281,7 @@ yyreduce:
break;
case 99:
-#line 1530 "grammar.y"
+#line 1533 "grammar.y"
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner,
@@ -3294,7 +3297,7 @@ yyreduce:
break;
case 100:
-#line 1543 "grammar.y"
+#line 1546 "grammar.y"
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner,
@@ -3310,7 +3313,7 @@ yyreduce:
break;
case 101:
-#line 1556 "grammar.y"
+#line 1559 "grammar.y"
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner,
@@ -3333,7 +3336,7 @@ yyreduce:
break;
case 102:
-#line 1576 "grammar.y"
+#line 1579 "grammar.y"
{
if ((yyvsp[(1) - (1)].object) == (YR_OBJECT*) -1) // loop identifier
{
@@ -3371,7 +3374,7 @@ yyreduce:
break;
case 103:
-#line 1611 "grammar.y"
+#line 1614 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "+");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "+");
@@ -3383,7 +3386,7 @@ yyreduce:
break;
case 104:
-#line 1620 "grammar.y"
+#line 1623 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "-");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "-");
@@ -3395,7 +3398,7 @@ yyreduce:
break;
case 105:
-#line 1629 "grammar.y"
+#line 1632 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "*");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "*");
@@ -3407,7 +3410,7 @@ yyreduce:
break;
case 106:
-#line 1638 "grammar.y"
+#line 1641 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "\\");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "\\");
@@ -3419,7 +3422,7 @@ yyreduce:
break;
case 107:
-#line 1647 "grammar.y"
+#line 1650 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "%");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "%");
@@ -3431,7 +3434,7 @@ yyreduce:
break;
case 108:
-#line 1656 "grammar.y"
+#line 1659 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "^");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "^");
@@ -3443,7 +3446,7 @@ yyreduce:
break;
case 109:
-#line 1665 "grammar.y"
+#line 1668 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "^");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "^");
@@ -3455,7 +3458,7 @@ yyreduce:
break;
case 110:
-#line 1674 "grammar.y"
+#line 1677 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "|");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "|");
@@ -3467,7 +3470,7 @@ yyreduce:
break;
case 111:
-#line 1683 "grammar.y"
+#line 1686 "grammar.y"
{
CHECK_TYPE((yyvsp[(2) - (2)].expression_type), EXPRESSION_TYPE_INTEGER, "~");
@@ -3478,7 +3481,7 @@ yyreduce:
break;
case 112:
-#line 1691 "grammar.y"
+#line 1694 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "<<");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, "<<");
@@ -3490,7 +3493,7 @@ yyreduce:
break;
case 113:
-#line 1700 "grammar.y"
+#line 1703 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, ">>");
CHECK_TYPE((yyvsp[(3) - (3)].expression_type), EXPRESSION_TYPE_INTEGER, ">>");
@@ -3502,7 +3505,7 @@ yyreduce:
break;
case 114:
-#line 1709 "grammar.y"
+#line 1712 "grammar.y"
{
(yyval.expression_type) = (yyvsp[(1) - (1)].expression_type);
}
@@ -3510,7 +3513,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 3514 "grammar.c"
+#line 3517 "grammar.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3724,7 +3727,7 @@ yyreturn:
}
-#line 1714 "grammar.y"
+#line 1717 "grammar.y"
diff --git a/libyara/grammar.y b/libyara/grammar.y
index a2a0d57..b5ba89a 100644
--- a/libyara/grammar.y
+++ b/libyara/grammar.y
@@ -760,6 +760,9 @@ arguments_list
case EXPRESSION_TYPE_STRING:
strcat($1, "s");
break;
+ case EXPRESSION_TYPE_REGEXP:
+ strcat($1, "r");
+ break;
}
}
--
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