X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Flib%2Fbregex.c;h=6df0c745563a84bdfcaeb317fa11ceebaba70304;hb=4132c9f33642f579d89700f36caced609d374d51;hp=acba19730cd64f1f894db74e191a10ba78faf854;hpb=eb326beecb6fc8803ab73e6395c68c5a29ac8cc2;p=bacula%2Fbacula diff --git a/bacula/src/lib/bregex.c b/bacula/src/lib/bregex.c index acba19730c..6df0c74556 100644 --- a/bacula/src/lib/bregex.c +++ b/bacula/src/lib/bregex.c @@ -26,8 +26,6 @@ * Peters, Guido van Rossum, Ka-Ping Yee, Sjoerd Mullender, and * probably one or two others that I'm forgetting. * - * $Id$ - * * This file modified to work with Bacula and C++ by * Kern Sibbald, April 2006 * @@ -37,12 +35,12 @@ /* Bacula® - The Network Backup Solution - Copyright (C) 2006-2006 Free Software Foundation Europe e.V. + Copyright (C) 2006-2010 Free Software Foundation Europe e.V. The main author of Bacula is Kern Sibbald, with contributions from many others, a complete list can be found in the file AUTHORS. This program is Free Software; you can redistribute it and/or - modify it under the terms of version two of the GNU General Public + modify it under the terms of version three of the GNU Affero General Public License as published by the Free Software Foundation and included in the file LICENSE. @@ -51,12 +49,12 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Affero General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - Bacula® is a registered trademark of John Walker. + Bacula® is a registered trademark of Kern Sibbald. The licensor of Bacula is the Free Software Foundation Europe (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, Switzerland, email:ftf@fsfeurope.org. @@ -1466,7 +1464,7 @@ int regcomp(regex_t * bufp, const char *regex, int cflags) if (bufp->cflags & REG_ICASE) { char *p, *lcase = bstrdup(regex); for( p = lcase; *p ; p++) { - *p = tolower(*p); + *p = tolower(*p); } re_compile_pattern(bufp, (unsigned char *)lcase); bfree(lcase); @@ -1480,8 +1478,8 @@ int regcomp(regex_t * bufp, const char *regex, int cflags) } void re_registers_to_regmatch(regexp_registers_t old_regs, - regmatch_t pmatch[], - size_t nmatch) + regmatch_t pmatch[], + size_t nmatch) { size_t i=0; @@ -1502,7 +1500,9 @@ int regexec(regex_t * preg, const char *string, size_t nmatch, int len = strlen(string); struct re_registers regs; stat = re_search(preg, (unsigned char *)string, len, 0, len, ®s); - re_registers_to_regmatch(®s, pmatch, nmatch); + if (stat >= 0) { + re_registers_to_regmatch(®s, pmatch, nmatch); + } /* stat is the start position in the string base 0 where * the pattern was found or negative if not found. */ @@ -1939,12 +1939,12 @@ int re_search(regex_t * bufp, unsigned char *str, int size, int pos, if (bufp->cflags & REG_ICASE) { /* we must use string in lowercase */ int len = strlen((const char *)str); if (!bufp->lcase) { - bufp->lcase = get_pool_memory(PM_FNAME); + bufp->lcase = get_pool_memory(PM_FNAME); } - check_pool_memory_size(bufp->lcase, len+1); + bufp->lcase = check_pool_memory_size(bufp->lcase, len+1); unsigned char *dst = (unsigned char *)bufp->lcase; while (*string) { - *dst++ = tolower(*string++); + *dst++ = tolower(*string++); } *dst = '\0'; string = (unsigned char *)bufp->lcase;