You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
bmv: return meaningful error codes.
This commit is contained in:
@@ -67,7 +67,7 @@ static int decode_bmv_frame(const uint8_t *source, int src_len, uint8_t *frame,
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (src_len <= 0)
|
if (src_len <= 0)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
if (forward) {
|
if (forward) {
|
||||||
src = source;
|
src = source;
|
||||||
@@ -91,7 +91,7 @@ static int decode_bmv_frame(const uint8_t *source, int src_len, uint8_t *frame,
|
|||||||
*/
|
*/
|
||||||
if (!mode || (tmplen == 4)) {
|
if (!mode || (tmplen == 4)) {
|
||||||
if (src < source || src >= source_end)
|
if (src < source || src >= source_end)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
val = *src;
|
val = *src;
|
||||||
read_two_nibbles = 1;
|
read_two_nibbles = 1;
|
||||||
} else {
|
} else {
|
||||||
@@ -102,7 +102,7 @@ static int decode_bmv_frame(const uint8_t *source, int src_len, uint8_t *frame,
|
|||||||
for (;;) {
|
for (;;) {
|
||||||
if (!read_two_nibbles) {
|
if (!read_two_nibbles) {
|
||||||
if (src < source || src >= source_end)
|
if (src < source || src >= source_end)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
shift += 2;
|
shift += 2;
|
||||||
val |= *src << shift;
|
val |= *src << shift;
|
||||||
if (*src & 0xC)
|
if (*src & 0xC)
|
||||||
@@ -137,7 +137,7 @@ static int decode_bmv_frame(const uint8_t *source, int src_len, uint8_t *frame,
|
|||||||
if (mode >= 4)
|
if (mode >= 4)
|
||||||
mode -= 3;
|
mode -= 3;
|
||||||
if (FFABS(dst_end - dst) < len)
|
if (FFABS(dst_end - dst) < len)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case 1:
|
case 1:
|
||||||
if (forward) {
|
if (forward) {
|
||||||
@@ -145,7 +145,7 @@ static int decode_bmv_frame(const uint8_t *source, int src_len, uint8_t *frame,
|
|||||||
dst - frame + SCREEN_WIDE + frame_off < 0 ||
|
dst - frame + SCREEN_WIDE + frame_off < 0 ||
|
||||||
frame_end - dst < frame_off + len ||
|
frame_end - dst < frame_off + len ||
|
||||||
frame_end - dst < len)
|
frame_end - dst < len)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
dst[i] = dst[frame_off + i];
|
dst[i] = dst[frame_off + i];
|
||||||
dst += len;
|
dst += len;
|
||||||
@@ -155,7 +155,7 @@ static int decode_bmv_frame(const uint8_t *source, int src_len, uint8_t *frame,
|
|||||||
dst - frame + SCREEN_WIDE + frame_off < 0 ||
|
dst - frame + SCREEN_WIDE + frame_off < 0 ||
|
||||||
frame_end - dst < frame_off + len ||
|
frame_end - dst < frame_off + len ||
|
||||||
frame_end - dst < len)
|
frame_end - dst < len)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
for (i = len - 1; i >= 0; i--)
|
for (i = len - 1; i >= 0; i--)
|
||||||
dst[i] = dst[frame_off + i];
|
dst[i] = dst[frame_off + i];
|
||||||
}
|
}
|
||||||
@@ -163,13 +163,13 @@ static int decode_bmv_frame(const uint8_t *source, int src_len, uint8_t *frame,
|
|||||||
case 2:
|
case 2:
|
||||||
if (forward) {
|
if (forward) {
|
||||||
if (source + src_len - src < len)
|
if (source + src_len - src < len)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
memcpy(dst, src, len);
|
memcpy(dst, src, len);
|
||||||
dst += len;
|
dst += len;
|
||||||
src += len;
|
src += len;
|
||||||
} else {
|
} else {
|
||||||
if (src - source < len)
|
if (src - source < len)
|
||||||
return -1;
|
return AVERROR_INVALIDDATA;
|
||||||
dst -= len;
|
dst -= len;
|
||||||
src -= len;
|
src -= len;
|
||||||
memcpy(dst, src, len);
|
memcpy(dst, src, len);
|
||||||
|
Reference in New Issue
Block a user