diff --git a/lib/sbi/sbi_string.c b/lib/sbi/sbi_string.c index 9ebea693..f4f13942 100644 --- a/lib/sbi/sbi_string.c +++ b/lib/sbi/sbi_string.c @@ -68,22 +68,22 @@ char *sbi_strcpy(char *dest, const char *src) { char *ret = dest; - while (*src != '\0') { - *dest++ = *src++; + while ((*dest++ = *src++) != '\0') { } - return ret; } char *sbi_strncpy(char *dest, const char *src, size_t count) { - char *ret = dest; + char *tmp = dest; - while (count-- && *src != '\0') { - *dest++ = *src++; + while (count) { + if ((*tmp = *src) != 0) + src++; + tmp++; + count--; } - - return ret; + return dest; } char *sbi_strchr(const char *s, int c)