summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/string.h2
-rw-r--r--tests/test_stpncpy_static_write.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/include/string.h b/include/string.h
index 7987d17..23f598c 100644
--- a/include/string.h
+++ b/include/string.h
@@ -104,7 +104,7 @@ _FORTIFY_FN(stpncpy) char *stpncpy(char * _FORTIFY_POS0 __d, const char *__s,
104{ 104{
105 size_t __b = __bos(__d, 0); 105 size_t __b = __bos(__d, 0);
106 106
107 if (__n > __b && strlen(__s) + 1 > __b) 107 if (__n > __b)
108 __builtin_trap(); 108 __builtin_trap();
109 return __orig_stpncpy(__d, __s, __n); 109 return __orig_stpncpy(__d, __s, __n);
110} 110}
diff --git a/tests/test_stpncpy_static_write.c b/tests/test_stpncpy_static_write.c
index 4bf9092..d4202ba 100644
--- a/tests/test_stpncpy_static_write.c
+++ b/tests/test_stpncpy_static_write.c
@@ -4,7 +4,8 @@
4 4
5int main(int argc, char** argv) { 5int main(int argc, char** argv) {
6 char buffer[8] = {0}; 6 char buffer[8] = {0};
7 stpncpy(buffer, "1234567", 5); 7 stpncpy(buffer, "1234567890", 5);
8 stpncpy(buffer, "1234567890", 8);
8 puts(buffer); 9 puts(buffer);
9 10
10 CHK_FAIL_START 11 CHK_FAIL_START