OSDN Git Service

2008-07-17 Ken Werner <ken.werner@de.ibm.com>
authorjjohnstn <jjohnstn>
Thu, 17 Jul 2008 19:00:43 +0000 (19:00 +0000)
committerjjohnstn <jjohnstn>
Thu, 17 Jul 2008 19:00:43 +0000 (19:00 +0000)
        * libc/machine/spu/strcpy.h: Pad null bytes if necessary.

newlib/ChangeLog
newlib/libc/machine/spu/strcpy.h

index 2d4f76e..7b93e69 100644 (file)
@@ -1,3 +1,7 @@
+2008-07-17  Ken Werner  <ken.werner@de.ibm.com>
+
+       * libc/machine/spu/strcpy.h: Pad null bytes if necessary.
+
 2008-07-08  Kenji Tanaka  <tanaka.ken2@jp.panasonic.com>
 
        * libc/machine/mn10300/memset.S: Fix bug where return value is
index e2ec2b2..946148b 100644 (file)
@@ -176,5 +176,9 @@ static inline void * _strncpy(char * __restrict__ dest, const char *
      */
     dest[maxlen - spu_extract(curlen, 0)] = '\0';
   }
+
+  /* Pad null bytes if the length of the "src" is less than "n" (strncpy).  */
+  if (checklen && !lastzero && (maxlen != spu_extract(curlen,0)))
+    memset(dest + spu_extract(curlen, 0), 0, maxlen - spu_extract(curlen, 0));
   return (dest);
 }