| Index: core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp | 
| diff --git a/core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp b/core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp | 
| index 219a72507b7a9f80ae2626a3f14ff9858b21eab4..346476b62b0d92f534b9c68f8cac17144f6d7fbd 100644 | 
| --- a/core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp | 
| +++ b/core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp | 
| @@ -176,24 +176,21 @@ uint32_t RunLengthDecode(const uint8_t* src_buf, | 
| if (src_buf[i] < 128) { | 
| old = dest_size; | 
| dest_size += src_buf[i] + 1; | 
| -      if (dest_size < old) { | 
| -        return static_cast<uint32_t>(-1); | 
| -      } | 
| +      if (dest_size < old) | 
| +        return FX_INVALID_OFFSET; | 
| i += src_buf[i] + 2; | 
| } else if (src_buf[i] > 128) { | 
| old = dest_size; | 
| dest_size += 257 - src_buf[i]; | 
| -      if (dest_size < old) { | 
| -        return static_cast<uint32_t>(-1); | 
| -      } | 
| +      if (dest_size < old) | 
| +        return FX_INVALID_OFFSET; | 
| i += 2; | 
| } else { | 
| break; | 
| } | 
| } | 
| -  if (dest_size >= _STREAM_MAX_SIZE_) { | 
| -    return static_cast<uint32_t>(-1); | 
| -  } | 
| +  if (dest_size >= _STREAM_MAX_SIZE_) | 
| +    return FX_INVALID_OFFSET; | 
| dest_buf = FX_Alloc(uint8_t, dest_size); | 
| i = 0; | 
| int dest_count = 0; | 
|  |