7 |
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
* Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
8 |
*/ |
*/ |
9 |
|
|
|
#include <string.h> |
|
10 |
#include "libbb.h" |
#include "libbb.h" |
11 |
|
|
|
|
|
|
|
|
12 |
/* Like strncpy but make sure the resulting string is always 0 terminated. */ |
/* Like strncpy but make sure the resulting string is always 0 terminated. */ |
13 |
char * safe_strncpy(char *dst, const char *src, size_t size) |
char* FAST_FUNC safe_strncpy(char *dst, const char *src, size_t size) |
14 |
{ |
{ |
15 |
if (!size) return dst; |
if (!size) return dst; |
16 |
dst[--size] = '\0'; |
dst[--size] = '\0'; |
17 |
return strncpy(dst, src, size); |
return strncpy(dst, src, size); |
18 |
} |
} |
19 |
|
|
20 |
|
/* Like strcpy but can copy overlapping strings. */ |
21 |
|
void FAST_FUNC overlapping_strcpy(char *dst, const char *src) |
22 |
|
{ |
23 |
|
while ((*dst = *src) != '\0') { |
24 |
|
dst++; |
25 |
|
src++; |
26 |
|
} |
27 |
|
} |