]> granicus.if.org Git - vim/commitdiff
updated for version 7.3.1120 v7.3.1120
authorBram Moolenaar <Bram@vim.org>
Wed, 5 Jun 2013 14:33:10 +0000 (16:33 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 5 Jun 2013 14:33:10 +0000 (16:33 +0200)
Problem:    Crash when regexp logging is enabled.
Solution:   Avoid using NULL pointers. Advance over count argument.

src/regexp.c
src/regexp_nfa.c
src/version.c

index 853d2557375bf99db90affdc06906054ebfbfd0e..bf640fce2a161cc30bdffe49f966f00c656be0f3 100644 (file)
@@ -6538,10 +6538,16 @@ regdump(pattern, r)
            end = next;
        if (op == BRACE_LIMITS)
        {
-           /* Two short ints */
+           /* Two ints */
            fprintf(f, " minval %ld, maxval %ld", OPERAND_MIN(s), OPERAND_MAX(s));
            s += 8;
        }
+       else if (op == BEHIND || op == NOBEHIND)
+       {
+           /* one int */
+           fprintf(f, " count %ld", OPERAND_MIN(s));
+           s += 4;
+       }
        s += 3;
        if (op == ANYOF || op == ANYOF + ADD_NL
                || op == ANYBUT || op == ANYBUT + ADD_NL
index 4dea47c77e7b0eb187d7375e7672ddcff72cc833..5873cfcc10282da2e17e41a0deb3a809f9e8933a 100644 (file)
@@ -2960,10 +2960,15 @@ log_subexpr(sub)
                    sub->list.multi[j].end.col,
                    (int)sub->list.multi[j].end.lnum);
        else
+       {
+           char *s = (char *)sub->list.line[j].start;
+           char *e = (char *)sub->list.line[j].end;
+
            fprintf(log_fd, "\n *** group %d, start: \"%s\", end: \"%s\"",
                    j,
-                   (char *)sub->list.line[j].start,
-                   (char *)sub->list.line[j].end);
+                   s == NULL ? "NULL" : s,
+                   e == NULL ? "NULL" : e);
+       }
     fprintf(log_fd, "\n");
 }
 #endif
index 8bb135a332b585a75f1b2287b8816d66d8839d34..f6585e1f26b47eb8ad62901773609c8856ca3b85 100644 (file)
@@ -728,6 +728,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1120,
 /**/
     1119,
 /**/