diff options
author | delphij <delphij@FreeBSD.org> | 2016-01-05 05:25:16 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2016-01-05 05:25:16 +0000 |
commit | 03d374e3a6bf9b6f27de2a5eb994a1850de1e4fb (patch) | |
tree | 587451b5b5628b51a1932678fc08292d250617f9 /contrib/less/regexp.c | |
parent | ea7f4bcbda6247eed1adbc86025969a1c5cfa442 (diff) | |
parent | 479faf106b9c06110ca6358bfbd0ef45b838cbc8 (diff) | |
download | FreeBSD-src-03d374e3a6bf9b6f27de2a5eb994a1850de1e4fb.zip FreeBSD-src-03d374e3a6bf9b6f27de2a5eb994a1850de1e4fb.tar.gz |
MFV r293125: less v481.
MFC after: 1 month
Relnotes: yes
Diffstat (limited to 'contrib/less/regexp.c')
-rw-r--r-- | contrib/less/regexp.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/contrib/less/regexp.c b/contrib/less/regexp.c index 77ab611..fcf7c9a 100644 --- a/contrib/less/regexp.c +++ b/contrib/less/regexp.c @@ -243,7 +243,10 @@ char *exp; regcode = r->program; regc(MAGIC); if (reg(0, &flags) == NULL) + { + free(r); return(NULL); + } /* Dig out information for optimizations. */ r->regstart = '\0'; /* Worst-case defaults. */ @@ -274,7 +277,7 @@ char *exp; for (; scan != NULL; scan = regnext(scan)) if (OP(scan) == EXACTLY && ((int) strlen(OPERAND(scan))) >= len) { longest = OPERAND(scan); - len = strlen(OPERAND(scan)); + len = (int) strlen(OPERAND(scan)); } r->regmust = longest; r->regmlen = len; @@ -554,7 +557,7 @@ int *flagp; register char ender; regparse--; - len = strcspn(regparse, META); + len = (int) strcspn(regparse, META); if (len <= 0) FAIL("internal disaster"); ender = *(regparse+len); @@ -670,9 +673,9 @@ char *val; } if (OP(scan) == BACK) - offset = scan - val; + offset = (int) (scan - val); else - offset = val - scan; + offset = (int) (val - scan); *(scan+1) = (offset>>8)&0377; *(scan+2) = offset&0377; } @@ -870,7 +873,7 @@ char *prog; /* Inline the first character, for speed. */ if (*opnd != *reginput) return(0); - len = strlen(opnd); + len = (int) strlen(opnd); if (len > 1 && strncmp(opnd, reginput, len) != 0) return(0); reginput += len; @@ -1034,7 +1037,7 @@ char *p; opnd = OPERAND(p); switch (OP(p)) { case ANY: - count = strlen(scan); + count = (int) strlen(scan); scan += count; break; case EXACTLY: |