diff options
Diffstat (limited to '')
-rw-r--r-- | www/apache20/files/patch-server__util_pcre.c | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/www/apache20/files/patch-server__util_pcre.c b/www/apache20/files/patch-server__util_pcre.c deleted file mode 100644 index c47d1a4f1bbb..000000000000 --- a/www/apache20/files/patch-server__util_pcre.c +++ /dev/null @@ -1,228 +0,0 @@ ---- ./server/util_pcre.c.orig 2010-10-21 05:40:53.646625433 +0000 -+++ ./server/util_pcre.c 2010-10-21 05:40:53.647626679 +0000 -@@ -0,0 +1,225 @@ -+/************************************************* -+* Perl-Compatible Regular Expressions * -+*************************************************/ -+ -+/* -+This is a library of functions to support regular expressions whose syntax -+and semantics are as close as possible to those of the Perl 5 language. See -+the file Tech.Notes for some information on the internals. -+ -+This module is a wrapper that provides a POSIX API to the underlying PCRE -+functions. -+ -+Written by: Philip Hazel <ph10@cam.ac.uk> -+ -+ Copyright (c) 1997-2004 University of Cambridge -+ -+----------------------------------------------------------------------------- -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are met: -+ -+ * Redistributions of source code must retain the above copyright notice, -+ this list of conditions and the following disclaimer. -+ -+ * Redistributions in binary form must reproduce the above copyright -+ notice, this list of conditions and the following disclaimer in the -+ documentation and/or other materials provided with the distribution. -+ -+ * Neither the name of the University of Cambridge nor the names of its -+ contributors may be used to endorse or promote products derived from -+ this software without specific prior written permission. -+ -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -+POSSIBILITY OF SUCH DAMAGE. -+----------------------------------------------------------------------------- -+*/ -+ -+#include "apr.h" -+#include "apr_strings.h" -+ -+#define APR_WANT_STRFUNC -+#include "apr_want.h" -+ -+#include "ap_regex.h" -+#include "pcre.h" -+ -+#ifndef POSIX_MALLOC_THRESHOLD -+#define POSIX_MALLOC_THRESHOLD (10) -+#endif -+ -+/* Table of error strings corresponding to POSIX error codes; must be -+ * kept in synch with include/ap_regex.h's AP_REG_E* definitions. */ -+ -+static const char *const pstring[] = { -+ "", /* Dummy for value 0 */ -+ "internal error", /* AP_REG_ASSERT */ -+ "failed to get memory", /* AP_REG_ESPACE */ -+ "bad argument", /* AP_REG_INVARG */ -+ "match failed" /* AP_REG_NOMATCH */ -+}; -+ -+AP_DECLARE(size_t) ap_regerror(int errcode, const ap_regex_t *preg, -+ char *errbuf, size_t errbuf_size) -+{ -+const char *message, *addmessage; -+size_t length, addlength; -+ -+message = (errcode >= (int)(sizeof(pstring)/sizeof(char *)))? -+ "unknown error code" : pstring[errcode]; -+length = strlen(message) + 1; -+ -+addmessage = " at offset "; -+addlength = (preg != NULL && (int)preg->re_erroffset != -1)? -+ strlen(addmessage) + 6 : 0; -+ -+if (errbuf_size > 0) -+ { -+ if (addlength > 0 && errbuf_size >= length + addlength) -+ apr_snprintf(errbuf, sizeof errbuf, -+ "%s%s%-6d", message, addmessage, (int)preg->re_erroffset); -+ else -+ { -+ strncpy(errbuf, message, errbuf_size - 1); -+ errbuf[errbuf_size-1] = 0; -+ } -+ } -+ -+return length + addlength; -+} -+ -+ -+ -+ -+/************************************************* -+* Free store held by a regex * -+*************************************************/ -+ -+AP_DECLARE(void) ap_regfree(ap_regex_t *preg) -+{ -+(pcre_free)(preg->re_pcre); -+} -+ -+ -+ -+ -+/************************************************* -+* Compile a regular expression * -+*************************************************/ -+ -+/* -+Arguments: -+ preg points to a structure for recording the compiled expression -+ pattern the pattern to compile -+ cflags compilation flags -+ -+Returns: 0 on success -+ various non-zero codes on failure -+*/ -+ -+AP_DECLARE(int) ap_regcomp(ap_regex_t *preg, const char *pattern, int cflags) -+{ -+const char *errorptr; -+int erroffset; -+int options = 0; -+ -+if ((cflags & AP_REG_ICASE) != 0) options |= PCRE_CASELESS; -+if ((cflags & AP_REG_NEWLINE) != 0) options |= PCRE_MULTILINE; -+ -+preg->re_pcre = pcre_compile(pattern, options, &errorptr, &erroffset, NULL); -+preg->re_erroffset = erroffset; -+ -+if (preg->re_pcre == NULL) return AP_REG_INVARG; -+ -+pcre_fullinfo((const pcre *)preg->re_pcre, NULL, -+ PCRE_INFO_CAPTURECOUNT, &(preg->re_nsub)); -+return 0; -+} -+ -+ -+ -+/************************************************* -+* Match a regular expression * -+*************************************************/ -+ -+/* Unfortunately, PCRE requires 3 ints of working space for each captured -+substring, so we have to get and release working store instead of just using -+the POSIX structures as was done in earlier releases when PCRE needed only 2 -+ints. However, if the number of possible capturing brackets is small, use a -+block of store on the stack, to reduce the use of malloc/free. The threshold is -+in a macro that can be changed at configure time. */ -+ -+AP_DECLARE(int) ap_regexec(const ap_regex_t *preg, const char *string, size_t nmatch, -+ ap_regmatch_t pmatch[], int eflags) -+{ -+int rc; -+int options = 0; -+int *ovector = NULL; -+int small_ovector[POSIX_MALLOC_THRESHOLD * 3]; -+int allocated_ovector = 0; -+ -+if ((eflags & AP_REG_NOTBOL) != 0) options |= PCRE_NOTBOL; -+if ((eflags & AP_REG_NOTEOL) != 0) options |= PCRE_NOTEOL; -+ -+((ap_regex_t *)preg)->re_erroffset = (size_t)(-1); /* Only has meaning after compile */ -+ -+if (nmatch > 0) -+ { -+ if (nmatch <= POSIX_MALLOC_THRESHOLD) -+ { -+ ovector = &(small_ovector[0]); -+ } -+ else -+ { -+ ovector = (int *)malloc(sizeof(int) * nmatch * 3); -+ if (ovector == NULL) return AP_REG_ESPACE; -+ allocated_ovector = 1; -+ } -+ } -+ -+rc = pcre_exec((const pcre *)preg->re_pcre, NULL, string, (int)strlen(string), -+ 0, options, ovector, nmatch * 3); -+ -+if (rc == 0) rc = nmatch; /* All captured slots were filled in */ -+ -+if (rc >= 0) -+ { -+ size_t i; -+ for (i = 0; i < (size_t)rc; i++) -+ { -+ pmatch[i].rm_so = ovector[i*2]; -+ pmatch[i].rm_eo = ovector[i*2+1]; -+ } -+ if (allocated_ovector) free(ovector); -+ for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1; -+ return 0; -+ } -+ -+else -+ { -+ if (allocated_ovector) free(ovector); -+ switch(rc) -+ { -+ case PCRE_ERROR_NOMATCH: return AP_REG_NOMATCH; -+ case PCRE_ERROR_NULL: return AP_REG_INVARG; -+ case PCRE_ERROR_BADOPTION: return AP_REG_INVARG; -+ case PCRE_ERROR_BADMAGIC: return AP_REG_INVARG; -+ case PCRE_ERROR_UNKNOWN_NODE: return AP_REG_ASSERT; -+ case PCRE_ERROR_NOMEMORY: return AP_REG_ESPACE; -+ case PCRE_ERROR_MATCHLIMIT: return AP_REG_ESPACE; -+ case PCRE_ERROR_BADUTF8: return AP_REG_INVARG; -+ case PCRE_ERROR_BADUTF8_OFFSET: return AP_REG_INVARG; -+ default: return AP_REG_ASSERT; -+ } -+ } -+} -+ -+/* End of pcreposix.c */ |