mirror of https://git.ffmpeg.org/ffmpeg.git
avutil/avstring: Fix bug and undefined behavior in av_strncasecmp()
The function in case of n=0 would read more bytes than 0. The end pointer could be beyond the allocated space, which is undefined. Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
18a567c369
commit
6f0e9a8634
|
@ -222,12 +222,13 @@ int av_strcasecmp(const char *a, const char *b)
|
|||
|
||||
int av_strncasecmp(const char *a, const char *b, size_t n)
|
||||
{
|
||||
const char *end = a + n;
|
||||
uint8_t c1, c2;
|
||||
if (n <= 0)
|
||||
return 0;
|
||||
do {
|
||||
c1 = av_tolower(*a++);
|
||||
c2 = av_tolower(*b++);
|
||||
} while (a < end && c1 && c1 == c2);
|
||||
} while (--n && c1 && c1 == c2);
|
||||
return c1 - c2;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue