[Forensics-changes] [yara] 94/368: Fix issue #359
Hilko Bengen
bengen at moszumanska.debian.org
Sat Jul 1 10:30:15 UTC 2017
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to annotated tag v3.5.0
in repository yara.
commit 3f2f291e937178149cb4a8606064a3348c43f158
Author: Victor M. Alvarez <plusvic at gmail.com>
Date: Fri Oct 23 10:19:13 2015 +0200
Fix issue #359
String identifiers containing wildcards don't raise an error if no string is defined.
---
libyara/grammar.c | 78 ++++++++++++++++++++++++++++++-------------------------
libyara/grammar.y | 6 +++++
2 files changed, 48 insertions(+), 36 deletions(-)
diff --git a/libyara/grammar.c b/libyara/grammar.c
index db190c0..c76ee63 100644
--- a/libyara/grammar.c
+++ b/libyara/grammar.c
@@ -634,10 +634,10 @@ static const yytype_uint16 yyrline[] =
823, 869, 884, 893, 902, 917, 929, 943, 956, 968,
998, 967, 1114, 1113, 1193, 1199, 1206, 1205, 1268, 1267,
1328, 1337, 1346, 1355, 1364, 1373, 1382, 1386, 1394, 1395,
- 1400, 1422, 1434, 1450, 1449, 1455, 1464, 1465, 1470, 1475,
- 1484, 1485, 1489, 1497, 1501, 1511, 1525, 1541, 1551, 1560,
- 1584, 1596, 1608, 1624, 1636, 1652, 1696, 1715, 1733, 1751,
- 1769, 1795, 1813, 1823, 1833, 1843, 1853, 1863, 1873
+ 1400, 1422, 1434, 1450, 1449, 1455, 1466, 1467, 1472, 1479,
+ 1490, 1491, 1495, 1503, 1507, 1517, 1531, 1547, 1557, 1566,
+ 1590, 1602, 1614, 1630, 1642, 1658, 1702, 1721, 1739, 1757,
+ 1775, 1801, 1819, 1829, 1839, 1849, 1859, 1869, 1879
};
#endif
@@ -3177,48 +3177,54 @@ yyreduce:
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL, NULL);
yr_parser_emit_pushes_for_strings(yyscanner, "$*");
+
+ ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
break;
case 88:
-#line 1471 "grammar.y"
+#line 1473 "grammar.y"
{
yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[(1) - (1)].c_string));
yr_free((yyvsp[(1) - (1)].c_string));
+
+ ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
break;
case 89:
-#line 1476 "grammar.y"
+#line 1480 "grammar.y"
{
yr_parser_emit_pushes_for_strings(yyscanner, (yyvsp[(1) - (1)].c_string));
yr_free((yyvsp[(1) - (1)].c_string));
+
+ ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
break;
case 91:
-#line 1486 "grammar.y"
+#line 1492 "grammar.y"
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL, NULL);
}
break;
case 92:
-#line 1490 "grammar.y"
+#line 1496 "grammar.y"
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, 1, NULL, NULL);
}
break;
case 93:
-#line 1498 "grammar.y"
+#line 1504 "grammar.y"
{
(yyval.expression) = (yyvsp[(2) - (3)].expression);
}
break;
case 94:
-#line 1502 "grammar.y"
+#line 1508 "grammar.y"
{
compiler->last_result = yr_parser_emit(
yyscanner, OP_FILESIZE, NULL);
@@ -3231,7 +3237,7 @@ yyreduce:
break;
case 95:
-#line 1512 "grammar.y"
+#line 1518 "grammar.y"
{
yywarning(yyscanner,
"Using deprecated \"entrypoint\" keyword. Use the \"entry_point\" "
@@ -3248,7 +3254,7 @@ yyreduce:
break;
case 96:
-#line 1526 "grammar.y"
+#line 1532 "grammar.y"
{
CHECK_TYPE((yyvsp[(3) - (4)].expression), EXPRESSION_TYPE_INTEGER, "intXXXX or uintXXXX");
@@ -3267,7 +3273,7 @@ yyreduce:
break;
case 97:
-#line 1542 "grammar.y"
+#line 1548 "grammar.y"
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, (yyvsp[(1) - (1)].integer), NULL, NULL);
@@ -3280,7 +3286,7 @@ yyreduce:
break;
case 98:
-#line 1552 "grammar.y"
+#line 1558 "grammar.y"
{
compiler->last_result = yr_parser_emit_with_arg_double(
yyscanner, OP_PUSH, (yyvsp[(1) - (1)].double_), NULL, NULL);
@@ -3292,7 +3298,7 @@ yyreduce:
break;
case 99:
-#line 1561 "grammar.y"
+#line 1567 "grammar.y"
{
SIZED_STRING* sized_string;
@@ -3319,7 +3325,7 @@ yyreduce:
break;
case 100:
-#line 1585 "grammar.y"
+#line 1591 "grammar.y"
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner, (yyvsp[(1) - (1)].c_string), OP_COUNT, UNDEFINED);
@@ -3334,7 +3340,7 @@ yyreduce:
break;
case 101:
-#line 1597 "grammar.y"
+#line 1603 "grammar.y"
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner, (yyvsp[(1) - (4)].c_string), OP_OFFSET, UNDEFINED);
@@ -3349,7 +3355,7 @@ yyreduce:
break;
case 102:
-#line 1609 "grammar.y"
+#line 1615 "grammar.y"
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, 1, NULL, NULL);
@@ -3368,7 +3374,7 @@ yyreduce:
break;
case 103:
-#line 1625 "grammar.y"
+#line 1631 "grammar.y"
{
compiler->last_result = yr_parser_reduce_string_identifier(
yyscanner, (yyvsp[(1) - (4)].c_string), OP_LENGTH, UNDEFINED);
@@ -3383,7 +3389,7 @@ yyreduce:
break;
case 104:
-#line 1637 "grammar.y"
+#line 1643 "grammar.y"
{
compiler->last_result = yr_parser_emit_with_arg(
yyscanner, OP_PUSH, 1, NULL, NULL);
@@ -3402,7 +3408,7 @@ yyreduce:
break;
case 105:
-#line 1653 "grammar.y"
+#line 1659 "grammar.y"
{
if ((yyvsp[(1) - (1)].expression).type == EXPRESSION_TYPE_INTEGER) // loop identifier
{
@@ -3449,7 +3455,7 @@ yyreduce:
break;
case 106:
-#line 1697 "grammar.y"
+#line 1703 "grammar.y"
{
CHECK_TYPE((yyvsp[(2) - (2)].expression), EXPRESSION_TYPE_INTEGER | EXPRESSION_TYPE_FLOAT, "-");
@@ -3471,7 +3477,7 @@ yyreduce:
break;
case 107:
-#line 1716 "grammar.y"
+#line 1722 "grammar.y"
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "+", (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3492,7 +3498,7 @@ yyreduce:
break;
case 108:
-#line 1734 "grammar.y"
+#line 1740 "grammar.y"
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "-", (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3513,7 +3519,7 @@ yyreduce:
break;
case 109:
-#line 1752 "grammar.y"
+#line 1758 "grammar.y"
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "*", (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3534,7 +3540,7 @@ yyreduce:
break;
case 110:
-#line 1770 "grammar.y"
+#line 1776 "grammar.y"
{
compiler->last_result = yr_parser_reduce_operation(
yyscanner, "\\", (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression));
@@ -3563,7 +3569,7 @@ yyreduce:
break;
case 111:
-#line 1796 "grammar.y"
+#line 1802 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression), EXPRESSION_TYPE_INTEGER, "%");
CHECK_TYPE((yyvsp[(3) - (3)].expression), EXPRESSION_TYPE_INTEGER, "%");
@@ -3584,7 +3590,7 @@ yyreduce:
break;
case 112:
-#line 1814 "grammar.y"
+#line 1820 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression), EXPRESSION_TYPE_INTEGER, "^");
CHECK_TYPE((yyvsp[(3) - (3)].expression), EXPRESSION_TYPE_INTEGER, "^");
@@ -3597,7 +3603,7 @@ yyreduce:
break;
case 113:
-#line 1824 "grammar.y"
+#line 1830 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression), EXPRESSION_TYPE_INTEGER, "^");
CHECK_TYPE((yyvsp[(3) - (3)].expression), EXPRESSION_TYPE_INTEGER, "^");
@@ -3610,7 +3616,7 @@ yyreduce:
break;
case 114:
-#line 1834 "grammar.y"
+#line 1840 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression), EXPRESSION_TYPE_INTEGER, "|");
CHECK_TYPE((yyvsp[(3) - (3)].expression), EXPRESSION_TYPE_INTEGER, "|");
@@ -3623,7 +3629,7 @@ yyreduce:
break;
case 115:
-#line 1844 "grammar.y"
+#line 1850 "grammar.y"
{
CHECK_TYPE((yyvsp[(2) - (2)].expression), EXPRESSION_TYPE_INTEGER, "~");
@@ -3636,7 +3642,7 @@ yyreduce:
break;
case 116:
-#line 1854 "grammar.y"
+#line 1860 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression), EXPRESSION_TYPE_INTEGER, "<<");
CHECK_TYPE((yyvsp[(3) - (3)].expression), EXPRESSION_TYPE_INTEGER, "<<");
@@ -3649,7 +3655,7 @@ yyreduce:
break;
case 117:
-#line 1864 "grammar.y"
+#line 1870 "grammar.y"
{
CHECK_TYPE((yyvsp[(1) - (3)].expression), EXPRESSION_TYPE_INTEGER, ">>");
CHECK_TYPE((yyvsp[(3) - (3)].expression), EXPRESSION_TYPE_INTEGER, ">>");
@@ -3662,7 +3668,7 @@ yyreduce:
break;
case 118:
-#line 1874 "grammar.y"
+#line 1880 "grammar.y"
{
(yyval.expression) = (yyvsp[(1) - (1)].expression);
}
@@ -3670,7 +3676,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 3674 "grammar.c"
+#line 3680 "grammar.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3884,6 +3890,6 @@ yyreturn:
}
-#line 1879 "grammar.y"
+#line 1885 "grammar.y"
diff --git a/libyara/grammar.y b/libyara/grammar.y
index 846789c..96a6cb1 100644
--- a/libyara/grammar.y
+++ b/libyara/grammar.y
@@ -1456,6 +1456,8 @@ string_set
{
yr_parser_emit_with_arg(yyscanner, OP_PUSH, UNDEFINED, NULL, NULL);
yr_parser_emit_pushes_for_strings(yyscanner, "$*");
+
+ ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
;
@@ -1471,11 +1473,15 @@ string_enumeration_item
{
yr_parser_emit_pushes_for_strings(yyscanner, $1);
yr_free($1);
+
+ ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
| _STRING_IDENTIFIER_WITH_WILDCARD_
{
yr_parser_emit_pushes_for_strings(yyscanner, $1);
yr_free($1);
+
+ ERROR_IF(compiler->last_result != ERROR_SUCCESS);
}
;
--
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