=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/awk/b.c,v retrieving revision 1.24 retrieving revision 1.25 diff -c -r1.24 -r1.25 *** src/usr.bin/awk/b.c 2020/06/10 21:02:19 1.24 --- src/usr.bin/awk/b.c 2020/06/10 21:02:33 1.25 *************** *** 1,4 **** ! /* $OpenBSD: b.c,v 1.24 2020/06/10 21:02:19 millert Exp $ */ /**************************************************************** Copyright (C) Lucent Technologies 1997 All Rights Reserved --- 1,4 ---- ! /* $OpenBSD: b.c,v 1.25 2020/06/10 21:02:33 millert Exp $ */ /**************************************************************** Copyright (C) Lucent Technologies 1997 All Rights Reserved *************** *** 35,42 **** #include "awk.h" #include "ytab.h" - #define HAT (NCHARS+2) /* matches ^ in regular expr */ - /* NCHARS is 2**n */ #define MAXLIN 22 #define type(v) (v)->nobj /* badly overloaded here */ --- 35,40 ---- *************** *** 89,99 **** fa *pfa; static int now = 1; ! if (setvec == 0) { /* first time through any RE */ maxsetvec = MAXLIN; setvec = (int *) calloc(maxsetvec, sizeof(int)); tmpset = (int *) calloc(maxsetvec, sizeof(int)); ! if (setvec == 0 || tmpset == 0) overflo("out of space initializing makedfa"); } --- 87,97 ---- fa *pfa; static int now = 1; ! if (setvec == NULL) { /* first time through any RE */ maxsetvec = MAXLIN; setvec = (int *) calloc(maxsetvec, sizeof(int)); tmpset = (int *) calloc(maxsetvec, sizeof(int)); ! if (setvec == NULL || tmpset == NULL) overflo("out of space initializing makedfa"); } *************** *** 169,175 **** f->out[2] = 0; f->reset = 0; k = *(f->re[0].lfollow); ! xfree(f->posns[2]); if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) overflo("out of space in makeinit"); for (i=0; i <= k; i++) { --- 167,173 ---- f->out[2] = 0; f->reset = 0; k = *(f->re[0].lfollow); ! xfree(f->posns[2]); if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) overflo("out of space in makeinit"); for (i=0; i <= k; i++) { *************** *** 272,279 **** if ((c = *p++) == 't') c = '\t'; - else if (c == 'v') - c = '\v'; else if (c == 'n') c = '\n'; else if (c == 'f') --- 270,275 ---- *************** *** 282,289 **** c = '\r'; else if (c == 'b') c = '\b'; else if (c == 'a') ! c = '\007'; else if (c == '\\') c = '\\'; else if (c == 'x') { /* hexadecimal goo follows */ --- 278,287 ---- c = '\r'; else if (c == 'b') c = '\b'; + else if (c == 'v') + c = '\v'; else if (c == 'a') ! c = '\a'; else if (c == '\\') c = '\\'; else if (c == 'x') { /* hexadecimal goo follows */ *************** *** 307,317 **** int i, c, c2; uschar *p = (uschar *) argp; uschar *op, *bp; ! static uschar *buf = 0; static int bufsz = 100; op = p; ! if (buf == 0 && (buf = (uschar *) malloc(bufsz)) == NULL) FATAL("out of space for character class [%.10s...] 1", p); bp = buf; for (i = 0; (c = *p++) != 0; ) { --- 305,315 ---- int i, c, c2; uschar *p = (uschar *) argp; uschar *op, *bp; ! static uschar *buf = NULL; static int bufsz = 100; op = p; ! if (buf == NULL && (buf = (uschar *) malloc(bufsz)) == NULL) FATAL("out of space for character class [%.10s...] 1", p); bp = buf; for (i = 0; (c = *p++) != 0; ) { *************** *** 368,374 **** 4 * sizeof(int)); tmpset = reallocarray(tmpset, maxsetvec, 4 * sizeof(int)); ! if (setvec == 0 || tmpset == 0) overflo("out of space in cfoll()"); maxsetvec *= 4; } --- 366,372 ---- 4 * sizeof(int)); tmpset = reallocarray(tmpset, maxsetvec, 4 * sizeof(int)); ! if (setvec == NULL || tmpset == NULL) overflo("out of space in cfoll()"); maxsetvec *= 4; } *************** *** 411,417 **** 4 * sizeof(int)); tmpset = reallocarray(tmpset, maxsetvec, 4 * sizeof(int)); ! if (setvec == 0 || tmpset == 0) overflo("out of space in first()"); maxsetvec *= 4; } --- 409,415 ---- 4 * sizeof(int)); tmpset = reallocarray(tmpset, maxsetvec, 4 * sizeof(int)); ! if (setvec == NULL || tmpset == NULL) overflo("out of space in first()"); maxsetvec *= 4; } *************** *** 551,557 **** if (f->reset) { for (i = 2; i <= f->curstat; i++) xfree(f->posns[i]); ! k = *f->posns[0]; if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) overflo("out of space in pmatch"); for (i = 0; i <= k; i++) --- 549,555 ---- if (f->reset) { for (i = 2; i <= f->curstat; i++) xfree(f->posns[i]); ! k = *f->posns[0]; if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) overflo("out of space in pmatch"); for (i = 0; i <= k; i++) *************** *** 608,614 **** if (f->reset) { for (i = 2; i <= f->curstat; i++) xfree(f->posns[i]); ! k = *f->posns[0]; if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) overflo("out of state space"); for (i = 0; i <= k; i++) --- 606,612 ---- if (f->reset) { for (i = 2; i <= f->curstat; i++) xfree(f->posns[i]); ! k = *f->posns[0]; if ((f->posns[2] = (int *) calloc(k+1, sizeof(int))) == NULL) overflo("out of state space"); for (i = 0; i <= k; i++) *************** *** 913,919 **** { int c, n; int cflag; ! static uschar *buf = 0; static int bufsz = 100; uschar *bp; struct charclass *cc; --- 911,917 ---- { int c, n; int cflag; ! static uschar *buf = NULL; static int bufsz = 100; uschar *bp; struct charclass *cc; *************** *** 952,959 **** default: rlxval = c; return CHAR; ! case '[': ! if (buf == 0 && (buf = (uschar *) malloc(bufsz)) == NULL) FATAL("out of space in reg expr %.10s..", lastre); bp = buf; if (*prestr == '^') { --- 950,957 ---- default: rlxval = c; return CHAR; ! case '[': ! if (buf == NULL && (buf = (uschar *) malloc(bufsz)) == NULL) FATAL("out of space in reg expr %.10s..", lastre); bp = buf; if (*prestr == '^') { *************** *** 1128,1134 **** while (f->accept >= maxsetvec) { /* guessing here! */ setvec = reallocarray(setvec, maxsetvec, 4 * sizeof(int)); tmpset = reallocarray(tmpset, maxsetvec, 4 * sizeof(int)); ! if (setvec == 0 || tmpset == 0) overflo("out of space in cgoto()"); maxsetvec *= 4; } --- 1126,1132 ---- while (f->accept >= maxsetvec) { /* guessing here! */ setvec = reallocarray(setvec, maxsetvec, 4 * sizeof(int)); tmpset = reallocarray(tmpset, maxsetvec, 4 * sizeof(int)); ! if (setvec == NULL || tmpset == NULL) overflo("out of space in cgoto()"); maxsetvec *= 4; }