commit 7e89fb90bd0beb91e5d67af362d6a8a3a1b4c626
parent cd08e6e065370611ea0cde431af222cf3420ca56
Author: rsc <rsc>
Date: Wed, 8 Aug 2007 08:37:22 +0000
add safestrcpy
Diffstat:
2 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/defs.h b/defs.h
@@ -39,6 +39,7 @@ void* memset(void*, int, uint);
int memcmp(const void*, const void*, uint);
void* memmove(void*, const void*, uint);
int strncmp(const char*, const char*, uint);
+char* safestrcpy(char*, const char*, int);
// syscall.c
void syscall(void);
diff --git a/string.c b/string.c
@@ -57,3 +57,19 @@ strncmp(const char *p, const char *q, uint n)
else
return (int) ((uchar) *p - (uchar) *q);
}
+
+// Like strncpy but guaranteed to NUL-terminate.
+char*
+safestrcpy(char *s, const char *t, int n)
+{
+ char *os;
+
+ os = s;
+ if(n <= 0)
+ return os;
+ while(--n > 0 && (*s++ = *t++) != 0)
+ ;
+ *s = 0;
+ return os;
+}
+