aboutsummaryrefslogtreecommitdiff
path: root/debug/stpncpy_chk.c
diff options
context:
space:
mode:
Diffstat (limited to 'debug/stpncpy_chk.c')
-rw-r--r--debug/stpncpy_chk.c51
1 files changed, 1 insertions, 50 deletions
diff --git a/debug/stpncpy_chk.c b/debug/stpncpy_chk.c
index 35a2c23508..f9fa66ccaf 100644
--- a/debug/stpncpy_chk.c
+++ b/debug/stpncpy_chk.c
@@ -31,54 +31,5 @@ __stpncpy_chk (char *dest, const char *src, size_t n, size_t destlen)
if (__builtin_expect (destlen < n, 0))
__chk_fail ();
- if (n >= 4)
- {
- size_t n4 = n >> 2;
-
- for (;;)
- {
- c = *src++;
- *dest++ = c;
- if (c == '\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == '\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == '\0')
- break;
- c = *src++;
- *dest++ = c;
- if (c == '\0')
- break;
- if (--n4 == 0)
- goto last_chars;
- }
- n -= dest - s;
- goto zero_fill;
- }
-
- last_chars:
- n &= 3;
- if (n == 0)
- return dest;
-
- for (;;)
- {
- c = *src++;
- --n;
- *dest++ = c;
- if (c == '\0')
- break;
- if (n == 0)
- return dest;
- }
-
- zero_fill:
- while (n-- > 0)
- dest[n] = '\0';
-
- return dest - 1;
+ return __stpncpy (dest, src, n);
}