Back-patch StrNCpy fix.
authorTom Lane <[email protected]>
Fri, 7 Jul 2000 21:29:57 +0000 (21:29 +0000)
committerTom Lane <[email protected]>
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