Fix rfc_ncasecmp handling of n reaching 0
If n becomes 0 at the same time that the end of either s1 or s2 are reached, the next iteration of the while loop wouldn't happen, so we wouldn't correctly return 0.
This commit is contained in:
@ -1040,11 +1040,8 @@ rfc_ncasecmp (char *s1, char *s2, int n)
|
||||
{
|
||||
int c1, c2;
|
||||
|
||||
while (*s1 && *s2)
|
||||
while (*s1 && *s2 && n > 0)
|
||||
{
|
||||
if (n == 0)
|
||||
return 0;
|
||||
|
||||
c1 = (int)rfc_tolower (*s1);
|
||||
c2 = (int)rfc_tolower (*s2);
|
||||
if (c1 != c2)
|
||||
@ -1055,7 +1052,7 @@ rfc_ncasecmp (char *s1, char *s2, int n)
|
||||
}
|
||||
c1 = (int)rfc_tolower (*s1);
|
||||
c2 = (int)rfc_tolower (*s2);
|
||||
return (c1 - c2);
|
||||
return (n == 0) ? 0 : (c1 - c2);
|
||||
}
|
||||
|
||||
const unsigned char rfc_tolowertab[] =
|
||||
|
Reference in New Issue
Block a user