This race will always happen sooner or later in a multi-threaded
environment and it will over time lead to OOM.
This fix works by spinning, there are other ways by which this
can be fixed, like simply detecting the issue after it happened
and freeing the over-allocated memory or simply using a mutex.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
The padding was lost during porting from avcodec
Should fix out of array accesses
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'e4a7b2177d14678ae240edcabaacfe2b14619b7b':
vf_showinfo: remove its useless init function
AVOptions: fix using named constants with child contexts.
Conflicts:
libavutil/opt.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The check `src > dst' in the form `&c->out[-back] > c->out' invokes
pointer overflow, which is undefined behavior in C.
Remove the check. Also replace `&c->out[-back] < c->out_start' with
a safe form `c->out - c->out_start < back' to avoid overflow.
CC: libav-stable@libav.org
Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* commit 'f099d3d1d5466bd63f4ab36270d169ff9ea613b8':
Add av_log_{ask_for_sample|missing_feature} replacements to libavutil
ismindex: Check the return value of allocations
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '6327c10702922eabcb1c6170abd3f03d23ce4c51':
atomic: fix CAS with armcc.
png: use av_mallocz_array() for the zlib zalloc function
libmp3lame: use the correct remaining buffer size when flushing
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '666fe5da47d127074be7f0e2bac93db6af8b4a30':
atomic: Exclude the unsupported implementation headers from checkheaders
avconv: do not silently ignore unused codec AVOptions.
Conflicts:
ffmpeg_opt.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '7b89cd20d844cbe763ca34e63e99d110043cf241':
eamad: allocate a dummy reference frame when the real one is missing
Replace remaining includes of audioconvert.h with channel_layout.h
Replace some forgotten instances of PIX_FMT_* with AV_PIX_FMT_*.
Conflicts:
libavcodec/h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '8df23e938b4022d6e6e9e1180ea6418abae74fda':
lavc: postpone the removal of request_channels API.
AVFrame: deprecate all now unused fields
Merged-by: Michael Niedermayer <michaelni@gmx.at>
The mingw win32 atomics appear to be faulty, so they should not be used
if the gcc ones are available.
Signed-off-by: Martin Storsjö <martin@martin.st>
Not all gcc configurations have an implementation of all the atomic
operations, and some gcc configurations have some atomic builtins
implemented but not all.
Thus check for the most essential function, whose presence should
indicate that all others are present as well, since it can be used
to implement all the other ones.
Signed-off-by: Martin Storsjö <martin@martin.st>
The mingw win32 atomics appear to be faulty, so they should not be used
if the gcc ones are available.
Signed-off-by: Martin Storsjö <martin@martin.st>
On the current code, armcc will fail with:
"libavutil/atomic_gcc.h", line 52: Error: #2771: first argument must be
a pointer to integer or enumeration type
This makes them pass standalone compilation tests. Previously,
they included atomic.h which included themselves again, leading to
double definitions.
Signed-off-by: Martin Storsjö <martin@martin.st>
* commit '7ecc2d403ce5c7b6ea3b1f368dccefd105209c7e':
Move AVFrame from lavc to lavu.
Conflicts:
libavcodec/avcodec.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '8e401dbe90cc77b1f3067a917d9fa48cefa3fcdb':
lavu: add a new API for reference-counted data buffers.
Conflicts:
libavutil/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '65f1d45dcc71186ede72fff950996099d23359bd':
lavu: add support for atomic operations.
Conflicts:
configure
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit '4be368b504c6f4a03051448728fc62cd0ed506b2':
avstring: Fix isxdigit to not accept non-hex characters
configure: Add missing videodsp dependencies to some decoders
Merged-by: Michael Niedermayer <michaelni@gmx.at>
* commit 'efa7f4202088c70caba11d7834641bc6eaf41830':
Use the avstring.h locale-independent character type functions
avstring: Add locale independent versions of some ctype.h functions
Conflicts:
avprobe.c
doc/APIchanges
libavcodec/dvdsubdec.c
libavcodec/utils.c
libavutil/avstring.c
libavutil/avstring.h
libavutil/eval.c
libavutil/parseutils.c
libavutil/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>