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:
Joseph Bisch authored and TingPing committed 2017-09-21 21:34:14 -04:00
1 parent 053003f490
commit 0c494a9c24
1 file changed
+2 -5
+2 -5
View File
@@ -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[] =