FFmpeg/libavformat
Andreas Rheinhardt 149ee954a3 avformat/hlsenc: Fix potential segfault upon allocation failure
The hls muxer allocates an array of VariantStreams, a structure that
contains pointers to objects that need to be freed on their own. This
means that the number of allocated VariantStreams needs to be correct
when they are freed; yet the number of VariantStreams is set in
update_variant_stream_info() resp. parse_variant_stream_mapstring()
before the allocation has been checked for success, so that upon error
an attempt would be made to free the objects whose pointers are
positioned at position NULL (the location of VariantStreams) +
offsetof(VariantStream, the corresponding pointer).

Furthermore d1fe1344 added another possibility for the first function
to leave an inconsistent state behind: If an allocation of one of the
objects referenced by the VariantStream fails, the VariantStream will be
freed, but the number of allocated VariantStreams isn't reset, leading
to the same problem as above. (This was done in the mistaken belief that
the VariantStreams array would leak otherwise.)

Essentially the same also happens for the number of cc-streams. It has
been fixed, too.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: Steven Liu <lq@onvideo.cn>
2019-12-23 14:05:43 +08:00
..
tests
.gitignore
3dostr.c
4xm.c
a64.c
aacdec.c
aadec.c
ac3dec.c
acm.c
act.c
adp.c
ads.c
adtsenc.c
adxdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
aea.c
afc.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
aiff.h
aiffdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
aiffenc.c
aixdec.c
allformats.c avformat: add an AV1 Annex B demuxer 2019-11-12 22:21:51 -03:00
amr.c
anm.c
apc.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
ape.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
apetag.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
apetag.h
apngdec.c avformat/apngdec: Don't free extradata manually 2019-12-12 19:25:33 +01:00
apngenc.c avformat/apngenc: Add deinit function 2019-10-30 15:28:48 -03:00
aptxdec.c
aqtitledec.c
asf.c
asf.h
asfcrypt.c
asfcrypt.h
asfdec_f.c
asfdec_o.c lavf/asfdec: Simplify the check conditions 2019-11-04 10:24:58 +08:00
asfenc.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
assdec.c
assenc.c
ast.c
ast.h
astdec.c
astenc.c
async.c
au.c
audiointerleave.c
audiointerleave.h
av1.c avcodec/cbs_av1: rename enable_intraintra_compound flag 2019-12-11 16:23:38 -03:00
av1.h
av1dec.c avformat/av1dec: simplify annexb_probe() 2019-11-16 15:56:36 -03:00
avc.c avformat/avc: add missing return error value 2019-11-30 11:34:58 -03:00
avc.h avformat/avc: write the missing bits in the AVC Decoder Configuration Box 2019-11-28 15:20:37 -03:00
avformat.h avformat: Add max_probe_packets option 2019-11-03 11:52:32 +01:00
avformatres.rc
avi.h
avidec.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
avienc.c
avio_internal.h
avio.c avformat/avio: Use ffurl_closep 2019-11-29 19:58:35 +01:00
avio.h
aviobuf.c avformat/aviobuf: Avoid allocating buffer when using dynamic buffer 2019-11-28 15:20:36 -03:00
avisynth.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
avlanguage.c
avlanguage.h
avr.c
avs.c
bethsoftvid.c
bfi.c
bink.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
bintext.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
bit.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
bluray.c
bmv.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
boadec.c
brstm.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
c93.c
cache.c avformat/cache: rename the class name fro Cache to cache 2019-12-11 15:22:24 +08:00
caf.c
caf.h
cafdec.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
cafenc.c
cavsvideodec.c
cdg.c
cdxl.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
chromaprint.c
cinedec.c
codec2.c
concat.c
concatdec.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
crcenc.c
crypto.c
cutils.c
dash.c
dash.h
dashdec.c Remove redundant ; 2019-12-10 16:09:14 +01:00
dashenc.c avformat/dashenc: remove unused check of avformat_free_context 2019-12-02 00:08:07 +08:00
data_uri.c
dauddec.c
daudenc.c
davs2.c
dcstr.c
dfa.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
dhav.c
diracdec.c
dnxhddec.c
dsfdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
dsicin.c
dss.c
dtsdec.c
dtshddec.c
dump.c
dv.c
dv.h
dvbsub.c
dvbtxt.c
dvenc.c avformat/dvenc: support muxing dvcprohd 2019-11-23 11:02:04 -08:00
dxa.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
eacdata.c
electronicarts.c
epafdec.c
ffmeta.h
ffmetadec.c
ffmetaenc.c
fifo_test.c
fifo.c
file_open.c
file.c
filmstripdec.c
filmstripenc.c
fitsdec.c
fitsenc.c
flac_picture.c avformat/flac_picture: Return directly if nothing has been allocated 2019-12-01 17:17:04 +01:00
flac_picture.h
flacdec.c avformat/flacdec: Remove useless packet 2019-11-17 23:44:17 +01:00
flacenc_header.c avformat/flacenc: Add const to ff_flac_write_header() parameter 2019-11-28 18:44:01 +01:00
flacenc.c libavformat/flacenc: reject too big picture blocks 2019-11-01 14:43:16 +01:00
flacenc.h avformat/flacenc: Add const to ff_flac_write_header() parameter 2019-11-28 18:44:01 +01:00
flic.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
flv.h
flvdec.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
flvenc.c avformat/flvenc: Don't reimplement ff_alloc_extradata 2019-12-11 16:24:16 +01:00
format.c
framecrcenc.c
framehash.c
frmdec.c
fsb.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
ftp.c avformat/ftp: add AVOptions for authentication 2019-11-03 12:24:19 +01:00
g722.c
g723_1.c
g726.c
g729dec.c
gdv.c
genh.c
gif.c
gifdec.c
golomb_tab.c
gopher.c
gsmdec.c
gxf.c
gxf.h
gxfenc.c
h261dec.c
h263dec.c
h264dec.c
hashenc.c
hcom.c
hdsenc.c avformat/hdsenc: removed unused check of avformat_free_context 2019-12-02 00:08:14 +08:00
hevc.c
hevc.h
hevcdec.c
hls.c avformat/hls: correct grammatical errors of m3u8_hold_counters option 2019-11-27 19:04:00 +08:00
hlsenc.c avformat/hlsenc: Fix potential segfault upon allocation failure 2019-12-23 14:05:43 +08:00
hlsplaylist.c
hlsplaylist.h
hlsproto.c
hnm.c
http.c
http.h
httpauth.c
httpauth.h
icecast.c avformat/icecast: Use AV_DICT_DONT_STRDUP_VAL to save an av_strdup 2019-12-21 15:01:57 +01:00
icodec.c
icoenc.c
id3v1.c
id3v1.h
id3v2.c avformat/id3v2: Fix double-free on error 2019-12-10 16:09:14 +01:00
id3v2.h
id3v2enc.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
idcin.c
idroqdec.c
idroqenc.c
iff.c avformat/iff: Use ff_alloc_extradata 2019-12-11 16:24:16 +01:00
ifv.c
ilbc.c
img2_alias_pix.c
img2_brender_pix.c
img2.c
img2.h
img2dec.c
img2enc.c
ingenientdec.c
internal.h avformat: Add max_probe_packets option 2019-11-03 11:52:32 +01:00
ip.c
ip.h
ipmovie.c
ircam.c
ircam.h
ircamdec.c
ircamenc.c
isom.c lavf/isom: support for demuxing and remuxing of MPEG-H 3D Audio in MP4 2019-12-12 11:44:57 -03:00
isom.h
iss.c
iv8.c
ivfdec.c
ivfenc.c
jacosubdec.c
jacosubenc.c
jvdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
latmenc.c
libavformat.v
libgme.c
libmodplug.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
libopenmpt.c
librtmp.c
libsmbclient.c
libsrt.c lavf/libsrt: enable other encryption parameters 2019-12-11 14:23:26 +08:00
libssh.c
libzmq.c
lmlm4.c
loasdec.c
log2_tab.c
lrc.c
lrc.h
lrcdec.c
lrcenc.c
lvfdec.c
lxfdec.c
m4vdec.c
Makefile lavf/Makefile: Specify sln demuxer requirements. 2019-11-17 23:40:14 +01:00
matroska.c
matroska.h
matroskadec.c avformat/matroskadec: Fix use-after-free when demuxing ProRes 2019-12-07 12:36:21 -03:00
matroskaenc.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
md5proto.c
metadata.c
metadata.h
mgsts.c
microdvddec.c
microdvdenc.c
mj2kdec.c
mkvtimestamp_v2.c
mlpdec.c
mlvdec.c avformat/mlvdec:drop unnecessary check before ff_format_io_close 2019-11-09 11:27:14 +09:00
mm.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
mmf.c
mms.c
mms.h
mmsh.c
mmst.c
mov_chan.c
mov_chan.h
mov_esds.c
mov.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
movenc.c avformat/movenc: use iso6 major brand when signed CTS offsets are used in trun boxes 2019-12-21 11:57:28 -03:00
movenc.h
movenccenc.c
movenccenc.h
movenchint.c
mp3dec.c avformat/mp3dec: Check for occurances of headers within frames during probing 2019-11-16 23:40:39 +01:00
mp3enc.c
mpc8.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
mpc.c
mpeg.c avformat/mpeg: Fix leaks of AVFormatContext and subtitle packets 2019-12-05 17:22:40 +01:00
mpeg.h
mpegenc.c
mpegts.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
mpegts.h avformat/mpegtsenc: allow any sensible PID for elementary and PMT PIDs 2019-12-03 11:00:10 +01:00
mpegtsenc.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
mpegvideodec.c
mpjpeg.c
mpjpegdec.c
mpl2dec.c
mpsubdec.c
msf.c
msnwc_tcp.c
mtaf.c
mtv.c
musx.c
mux.c
mvdec.c
mvi.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
mxf.c
mxf.h
mxfdec.c avformat/mxfdec: Clear metadata_sets_count in mxf_read_close() 2019-12-01 17:17:04 +01:00
mxfenc.c avformat/mxfenc: simplify d-10 ul handling 2019-11-23 11:02:04 -08:00
mxg.c
ncdec.c
network.c
network.h network: Define ENOTCONN as WSAENOTCONN if not defined 2019-12-11 22:18:09 +02:00
nistspheredec.c
nspdec.c
nsvdec.c
nullenc.c
nut.c
nut.h
nutdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
nutenc.c avformat/nutenc: Do not pass NULL to memcmp() in get_needed_flags() 2019-11-05 21:21:59 +01:00
nuv.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
oggdec.c
oggdec.h
oggenc.c
oggparsecelt.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
oggparsedaala.c
oggparsedirac.c
oggparseflac.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
oggparseogm.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
oggparseopus.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
oggparseskeleton.c
oggparsespeex.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
oggparsetheora.c
oggparsevorbis.c
oggparsevp8.c
oma.c
oma.h
omadec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
omaenc.c
options_table.h avformat: Add max_probe_packets option 2019-11-03 11:52:32 +01:00
options.c
os_support.c
os_support.h
paf.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
pcm.c
pcm.h
pcmdec.c
pcmenc.c
pjsdec.c
pmpdec.c
prompeg.c
protocols.c
psxstr.c
pva.c
pvfdec.c
qcp.c
qtpalette.c
qtpalette.h
r3d.c
rawdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rawdec.h
rawenc.c
rawenc.h
rawutils.c
rawvideodec.c
rdt.c
rdt.h
realtextdec.c
redspark.c
replaygain.c
replaygain.h
riff.c avcodec: add mvha video decoder 2019-11-27 23:54:20 +01:00
riff.h
riffdec.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
riffenc.c
rl2.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rm.c
rm.h
rmdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rmenc.c
rmsipr.c
rmsipr.h
rpl.c
rsd.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rso.c
rso.h
rsodec.c
rsoenc.c
rtmp.h
rtmpcrypt.c
rtmpcrypt.h
rtmpdh.c
rtmpdh.h
rtmpdigest.c
rtmphttp.c
rtmppkt.c
rtmppkt.h
rtmpproto.c lavf/rtmpproto: Don't unref uninitialized buffers 2019-12-07 14:09:12 +08:00
rtp.c
rtp.h
rtpdec_ac3.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rtpdec_amr.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rtpdec_asf.c
rtpdec_dv.c
rtpdec_formats.h
rtpdec_g726.c
rtpdec_h261.c
rtpdec_h263_rfc2190.c
rtpdec_h263.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rtpdec_h264.c
rtpdec_hevc.c avformat/rtpdec_hevc: Don't reimplement ff_alloc_extradata 2019-12-12 19:25:33 +01:00
rtpdec_ilbc.c
rtpdec_jpeg.c
rtpdec_latm.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
rtpdec_mpa_robust.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rtpdec_mpeg4.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
rtpdec_mpeg12.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rtpdec_mpegts.c
rtpdec_qcelp.c
rtpdec_qdm2.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
rtpdec_qt.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rtpdec_rfc4175.c
rtpdec_svq3.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
rtpdec_vc2hq.c
rtpdec_vp8.c
rtpdec_vp9.c
rtpdec_xiph.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
rtpdec.c
rtpdec.h
rtpenc_aac.c
rtpenc_amr.c
rtpenc_chain.c
rtpenc_chain.h
rtpenc_h261.c
rtpenc_h263_rfc2190.c
rtpenc_h263.c
rtpenc_h264_hevc.c
rtpenc_jpeg.c
rtpenc_latm.c
rtpenc_mpegts.c avformat/rtpenc_mpegts: removed unused check of avformat_free_context 2019-12-02 00:08:21 +08:00
rtpenc_mpv.c
rtpenc_vc2hq.c
rtpenc_vp8.c
rtpenc_vp9.c
rtpenc_xiph.c
rtpenc.c
rtpenc.h
rtpproto.c
rtpproto.h
rtsp.c rtsp: Use AVERROR() with errno.h error codes for error returns 2019-12-12 11:28:31 +02:00
rtsp.h
rtspcodes.h
rtspdec.c
rtspenc.c
s337m.c
samidec.c
sapdec.c
sapenc.c
sauce.c
sauce.h
sbcdec.c
sbgdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
sccdec.c
sccenc.c
sctp.c
sdp.c
sdr2.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
sdsdec.c
sdxdec.c
segafilm.c
segafilmenc.c
segment.c
serdec.c
shortendec.c
sierravmd.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
siff.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
smacker.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
smjpeg.c
smjpeg.h
smjpegdec.c
smjpegenc.c
smoothstreamingenc.c avformat/smoothstreamingenc: removed unused check of avformat_free_context 2019-12-02 00:08:31 +08:00
smush.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
sol.c
sox.h
soxdec.c
soxenc.c
spdif.c
spdif.h
spdifdec.c
spdifenc.c
srtdec.c
srtenc.c
srtp.c
srtp.h
srtpproto.c
stldec.c
subfile.c
subtitles.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
subtitles.h
subviewer1dec.c
subviewerdec.c
supdec.c
supenc.c
svag.c
swf.c
swf.h
swfdec.c
swfenc.c
takdec.c
tcp.c
tedcaptionsdec.c
tee_common.c
tee_common.h
tee.c
teeproto.c
thp.c
tiertexseq.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
tls_gnutls.c
tls_libtls.c
tls_mbedtls.c
tls_openssl.c avformat/tls_openssl: don't use libcrypto locking functions with newer OpenSSL versions 2019-12-19 19:30:37 -03:00
tls_schannel.c
tls_securetransport.c
tls.c
tls.h
tmv.c
tta.c
ttaenc.c
tty.c
txd.c
ty.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
udp.c
uncodedframecrcenc.c
unix.c
url.c
url.h
urldecode.c
urldecode.h
utils.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
v210.c
vag.c
vapoursynth.c
vc1dec.c
vc1test.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
vc1testenc.c
version.h avformat/mpegtsenc: allow any sensible PID for elementary and PMT PIDs 2019-12-03 11:00:10 +01:00
vividas.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
vivo.c
voc_packet.c
voc.c
voc.h
vocdec.c
vocenc.c
vorbiscomment.c
vorbiscomment.h
vpcc.c
vpcc.h
vpk.c
vplayerdec.c
vqf.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
w64.c
w64.h
wavdec.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
wavenc.c
wc3movie.c
webm_chunk.c
webmdashenc.c
webpenc.c
webvttdec.c
webvttenc.c
westwood_aud.c
westwood_vqa.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
wsddec.c
wtv_common.c
wtv.h
wtvdec.c
wtvenc.c
wv.c
wv.h
wvdec.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
wvedec.c
wvenc.c
xa.c
xmv.c avformat: Don't free old extradata before ff_alloc/get_extradata 2019-12-12 19:25:33 +01:00
xvag.c
xwma.c avformat: Forward errors where possible 2019-12-12 19:25:33 +01:00
yop.c
yuv4mpeg.h
yuv4mpegdec.c
yuv4mpegenc.c