X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libbb%2Fsafe_strncpy.c;h=5eb0db0bd4c5732e47e94eadd94d0fa403525b33;hb=b05bcaf29c9008799aedb535cb42d2e60cc4cbb9;hp=8eb6a014fa2ee14d1fe89f458ac6ab215f6c7b6f;hpb=0ef64bdb40c54681e8dd5ab8df42ac88e4ab1d4a;p=oweals%2Fbusybox.git diff --git a/libbb/safe_strncpy.c b/libbb/safe_strncpy.c index 8eb6a014f..5eb0db0bd 100644 --- a/libbb/safe_strncpy.c +++ b/libbb/safe_strncpy.c @@ -20,8 +20,13 @@ char* FAST_FUNC safe_strncpy(char *dst, const char *src, size_t size) /* Like strcpy but can copy overlapping strings. */ void FAST_FUNC overlapping_strcpy(char *dst, const char *src) { - while ((*dst = *src) != '\0') { - dst++; - src++; + /* Cheap optimization for dst == src case - + * better to have it here than in many callers. + */ + if (dst != src) { + while ((*dst = *src) != '\0') { + dst++; + src++; + } } }