[Forensics-changes] [yara] 170/192: Move variable definitions to the beginning of code block

Hilko Bengen bengen at moszumanska.debian.org
Sat Jul 1 10:32:00 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 eef165b9a434e2292df3d2a2a83d3d44e9d14091
Author: plusvic <plusvic at gmail.com>
Date:   Mon May 8 16:51:00 2017 +0200

    Move variable definitions to the beginning of code block
---
 libyara/lexer.c          |   3 +-
 libyara/modules/dotnet.c |   4 +-
 libyara/modules/elf.c    |   6 +--
 libyara/modules/pe.c     |  25 +++++----
 libyara/parser.c         |   4 +-
 libyara/re_grammar.c     | 134 +++++++++++++++++++++++++----------------------
 libyara/re_grammar.y     |  20 +++++--
 7 files changed, 113 insertions(+), 83 deletions(-)

diff --git a/libyara/lexer.c b/libyara/lexer.c
index c3ec96c..a60392b 100644
--- a/libyara/lexer.c
+++ b/libyara/lexer.c
@@ -3252,6 +3252,7 @@ int yr_lex_parse_rules_fd(
   YR_COMPILER* compiler)
 {
   yyscan_t yyscanner;
+  char buf[1024];
 
   compiler->errors = 0;
 
@@ -3264,8 +3265,6 @@ int yr_lex_parse_rules_fd(
   yydebug = 1;
   #endif
 
-  char buf[1024];
-
   yara_yyset_extra(compiler,yyscanner);
   while (1)
   {
diff --git a/libyara/modules/dotnet.c b/libyara/modules/dotnet.c
index 9041ab9..e385650 100644
--- a/libyara/modules/dotnet.c
+++ b/libyara/modules/dotnet.c
@@ -1652,12 +1652,14 @@ int module_load(
 
   foreach_memory_block(iterator, block)
   {
+    PIMAGE_NT_HEADERS32 pe_header;
+
     block_data = block->fetch_data(block);
 
     if (block_data == NULL)
       continue;
 
-    PIMAGE_NT_HEADERS32 pe_header = pe_get_header(block_data, block->size);
+    pe_header = pe_get_header(block_data, block->size);
 
     if (pe_header != NULL)
     {
diff --git a/libyara/modules/elf.c b/libyara/modules/elf.c
index e4fb8f8..bd2f2c6 100644
--- a/libyara/modules/elf.c
+++ b/libyara/modules/elf.c
@@ -203,6 +203,9 @@ void parse_elf_header_##bits##_##bo(                                           \
   {                                                                            \
     char* str_table = NULL;                                                    \
                                                                                \
+    elf##bits##_section_header_t* symtab = NULL;                               \
+    elf##bits##_section_header_t* sym_strtab = NULL;                           \
+                                                                               \
     section = (elf##bits##_section_header_t*)                                  \
       ((uint8_t*) elf + yr_##bo##bits##toh(elf->sh_offset));                   \
                                                                                \
@@ -213,9 +216,6 @@ void parse_elf_header_##bits##_##bo(                                           \
           section[yr_##bo##16toh(elf->sh_str_table_index)].offset);            \
     }                                                                          \
                                                                                \
-    elf##bits##_section_header_t* symtab = NULL;                               \
-    elf##bits##_section_header_t* sym_strtab = NULL;                           \
-                                                                               \
     for (i = 0; i < yr_##bo##16toh(elf->sh_entry_count); i++)                  \
     {                                                                          \
       set_integer(yr_##bo##32toh(section->type), elf_obj,                      \
diff --git a/libyara/modules/pe.c b/libyara/modules/pe.c
index a89f5fc..2332aa6 100644
--- a/libyara/modules/pe.c
+++ b/libyara/modules/pe.c
@@ -1001,8 +1001,11 @@ IMPORT_EXPORT_FUNCTION* pe_parse_exports(
 
   for (i = 0; i < yr_le32toh(exports->NumberOfFunctions); i++)
   {
-    char* name;
+    IMPORT_EXPORT_FUNCTION* exported_func;
+
     uint16_t ordinal = 0;
+    char* name;
+
     offset = pe_rva_to_offset(pe, names[i]);
 
     if (offset < 0)
@@ -1017,7 +1020,7 @@ IMPORT_EXPORT_FUNCTION* pe_parse_exports(
     ordinal = yr_le16toh(ordinals[i]);
 
     // Now add it to the list...
-    IMPORT_EXPORT_FUNCTION* exported_func = (IMPORT_EXPORT_FUNCTION*)
+    exported_func = (IMPORT_EXPORT_FUNCTION*)
         yr_calloc(1, sizeof(IMPORT_EXPORT_FUNCTION));
 
     if (exported_func == NULL)
@@ -1051,7 +1054,9 @@ void pe_parse_certificates(
     PE* pe)
 {
   int i, counter = 0;
+
   uint8_t* eod;
+  uintptr_t end;
 
   PWIN_CERTIFICATE win_cert;
 
@@ -1139,6 +1144,7 @@ void pe_parse_certificates(
 
     for (i = 0; i < sk_X509_num(certs); i++)
     {
+      time_t date_time;
       const char* sig_alg;
       char buffer[256];
       int bytes;
@@ -1250,7 +1256,7 @@ void pe_parse_certificates(
         }
       }
 
-      time_t date_time = ASN1_get_time_t(X509_get_notBefore(cert));
+      date_time = ASN1_get_time_t(X509_get_notBefore(cert));
       set_integer(date_time, pe->object, "signatures[%i].not_before", counter);
 
       date_time = ASN1_get_time_t(X509_get_notAfter(cert));
@@ -1259,10 +1265,7 @@ void pe_parse_certificates(
       counter++;
     }
 
-    uintptr_t end = \
-        (uintptr_t)((uint8_t *) win_cert) + \
-        yr_le32toh(win_cert->Length);
-
+    end = (uintptr_t)((uint8_t *) win_cert) + yr_le32toh(win_cert->Length);
     win_cert = (PWIN_CERTIFICATE)(end + (end % 8));
 
     BIO_free(cert_bio);
@@ -1520,12 +1523,14 @@ define_function(exports)
   YR_OBJECT* module = module();
   PE* pe = (PE*) module->data;
 
+  IMPORT_EXPORT_FUNCTION* exported_func;
+
   // If not a PE, return UNDEFINED.
 
   if (pe == NULL)
     return_integer(UNDEFINED);
 
-  IMPORT_EXPORT_FUNCTION* exported_func = pe->exported_functions;
+  exported_func = pe->exported_functions;
 
   while (exported_func != NULL)
   {
@@ -1546,10 +1551,12 @@ define_function(exports_ordinal)
   YR_OBJECT* module = module();
   PE* pe = (PE*) module->data;
 
+  IMPORT_EXPORT_FUNCTION* exported_func;
+
   if (!pe)
     return_integer(UNDEFINED);
 
-  IMPORT_EXPORT_FUNCTION* exported_func = pe->exported_functions;
+  exported_func = pe->exported_functions;
 
   while (exported_func != NULL)
   {
diff --git a/libyara/parser.c b/libyara/parser.c
index 27ead97..f20df7d 100644
--- a/libyara/parser.c
+++ b/libyara/parser.c
@@ -116,10 +116,12 @@ int yr_parser_emit_with_arg_reloc(
     void** argument_address)
 {
   int64_t* ptr = NULL;
+  int result;
+
   DECLARE_REFERENCE(void*, argument) a;
   a.argument = argument;
 
-  int result = yr_arena_write_data(
+  result = yr_arena_write_data(
       yyget_extra(yyscanner)->code_arena,
       &instruction,
       sizeof(uint8_t),
diff --git a/libyara/re_grammar.c b/libyara/re_grammar.c
index dd148e7..4122c7d 100644
--- a/libyara/re_grammar.c
+++ b/libyara/re_grammar.c
@@ -491,10 +491,10 @@ static const yytype_uint8 yytranslate[] =
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   104,   104,   109,   113,   117,   128,   144,   148,   159,
-     171,   185,   197,   211,   234,   258,   280,   303,   307,   313,
-     319,   325,   334,   338,   344,   352,   358,   364,   370,   376,
-     382,   388
+       0,   104,   104,   109,   113,   117,   128,   146,   150,   161,
+     175,   191,   205,   221,   244,   268,   290,   313,   317,   323,
+     329,   335,   344,   348,   354,   362,   368,   374,   380,   386,
+     392,   398
 };
 #endif
 
@@ -1365,9 +1365,11 @@ yyreduce:
   case 6:
 #line 129 "re_grammar.y" /* yacc.c:1646  */
     {
+        RE_NODE* node;
+
         mark_as_not_fast_regexp();
 
-        RE_NODE* node = yr_re_node_create(RE_NODE_EMPTY, NULL, NULL);
+        node = yr_re_node_create(RE_NODE_EMPTY, NULL, NULL);
 
         DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[-1].re_node));
         ERROR_IF(node == NULL, ERROR_INSUFFICIENT_MEMORY);
@@ -1376,19 +1378,19 @@ yyreduce:
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1380 "re_grammar.c" /* yacc.c:1646  */
+#line 1382 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 7:
-#line 145 "re_grammar.y" /* yacc.c:1646  */
+#line 147 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = (yyvsp[0].re_node);
       }
-#line 1388 "re_grammar.c" /* yacc.c:1646  */
+#line 1390 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 8:
-#line 149 "re_grammar.y" /* yacc.c:1646  */
+#line 151 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_CONCAT, (yyvsp[-1].re_node), (yyvsp[0].re_node));
 
@@ -1396,15 +1398,17 @@ yyreduce:
         DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[0].re_node));
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1400 "re_grammar.c" /* yacc.c:1646  */
+#line 1402 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 9:
-#line 160 "re_grammar.y" /* yacc.c:1646  */
+#line 162 "re_grammar.y" /* yacc.c:1646  */
     {
+        RE_AST* re_ast;
+
         mark_as_not_fast_regexp();
 
-        RE_AST* re_ast = yyget_extra(yyscanner);
+        re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_GREEDY;
 
         (yyval.re_node) = yr_re_node_create(RE_NODE_STAR, (yyvsp[-1].re_node), NULL);
@@ -1412,15 +1416,17 @@ yyreduce:
         DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[-1].re_node));
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1416 "re_grammar.c" /* yacc.c:1646  */
+#line 1420 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 10:
-#line 172 "re_grammar.y" /* yacc.c:1646  */
+#line 176 "re_grammar.y" /* yacc.c:1646  */
     {
+        RE_AST* re_ast;
+
         mark_as_not_fast_regexp();
 
-        RE_AST* re_ast = yyget_extra(yyscanner);
+        re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_UNGREEDY;
 
         (yyval.re_node) = yr_re_node_create(RE_NODE_STAR, (yyvsp[-2].re_node), NULL);
@@ -1430,15 +1436,17 @@ yyreduce:
 
         (yyval.re_node)->greedy = FALSE;
       }
-#line 1434 "re_grammar.c" /* yacc.c:1646  */
+#line 1440 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 11:
-#line 186 "re_grammar.y" /* yacc.c:1646  */
+#line 192 "re_grammar.y" /* yacc.c:1646  */
     {
+        RE_AST* re_ast;
+
         mark_as_not_fast_regexp();
 
-        RE_AST* re_ast = yyget_extra(yyscanner);
+        re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_GREEDY;
 
         (yyval.re_node) = yr_re_node_create(RE_NODE_PLUS, (yyvsp[-1].re_node), NULL);
@@ -1446,15 +1454,17 @@ yyreduce:
         DESTROY_NODE_IF((yyval.re_node) == NULL, (yyvsp[-1].re_node));
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1450 "re_grammar.c" /* yacc.c:1646  */
+#line 1458 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 12:
-#line 198 "re_grammar.y" /* yacc.c:1646  */
+#line 206 "re_grammar.y" /* yacc.c:1646  */
     {
+        RE_AST* re_ast;
+
         mark_as_not_fast_regexp();
 
-        RE_AST* re_ast = yyget_extra(yyscanner);
+        re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_UNGREEDY;
 
         (yyval.re_node) = yr_re_node_create(RE_NODE_PLUS, (yyvsp[-2].re_node), NULL);
@@ -1464,11 +1474,11 @@ yyreduce:
 
         (yyval.re_node)->greedy = FALSE;
       }
-#line 1468 "re_grammar.c" /* yacc.c:1646  */
+#line 1478 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 13:
-#line 212 "re_grammar.y" /* yacc.c:1646  */
+#line 222 "re_grammar.y" /* yacc.c:1646  */
     {
         RE_AST* re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_GREEDY;
@@ -1491,11 +1501,11 @@ yyreduce:
         (yyval.re_node)->start = 0;
         (yyval.re_node)->end = 1;
       }
-#line 1495 "re_grammar.c" /* yacc.c:1646  */
+#line 1505 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 14:
-#line 235 "re_grammar.y" /* yacc.c:1646  */
+#line 245 "re_grammar.y" /* yacc.c:1646  */
     {
         RE_AST* re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_UNGREEDY;
@@ -1519,11 +1529,11 @@ yyreduce:
         (yyval.re_node)->end = 1;
         (yyval.re_node)->greedy = FALSE;
       }
-#line 1523 "re_grammar.c" /* yacc.c:1646  */
+#line 1533 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 15:
-#line 259 "re_grammar.y" /* yacc.c:1646  */
+#line 269 "re_grammar.y" /* yacc.c:1646  */
     {
         RE_AST* re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_GREEDY;
@@ -1545,11 +1555,11 @@ yyreduce:
         (yyval.re_node)->start = (yyvsp[0].range) & 0xFFFF;;
         (yyval.re_node)->end = (yyvsp[0].range) >> 16;;
       }
-#line 1549 "re_grammar.c" /* yacc.c:1646  */
+#line 1559 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 16:
-#line 281 "re_grammar.y" /* yacc.c:1646  */
+#line 291 "re_grammar.y" /* yacc.c:1646  */
     {
         RE_AST* re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_UNGREEDY;
@@ -1572,77 +1582,77 @@ yyreduce:
         (yyval.re_node)->end = (yyvsp[-1].range) >> 16;;
         (yyval.re_node)->greedy = FALSE;
       }
-#line 1576 "re_grammar.c" /* yacc.c:1646  */
+#line 1586 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 17:
-#line 304 "re_grammar.y" /* yacc.c:1646  */
+#line 314 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = (yyvsp[0].re_node);
       }
-#line 1584 "re_grammar.c" /* yacc.c:1646  */
+#line 1594 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 18:
-#line 308 "re_grammar.y" /* yacc.c:1646  */
+#line 318 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_WORD_BOUNDARY, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1594 "re_grammar.c" /* yacc.c:1646  */
+#line 1604 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 19:
-#line 314 "re_grammar.y" /* yacc.c:1646  */
+#line 324 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_NON_WORD_BOUNDARY, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1604 "re_grammar.c" /* yacc.c:1646  */
+#line 1614 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 320 "re_grammar.y" /* yacc.c:1646  */
+#line 330 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_ANCHOR_START, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1614 "re_grammar.c" /* yacc.c:1646  */
+#line 1624 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 21:
-#line 326 "re_grammar.y" /* yacc.c:1646  */
+#line 336 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_ANCHOR_END, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1624 "re_grammar.c" /* yacc.c:1646  */
+#line 1634 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 22:
-#line 335 "re_grammar.y" /* yacc.c:1646  */
+#line 345 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = (yyvsp[-1].re_node);
       }
-#line 1632 "re_grammar.c" /* yacc.c:1646  */
+#line 1642 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 23:
-#line 339 "re_grammar.y" /* yacc.c:1646  */
+#line 349 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_ANY, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1642 "re_grammar.c" /* yacc.c:1646  */
+#line 1652 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 24:
-#line 345 "re_grammar.y" /* yacc.c:1646  */
+#line 355 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_LITERAL, NULL, NULL);
 
@@ -1650,71 +1660,71 @@ yyreduce:
 
         (yyval.re_node)->value = (yyvsp[0].integer);
       }
-#line 1654 "re_grammar.c" /* yacc.c:1646  */
+#line 1664 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 25:
-#line 353 "re_grammar.y" /* yacc.c:1646  */
+#line 363 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_WORD_CHAR, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1664 "re_grammar.c" /* yacc.c:1646  */
+#line 1674 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 26:
-#line 359 "re_grammar.y" /* yacc.c:1646  */
+#line 369 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_NON_WORD_CHAR, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1674 "re_grammar.c" /* yacc.c:1646  */
+#line 1684 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 27:
-#line 365 "re_grammar.y" /* yacc.c:1646  */
+#line 375 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_SPACE, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1684 "re_grammar.c" /* yacc.c:1646  */
+#line 1694 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 28:
-#line 371 "re_grammar.y" /* yacc.c:1646  */
+#line 381 "re_grammar.y" /* yacc.c:1646  */
     {
          (yyval.re_node) = yr_re_node_create(RE_NODE_NON_SPACE, NULL, NULL);
 
          ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1694 "re_grammar.c" /* yacc.c:1646  */
+#line 1704 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 29:
-#line 377 "re_grammar.y" /* yacc.c:1646  */
+#line 387 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_DIGIT, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1704 "re_grammar.c" /* yacc.c:1646  */
+#line 1714 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 30:
-#line 383 "re_grammar.y" /* yacc.c:1646  */
+#line 393 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_NON_DIGIT, NULL, NULL);
 
         ERROR_IF((yyval.re_node) == NULL, ERROR_INSUFFICIENT_MEMORY);
       }
-#line 1714 "re_grammar.c" /* yacc.c:1646  */
+#line 1724 "re_grammar.c" /* yacc.c:1646  */
     break;
 
   case 31:
-#line 389 "re_grammar.y" /* yacc.c:1646  */
+#line 399 "re_grammar.y" /* yacc.c:1646  */
     {
         (yyval.re_node) = yr_re_node_create(RE_NODE_CLASS, NULL, NULL);
 
@@ -1722,11 +1732,11 @@ yyreduce:
 
         (yyval.re_node)->class_vector = (yyvsp[0].class_vector);
       }
-#line 1726 "re_grammar.c" /* yacc.c:1646  */
+#line 1736 "re_grammar.c" /* yacc.c:1646  */
     break;
 
 
-#line 1730 "re_grammar.c" /* yacc.c:1646  */
+#line 1740 "re_grammar.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -1954,5 +1964,5 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 397 "re_grammar.y" /* yacc.c:1906  */
+#line 407 "re_grammar.y" /* yacc.c:1906  */
 
diff --git a/libyara/re_grammar.y b/libyara/re_grammar.y
index 391dd49..9a22b44 100644
--- a/libyara/re_grammar.y
+++ b/libyara/re_grammar.y
@@ -127,9 +127,11 @@ alternative
       }
     | alternative '|'
       {
+        RE_NODE* node;
+
         mark_as_not_fast_regexp();
 
-        RE_NODE* node = yr_re_node_create(RE_NODE_EMPTY, NULL, NULL);
+        node = yr_re_node_create(RE_NODE_EMPTY, NULL, NULL);
 
         DESTROY_NODE_IF($$ == NULL, $1);
         ERROR_IF(node == NULL, ERROR_INSUFFICIENT_MEMORY);
@@ -158,9 +160,11 @@ concatenation
 repeat
     : single '*'
       {
+        RE_AST* re_ast;
+
         mark_as_not_fast_regexp();
 
-        RE_AST* re_ast = yyget_extra(yyscanner);
+        re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_GREEDY;
 
         $$ = yr_re_node_create(RE_NODE_STAR, $1, NULL);
@@ -170,9 +174,11 @@ repeat
       }
     | single '*' '?'
       {
+        RE_AST* re_ast;
+
         mark_as_not_fast_regexp();
 
-        RE_AST* re_ast = yyget_extra(yyscanner);
+        re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_UNGREEDY;
 
         $$ = yr_re_node_create(RE_NODE_STAR, $1, NULL);
@@ -184,9 +190,11 @@ repeat
       }
     | single '+'
       {
+        RE_AST* re_ast;
+
         mark_as_not_fast_regexp();
 
-        RE_AST* re_ast = yyget_extra(yyscanner);
+        re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_GREEDY;
 
         $$ = yr_re_node_create(RE_NODE_PLUS, $1, NULL);
@@ -196,9 +204,11 @@ repeat
       }
     | single '+' '?'
       {
+        RE_AST* re_ast;
+
         mark_as_not_fast_regexp();
 
-        RE_AST* re_ast = yyget_extra(yyscanner);
+        re_ast = yyget_extra(yyscanner);
         re_ast->flags |= RE_FLAGS_UNGREEDY;
 
         $$ = yr_re_node_create(RE_NODE_PLUS, $1, NULL);

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