acrn-hv: code review fix lib/string.c

In lib/string.c, strncmp doesn't consider condition "n_arg=0",
just add a process to "n_arg=0".

Tracked-On: projectacrn/acrn-hypervisor#3466
Signed-off-by: YanX Fu <yanx.fu@intel.com>
Reviewed-by: Yonghua Huang <yonghua.huang@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
fuyanX 2019-07-25 23:24:33 +08:00 committed by ACRN System Integration
parent 653aa859b1
commit bde1d4b1bb
1 changed files with 12 additions and 5 deletions

View File

@ -233,19 +233,26 @@ int32_t strcmp(const char *s1_arg, const char *s2_arg)
return *str1 - *str2; return *str1 - *str2;
} }
/**
* @pre n_arg > 0
*/
int32_t strncmp(const char *s1_arg, const char *s2_arg, size_t n_arg) int32_t strncmp(const char *s1_arg, const char *s2_arg, size_t n_arg)
{ {
const char *str1 = s1_arg; const char *str1 = s1_arg;
const char *str2 = s2_arg; const char *str2 = s2_arg;
size_t n = n_arg; size_t n = n_arg;
int32_t ret = 0;
if (n > 0U) {
while (((n - 1) != 0U) && ((*str1) != '\0') && ((*str2) != '\0') && ((*str1) == (*str2))) { while (((n - 1) != 0U) && ((*str1) != '\0') && ((*str2) != '\0') && ((*str1) == (*str2))) {
str1++; str1++;
str2++; str2++;
n--; n--;
} }
ret = (int32_t) (*str1 - *str2);
}
return *str1 - *str2; return ret;
} }
/* /*