| Index: third_party/libwebp/utils/utils.c
|
| diff --git a/third_party/libwebp/utils/utils.c b/third_party/libwebp/utils/utils.c
|
| index 2602ca3c9f6e4fee63010b8beea6c5499e5869c6..82dbf8d5e5151ebbcca096a1c7f5919cc144f15e 100644
|
| --- a/third_party/libwebp/utils/utils.c
|
| +++ b/third_party/libwebp/utils/utils.c
|
| @@ -175,8 +175,12 @@ static int CheckSizeArgumentsOverflow(uint64_t nmemb, size_t size) {
|
| }
|
| #endif
|
| #if defined(MALLOC_LIMIT)
|
| - if (mem_limit > 0 && total_mem + total_size >= mem_limit) {
|
| - return 0; // fake fail!
|
| + if (mem_limit > 0) {
|
| + const uint64_t new_total_mem = (uint64_t)total_mem + total_size;
|
| + if (new_total_mem != (size_t)new_total_mem ||
|
| + new_total_mem > mem_limit) {
|
| + return 0; // fake fail!
|
| + }
|
| }
|
| #endif
|
|
|
|
|