mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 09:21:50 -05:00
Curl_memchr: zero length input can't match
Avoids undefined behavior. Reported-by: Geeknik Labs
This commit is contained in:
parent
abbc8457d8
commit
a7df35ce21
@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@ -44,17 +44,18 @@
|
|||||||
void *
|
void *
|
||||||
Curl_memrchr(const void *s, int c, size_t n)
|
Curl_memrchr(const void *s, int c, size_t n)
|
||||||
{
|
{
|
||||||
const unsigned char *p = s;
|
if(n > 0) {
|
||||||
const unsigned char *q = s;
|
const unsigned char *p = s;
|
||||||
|
const unsigned char *q = s;
|
||||||
|
|
||||||
p += n - 1;
|
p += n - 1;
|
||||||
|
|
||||||
while(p >= q) {
|
while(p >= q) {
|
||||||
if(*p == (unsigned char)c)
|
if(*p == (unsigned char)c)
|
||||||
return (void *)p;
|
return (void *)p;
|
||||||
p--;
|
p--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user