diff options
Diffstat (limited to 'libbb/safe_strncpy.c')
-rw-r--r-- | libbb/safe_strncpy.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libbb/safe_strncpy.c b/libbb/safe_strncpy.c new file mode 100644 index 000000000..42bc16ea0 --- /dev/null +++ b/libbb/safe_strncpy.c | |||
@@ -0,0 +1,21 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
2 | /* | ||
3 | * Utility routines. | ||
4 | * | ||
5 | * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> | ||
6 | * | ||
7 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | ||
8 | */ | ||
9 | |||
10 | #include <string.h> | ||
11 | #include "libbb.h" | ||
12 | |||
13 | |||
14 | |||
15 | /* Like strncpy but make sure the resulting string is always 0 terminated. */ | ||
16 | char * safe_strncpy(char *dst, const char *src, size_t size) | ||
17 | { | ||
18 | if (!size) return dst; | ||
19 | dst[--size] = '\0'; | ||
20 | return strncpy(dst, src, size); | ||
21 | } | ||