summaryrefslogtreecommitdiff
path: root/core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp')
-rw-r--r--core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp b/core/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp
index 219a72507b..346476b62b 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;