tweaks: prevent two more size_t subtractions from going negative
This fully fixes https://savannah.gnu.org/bugs/?60658. Found by compiling with -fsanitize=undefined.master
parent
b38f0cbaf4
commit
30bafc70cc
|
@ -498,7 +498,7 @@ char *revstrstr(const char *haystack, const char *needle,
|
||||||
size_t tail_len = strlen(pointer);
|
size_t tail_len = strlen(pointer);
|
||||||
|
|
||||||
if (tail_len < needle_len)
|
if (tail_len < needle_len)
|
||||||
pointer += tail_len - needle_len;
|
pointer -= (needle_len - tail_len);
|
||||||
|
|
||||||
while (pointer >= haystack) {
|
while (pointer >= haystack) {
|
||||||
if (strncmp(pointer, needle, needle_len) == 0)
|
if (strncmp(pointer, needle, needle_len) == 0)
|
||||||
|
@ -518,7 +518,7 @@ char *revstrcasestr(const char *haystack, const char *needle,
|
||||||
size_t tail_len = strlen(pointer);
|
size_t tail_len = strlen(pointer);
|
||||||
|
|
||||||
if (tail_len < needle_len)
|
if (tail_len < needle_len)
|
||||||
pointer += tail_len - needle_len;
|
pointer -= (needle_len - tail_len);
|
||||||
|
|
||||||
while (pointer >= haystack) {
|
while (pointer >= haystack) {
|
||||||
if (strncasecmp(pointer, needle, needle_len) == 0)
|
if (strncasecmp(pointer, needle, needle_len) == 0)
|
||||||
|
|
Loading…
Reference in New Issue