]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Back-patch StrNCpy fix.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 7 Jul 2000 21:29:57 +0000 (21:29 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 7 Jul 2000 21:29:57 +0000 (21:29 +0000)
src/backend/utils/adt/like.c
src/backend/utils/adt/regexp.c
src/backend/utils/adt/varchar.c

index 3ec148bacb4166ba28695fdd7122822b68ee61cd..03bcc984d5919b9eb8bc12ec56fc29ea92160e74 100644 (file)
@@ -11,7 +11,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *     $Header: /cvsroot/pgsql/src/backend/utils/adt/like.c,v 1.34 2000/04/12 17:15:50 momjian Exp $
+ *     $Header: /cvsroot/pgsql/src/backend/utils/adt/like.c,v 1.34.2.1 2000/07/07 21:29:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -50,7 +50,8 @@ fixedlen_like(char *s, struct varlena * p, int charlen)
        (void) pg_mb2wchar_with_len((unsigned char *) s, sterm, charlen);
 #else
        sterm = (char *) palloc(charlen + 1);
-       StrNCpy(sterm, s, charlen + 1);
+       memcpy(sterm, s, charlen);
+       sterm[charlen] = '\0';
 #endif
 
        /*
index 052b68137f8843eaa38ce677b3a8ac24f64e8d8b..95d6136bf107ce6650550c16611980906da8866a 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.30 2000/01/26 05:57:14 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/regexp.c,v 1.30.2.1 2000/07/07 21:29:57 tgl Exp $
  *
  *             Alistair Crooks added the code for the regex caching
  *             agc - cached the regular expressions used - there's a good chance
@@ -182,7 +182,8 @@ fixedlen_regexeq(char *s, struct varlena * p, int charlen, int cflags)
 
        /* be sure sterm is null-terminated */
        sterm = (char *) palloc(charlen + 1);
-       StrNCpy(sterm, s, charlen + 1);
+       memcpy(sterm, s, charlen);
+       sterm[charlen] = '\0';
 
        result = RE_compile_and_execute(p, sterm, cflags);
 
index 0837b8b63a1ba0ed958d98fa2b83b3ab012224e1..dcb1503d42fa2e57c93dbfcd1d043421004913fe 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.60 2000/04/12 17:15:52 momjian Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.60.2.1 2000/07/07 21:29:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -117,7 +117,8 @@ bpcharout(char *s)
        {
                len = VARSIZE(s) - VARHDRSZ;
                result = (char *) palloc(len + 1);
-               StrNCpy(result, VARDATA(s), len + 1);   /* these are blank-padded */
+               memcpy(result, VARDATA(s), len);
+               result[len] = '\0';
        }
 
 #ifdef CYR_RECODE
@@ -249,8 +250,8 @@ bpchar_name(char *s)
                return NULL;
 
        len = VARSIZE(s) - VARHDRSZ;
-       if (len > NAMEDATALEN)
-               len = NAMEDATALEN;
+       if (len >= NAMEDATALEN)
+               len = NAMEDATALEN-1;
 
        while (len > 0)
        {
@@ -265,7 +266,7 @@ bpchar_name(char *s)
 #endif
 
        result = (NameData *) palloc(NAMEDATALEN);
-       StrNCpy(NameStr(*result), VARDATA(s), NAMEDATALEN);
+       memcpy(NameStr(*result), VARDATA(s), len);
 
        /* now null pad to full length... */
        while (len < NAMEDATALEN)
@@ -297,7 +298,7 @@ name_bpchar(NameData *s)
 #endif
 
        result = (char *) palloc(VARHDRSZ + len);
-       strncpy(VARDATA(result), NameStr(*s), len);
+       memcpy(VARDATA(result), NameStr(*s), len);
        VARSIZE(result) = len + VARHDRSZ;
 
        return result;
@@ -354,7 +355,8 @@ varcharout(char *s)
        {
                len = VARSIZE(s) - VARHDRSZ;
                result = (char *) palloc(len + 1);
-               StrNCpy(result, VARDATA(s), len + 1);
+               memcpy(result, VARDATA(s), len);
+               result[len] = '\0';
        }
 
 #ifdef CYR_RECODE