diff options
author | Sascha Hauer <sha@octopus.labnet.pengutronix.de> | 2007-09-28 10:45:59 +0200 |
---|---|---|
committer | Sascha Hauer <sha@octopus.labnet.pengutronix.de> | 2007-09-28 10:45:59 +0200 |
commit | 5931ed5a14f56526f63c59d9ddbbae59b9a639cd (patch) | |
tree | 1ebfa2c41ce7a857e0191143c85361fe0c1a61f9 | |
parent | 7596ab2048394cf95b892bea326f921922aaf1d7 (diff) | |
download | barebox-5931ed5a14f56526f63c59d9ddbbae59b9a639cd.tar.gz barebox-5931ed5a14f56526f63c59d9ddbbae59b9a639cd.tar.xz |
add safe_strncpy() function
-rw-r--r-- | include/libbb.h | 2 | ||||
-rw-r--r-- | lib/libbb.c | 8 |
2 files changed, 10 insertions, 0 deletions
diff --git a/include/libbb.h b/include/libbb.h index 9a1fdde5b6..fdabc4bb54 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -24,4 +24,6 @@ int recursive_action(const char *fileName, unsigned flags, int (*dirAction) (const char *fileName, struct stat* statbuf, void* userData, int depth), void* userData, const unsigned depth); +char * safe_strncpy(char *dst, const char *src, size_t size); + #endif /* __LIBBB_H */ diff --git a/lib/libbb.c b/lib/libbb.c index daa484c24b..dd32307f18 100644 --- a/lib/libbb.c +++ b/lib/libbb.c @@ -99,3 +99,11 @@ char* last_char_is(const char *s, int c) return NULL; } +/* Like strncpy but make sure the resulting string is always 0 terminated. */ +char * safe_strncpy(char *dst, const char *src, size_t size) +{ + if (!size) return dst; + dst[--size] = '\0'; + return strncpy(dst, src, size); +} + |