Merge branch 'vendor/AWK'
[dragonfly.git] / contrib / awk / run.c
index 916fcf5..b84d72a 100644 (file)
@@ -1210,13 +1210,13 @@ Cell *dopa2(Node **a, int n)    /* a[0], a[1] { a[2] } */
 Cell *split(Node **a, int nnn) /* split(a[0], a[1], a[2]); a[3] is type */
 {
        Cell *x = 0, *y, *ap;
-       char *s;
+       char *s, *origs;
        int sep;
        char *t, temp, num[50], *fs = 0;
        int n, tempstat, arg3type;
 
        y = execute(a[0]);      /* source string */
-       s = getsval(y);
+       origs = s = strdup(getsval(y));
        arg3type = ptoi(a[3]);
        if (a[2] == 0)          /* fs string */
                fs = *FS;
@@ -1336,6 +1336,7 @@ Cell *split(Node **a, int nnn)    /* split(a[0], a[1], a[2]); a[3] is type */
        }
        tempfree(ap);
        tempfree(y);
+       free(origs);
        if (a[2] != 0 && arg3type == STRING) {
                tempfree(x);
        }