Ronald S. Bultje
7756859a31
fate: add BMP tests.
2012-04-04 11:16:23 -07:00
Ronald S. Bultje
bc0bdda77b
swscale: handle complete dimensions for monoblack/white.
...
Fixes bug 269.
2012-04-04 10:55:50 -07:00
Ronald S. Bultje
4f7c7624c0
mov: don't overwrite existing indexes.
...
Prevents all kind of badness if files contain multiple
indexes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:14 -07:00
Ronald S. Bultje
0399fe0fd2
lzw: fix potential integer overflow.
2012-03-29 11:36:14 -07:00
Ronald S. Bultje
b7b1509d06
truemotion: forbid invalid VLC bitsizes and token values.
...
SHOW_UBITS() is only defined up to n_bits is 25, therefore forbid
values larger than this in get_vlc2() (max_bits). tokens[][] can be
used as an index in deltas[], which has a size of 64, so ensure the
values are smaller than that.
This prevents crashes on corrupt bitstreams.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:14 -07:00
Ronald S. Bultje
bf39d3b59d
truemotion2: handle out-of-frame motion vectors through edge extension.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-29 11:36:11 -07:00
Ronald S. Bultje
ddcf67c8a5
lzw: prevent buffer overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 17:38:51 -07:00
Ronald S. Bultje
63a1b481f6
h264: fix cabac-on-stack after safe cabac reader.
2012-03-28 16:35:42 -07:00
Ronald S. Bultje
bd508d435b
truemotion2: convert packet header reading to bytestream2.
...
Also use correct buffer sizes in calls to tm2_read_stream(). Together,
this prevents overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 12:29:26 -07:00
Ronald S. Bultje
44257ef426
asf: only set index_read if the index contained entries.
...
This allows falling back to a binary search if the file contains no
index, thus fixing seeking in such files (e.g. luckynight.wma).
2012-03-28 10:22:25 -07:00
Ronald S. Bultje
a940198130
cabac: add overread protection to BRANCHLESS_GET_CABAC().
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
448dc42571
cabac: increment jump locations by one in callers of BRANCHLESS_GET_CABAC().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
16f6e83f74
cabac: remove unused argument from BRANCHLESS_GET_CABAC_UPDATE().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
951014e5bb
cabac: use struct+offset instead of memory operand in BRANCHLESS_GET_CABAC().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
a0bdcb019e
h264: add overread protection to get_cabac_bypass_sign_x86().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
95bfa4ead7
h264: reindent get_cabac_bypass_sign_x86().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
db025929f2
h264: use struct offsets in get_cabac_bypass_sign_x86().
2012-03-28 08:01:29 -07:00
Ronald S. Bultje
7374fac804
h264: fix overreads in cabac reader.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 08:01:28 -07:00
Ronald S. Bultje
d360dd902c
wmall: fix seeking.
2012-03-28 07:14:21 -07:00
Ronald S. Bultje
0a82f5275f
lagarith: fix buffer overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-28 07:06:47 -07:00
Ronald S. Bultje
e74d6daa29
fate: add kgv1 fate test.
...
Tested to be bit-exact across x86-64, x86-32 and ppc.
2012-03-27 17:54:04 -07:00
Ronald S. Bultje
98df2e2414
raw: forward avpicture_fill() error code in raw_decode().
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-27 08:54:07 -07:00
Ronald S. Bultje
2ad405548b
targa: convert to bytestream2.
...
Also remove some write-only variables or write-only variable
assignments, remove internal colorspace conversion to native
endianness (that can be done by swscale much more efficiently),
and some cosmetics.
2012-03-26 17:46:16 -07:00
Ronald S. Bultje
5484170ac7
rv34: set mb_num_left to 0 after finishing a frame
...
Prevents running error resilience on a previous frame which will write
to the pic->mb_type[] array of the previous image. The array might
already be re-used for a new image in a subsequent thread, thus cause
two threads to write to the same pic->mb_type[] array, causing a race
condition which can crash in rv34_decode_cbp(), called by
rv34_decode_inter_mb_header() (which accesses mb_type[] twice,
assuming values are maintained, which the race condition breaks).
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-26 16:39:01 -07:00
Ronald S. Bultje
b2af057a36
smacker: convert palette and header reading to bytestream2.
2012-03-25 16:31:16 -07:00
Ronald S. Bultje
c3bbd0b53b
alac: convert extradata reading to bytestream2.
2012-03-25 13:35:05 -07:00
Ronald S. Bultje
3a3f06b05e
dpcm: convert to bytestream2.
2012-03-24 19:02:26 -07:00
Ronald S. Bultje
f31a68e78c
interplayvideo: convert to bytestream2.
2012-03-24 17:09:18 -07:00
Ronald S. Bultje
ec0ed97b04
utvideo: port header reading to bytestream2.
...
Fixes crash during slice size reading if slice_end goes negative.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-24 15:15:56 -07:00
Ronald S. Bultje and Anton Khirnov
2ee01fbded
pthread: free progress if buffer allocation failed.
...
Else we run out of progress variables after a few failed buffer
allocations.
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2012-03-24 21:29:35 +01:00
Ronald S. Bultje and Anton Khirnov
bc1ef85520
lavc/avconv: support changing frame sizes in codecs with frame mt.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2012-03-24 21:29:16 +01:00
Ronald S. Bultje
7beec7e29d
fate: add wmalossless test.
2012-03-23 14:03:03 -07:00
Ronald S. Bultje
71ea26811c
aacsbr: handle m_max values smaller than 4.
...
Prevents a signflip in the counter, and a subsequent crash because of
overreads/overwrites.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-23 12:56:08 -07:00
Ronald S. Bultje
e73c6aaabf
asf: reset side data elements on packet copy.
...
Prevents crash (double free) when free()ing the original packet.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
262196445c
wmavoice: fix stack overread.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
3c9267673e
wmalossless: error out if a subframe is not used by any channel.
...
Prevents infinite loop because min_channel_len never increments.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
75d7975268
vqa: check palette chunk size before reading data.
...
Prevents overreads beyond buffer boundaries.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
d462949974
wmalossless: reset sample pointer for each subframe.
...
Prevents overwrites when some subframes only encode some channels.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje
326f7a68bb
wmalossless: error out on invalid values for order.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-22 12:17:14 -07:00
Ronald S. Bultje and Kostya Shishkov
68fd077f68
indeo4: fix out-of-bounds function call.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com >
2012-03-21 19:01:08 +01:00
Ronald S. Bultje
1744ab9e46
adpcm: convert adpcm_thp to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
72eda7786d
adpcm: convert adpcm_yamaha to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
f184735a27
adpcm: convert adpcm_swf to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
8afe2f9002
adpcm: convert adpcm_sbpro to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
834c81f4c5
adpcm: convert adpcm_ct to bytestream2.
2012-03-18 15:33:19 -07:00
Ronald S. Bultje
b3084e29e6
adpcm: convert adpcm_ima_amv/smjpeg to bytestream2.
2012-03-18 15:33:16 -07:00
Ronald S. Bultje
22c48d399d
adpcm: convert adpcm_ea_xas to bytestream2.
2012-03-18 15:33:16 -07:00
Ronald S. Bultje
edd9555537
adpcm: convert adpcm_ea_r1/2/3 to bytestream2.
2012-03-18 15:33:16 -07:00
Ronald S. Bultje
e60d09918c
adpcm: convert ea_maxis_xa to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
4a876eba8d
adpcm: convert adpcm_ea to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
524af484ed
adpcm convert adpcm_ima_ea_sead to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
8f2ed09289
adpcm: convert adpcm_ima_ea_eacs to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
159831cc09
adpcm: convert adpcm_xa to bytestream2.
2012-03-18 15:33:15 -07:00
Ronald S. Bultje
16b7a5e241
adpcm: convert ima_ws to bytestream2.
2012-03-18 15:33:11 -07:00
Ronald S. Bultje
74d7ac95fb
adpcm: convert adpcm_ima_apc to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
9721901440
adpcm: convert adpcm_ima_iss to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
1da9587026
adpcm: convert adpcm_dk3 to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
d570a96808
adpcm: convert adpcm_dk4 to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
5353ee3c30
adpcm: convert adpcm_ms to bytestream2.
2012-03-18 15:25:26 -07:00
Ronald S. Bultje
89f3aa8ce2
adpcm: use av_clip() in adpcm_ima_expand_nibble().
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
689be85a9a
adpcm: convert adpcm_4xm to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
39505f4240
adpcm: convert adpcm_ima_wav to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
9604307dd8
adpcm: convert adpcm_ima_qt to bytestream2.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
c346f6304c
adpcm: fix nb_samples rounding for adpcm_ima_dk3, and update reference.
2012-03-18 15:25:25 -07:00
Ronald S. Bultje
abe3c697a3
xwd: convert to bytestream2.
2012-03-18 07:45:41 -07:00
Ronald S. Bultje
1e26a48fa2
h264: fix deadlocks on incomplete reference frame decoding.
...
If decoding a second complementary field, and the first was
decoded in our thread, mark decoding of that field as complete.
If decoding fails, mark the decoded field/frame as complete.
Do not allow switching between field modes or field/frame mode
between slices within the same field/frame. Ensure that two
subsequent fields cover top/bottom (rather than top/frame,
bottom/frame or such nonsense situations).
Fixes various deadlocks when decoding samples with errors in
reference frames.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:31:00 -07:00
Ronald S. Bultje
c6ccb96bc9
mpeg4: report frame decoding completion at ff_MPV_frame_end().
...
Prevents hangs on corrupt input.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:30:53 -07:00
Ronald S. Bultje
80387f0e25
mimic: don't use self as reference, and report completion at end of decode().
...
Fixes hangs on corrupt samples that reference self-frames.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-16 15:30:52 -07:00
Ronald S. Bultje
45fdcc8e2d
swscale: convert hscale() to use named arguments.
2012-03-14 20:09:53 -07:00
Ronald S. Bultje
98b9da2ac7
x86inc: add *mp named argument support to DEFINE_ARGS.
2012-03-14 20:09:53 -07:00
Ronald S. Bultje
aba7a827aa
swscale: convert hscale to cpuflags().
2012-03-14 20:09:53 -07:00
Ronald S. Bultje
e0febda22d
h264: stricter reference limit enforcement.
...
Progressive images can have only 16 references, error out if there are
more, since the data is almost certainly corrupt, and the invalid value
will lead to random crashes or invalid writes later on.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:49 -07:00
Ronald S. Bultje
48cbe4b092
h264: increase reference poc list from 16 to 32.
...
Interlaced images can have 32 references (16 per field), so limiting the
array size to 16 leads to invalid writes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:45 -07:00
Ronald S. Bultje
86020073db
xa_adpcm: limit filter to prevent xa_adpcm_table[] array bounds overruns.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-14 13:24:40 -07:00
Ronald S. Bultje
c95fefa042
dsicinvideo: validate buffer offset before copying pixels.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-11 07:28:54 -07:00
Ronald S. Bultje
97e48b2f54
cook: error out on quant_index values outside [-63, 63] range.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 17:51:28 -08:00
Ronald S. Bultje
d7eabd5042
mpc: pad mpc_CC/SCF[] tables to allow for negative indices.
...
MPC8 allows indices of mpc_CC up to -1, and mpc_SCF up to -6, thus pad
the tables by that much on the left end.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 14:28:08 -08:00
Ronald S. Bultje
442c3a8cb1
cook: expand dither_tab[], and make sure indexes into it don't overflow.
...
Fixes overflows in accessing dither_tab[].
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 12:03:53 -08:00
Ronald S. Bultje
71af42bd96
xxan: reindent xan_unpack_luma().
...
It used 3-space indent instead of 4-space indent.
2012-03-10 11:57:56 -08:00
Ronald S. Bultje
f77bfa8376
xxan: protect against chroma LUT overreads.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:57:17 -08:00
Ronald S. Bultje
5518827816
xxan: convert to bytestream2 API.
...
Protects against overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:48:57 -08:00
Ronald S. Bultje
f1279e286b
xxan: don't read before start of buffer in av_memcpy_backptr().
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-10 11:48:39 -08:00
Ronald S. Bultje
a928ed3751
vp8: convert mbedge loopfilter x86 assembly to use named arguments.
2012-03-10 11:36:33 -08:00
Ronald S. Bultje
bee330e300
vp8: convert inner loopfilter x86 assembly to use named arguments.
2012-03-10 11:36:33 -08:00
Ronald S. Bultje
4ffe5e2aa5
huffyuv: add padding to classic (v1) huffman tables.
...
We slightly overread the input buffer, so we require
padding at the end of the buffer, as is documented in the
get_bits API. Without padding, we'll read uninitialized
data or beyond the end of the .rodata, which may crash.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-08 11:20:49 -08:00
Ronald S. Bultje
4c25269ced
png: convert to bytestream2 API.
...
Protects against overreads in the input buffer.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-08 11:17:25 -08:00
Ronald S. Bultje
83f15a1228
avs: fix infinite loop on end-of-stream.
...
The codec would keep returning the last decoded frame if the stream
contains B-frames, since it wouldn't clear that frame from the list of
frames to be returned to the user.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 16:33:35 -08:00
Ronald S. Bultje
b4bccf3e4e
wma: fix off-by-one in array bounds check.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 14:42:39 -08:00
Ronald S. Bultje
3416d0805e
dv: cosmetics.
2012-03-07 13:49:41 -08:00
Ronald S. Bultje
e97efecec8
dv: check buffer size before reading profile.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 13:48:41 -08:00
Ronald S. Bultje
6e2821160b
Revert "AAC SBR: group some writes."
...
This reverts commit ba36f14e5d . It
broke decoding on x86-32 on some systems.
2012-03-07 12:16:36 -08:00
Ronald S. Bultje
37cc8600d0
cook: extend channel uncoupling tables so the full bit range is covered.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 11:40:46 -08:00
Ronald S. Bultje
84a020efc3
roqvideo: cosmetics.
2012-03-07 11:37:25 -08:00
Ronald S. Bultje
cdf1577162
roqvideo: convert to bytestream2 API.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 11:37:20 -08:00
Ronald S. Bultje
93b53ffb1a
dca: don't use av_clip_uintp2().
...
The argument is not a literal, thus causing the ARM v6 or later
builds to break.
2012-03-07 11:31:42 -08:00
Ronald S. Bultje
626964a4c4
wmall: fix build with -DDEBUG enabled.
2012-03-07 10:40:15 -08:00
Ronald S. Bultje
8febcb9fc1
smc: port to bytestream2 API.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 10:34:06 -08:00
Ronald S. Bultje
1255eed533
tgq: convert to bytestream2 API.
...
This protects against input buffer overreads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:53:57 -08:00
Ronald S. Bultje
e6ffd997cb
dca: prevent accessing static arrays with invalid indexes.
...
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:37:29 -08:00
Ronald S. Bultje
cc5dd632ce
raw: move buffer size check up.
...
This way, it protects against overreads for 4bpp/2bpp content also.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-03-07 09:36:32 -08:00