From 36b7948d28cd5c6e9c0bd9523f613f455b3f2b29 Mon Sep 17 00:00:00 2001 From: dgaudet Date: Tue, 24 Jun 1997 00:11:10 +0000 Subject: [PATCH] Fix an off-by-1 bug in pregsub(). Reviewed by: Randy, Ralf Submitted by: Alexei Obtained from: git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/1.3@78346 13f79535-47bb-0310-9956-ffa450edef68 --- APACHE_1_2_X/src/CHANGES | 4 ++++ APACHE_1_2_X/src/main/util.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/APACHE_1_2_X/src/CHANGES b/APACHE_1_2_X/src/CHANGES index 5bddf6ab07d..196941227d4 100644 --- a/APACHE_1_2_X/src/CHANGES +++ b/APACHE_1_2_X/src/CHANGES @@ -1,3 +1,7 @@ +Changes with Apache 1.2.1 + + *) pregsub had an off-by-1 in its error checking code. [Alexei Kosut] + Changes with Apache 1.2 Changes with Apache 1.2b11 diff --git a/APACHE_1_2_X/src/main/util.c b/APACHE_1_2_X/src/main/util.c index bd853d853e2..e21adca0d72 100644 --- a/APACHE_1_2_X/src/main/util.c +++ b/APACHE_1_2_X/src/main/util.c @@ -232,7 +232,7 @@ char *pregsub(pool *p, const char *input, const char *source, if (c == '\\' && (*src == '$' || *src == '&')) c = *src++; len++; - } else if (no <= nmatch && pmatch[no].rm_so < pmatch[no].rm_eo) { + } else if (no < nmatch && pmatch[no].rm_so < pmatch[no].rm_eo) { len += pmatch[no].rm_eo - pmatch[no].rm_so; } @@ -256,7 +256,7 @@ char *pregsub(pool *p, const char *input, const char *source, if (c == '\\' && (*src == '$' || *src == '&')) c = *src++; *dst++ = c; - } else if (no <= nmatch && pmatch[no].rm_so < pmatch[no].rm_eo) { + } else if (no < nmatch && pmatch[no].rm_so < pmatch[no].rm_eo) { len = pmatch[no].rm_eo - pmatch[no].rm_so; strncpy(dst, source + pmatch[no].rm_so, len); dst += len; -- 2.47.2