[FFmpeg-devel] [PATCH 2/2] webmdashenc: Validate the 'streams' adaptation sets parameter

Michael Niedermayer michael at niedermayer.cc
Thu Apr 20 17:47:29 EEST 2017


On Thu, Apr 20, 2017 at 01:14:43PM +0100, Derek Buitenhuis wrote:
> It should not be a value larger than the number of streams we have,
> or it will cause invalid reads and/or SIGSEGV.
> 
> Signed-off-by: Derek Buitenhuis <derek.buitenhuis at gmail.com>
> ---
>  libavformat/webmdashenc.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)

breaks fate

--- ./tests/ref/fate/webm-dash-manifest 2017-04-18 01:26:16.687146020 +0200
+++ tests/data/fate/webm-dash-manifest  2017-04-20 16:10:26.923696509 +0200
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<MPD
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xmlns="urn:mpeg:DASH:schema:MPD:2011"
-  xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011"
-  type="static"
-  mediaPresentationDuration="PT32.501S"
-  minBufferTime="PT1S"
-  profiles="urn:webm:dash:profile:webm-on-demand:2012">
-<Period id="0" start="PT0S" duration="PT32.501S" >
-<AdaptationSet id="0" mimeType="video/webm" codecs="vp8" lang="eng" width="640" height="360" bitstreamSwitching="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
-<Representation id="0" bandwidth="302355">
-<BaseURL>dash_video1.webm</BaseURL>
-<SegmentBase
-  indexRange="1115974-1116097">
-<Initialization
-  range="0-441" />
-</SegmentBase>
-</Representation>
-<Representation id="1" bandwidth="302355">
-<BaseURL>dash_video2.webm</BaseURL>
-<SegmentBase
-  indexRange="1115782-1115879">
-<Initialization
-  range="0-249" />
-</SegmentBase>
-</Representation>
-</AdaptationSet>
-<AdaptationSet id="1" mimeType="audio/webm" codecs="vorbis" lang="eng" audioSamplingRate="44100" bitstreamSwitching="true" subsegmentAlignment="false" subsegmentStartsWithSAP="1">
-<Representation id="2" bandwidth="82867">
-<BaseURL>dash_audio1.webm</BaseURL>
-<SegmentBase
-  indexRange="335488-335612">
-<Initialization
-  range="0-4103" />
-</SegmentBase>
-</Representation>
-<Representation id="3" bandwidth="82814">
-<BaseURL>dash_audio2.webm</BaseURL>
-<SegmentBase
-  indexRange="335312-335425">
-<Initialization
-  range="0-3927" />
-</SegmentBase>
-</Representation>
-</AdaptationSet>
-</Period>
-</MPD>
Test webm-dash-manifest failed. Look at tests/data/fate/webm-dash-manifest.err for details.
make: *** [fate-webm-dash-manifest] Error 1
TEST    webm-dash-manifest-live-bandwidth
--- ./tests/ref/fate/webm-dash-manifest-live    2017-04-18 01:26:16.687146020 +0200
+++ tests/data/fate/webm-dash-manifest-live     2017-04-20 16:10:26.939696503 +0200
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<MPD
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xmlns="urn:mpeg:DASH:schema:MPD:2011"
-  xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011"
-  type="dynamic"
-  minBufferTime="PT1S"
-  profiles="urn:mpeg:dash:profile:isoff-live:2011"
-  availabilityStartTime=""
-  timeShiftBufferDepth="PT7200S"
-  minimumUpdatePeriod="PT60S">
-<Period id="0" start="PT0S" >
-<AdaptationSet id="0" mimeType="video/webm" codecs="vp9" bitstreamSwitching="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
-<ContentComponent id="1" type="video"/>
-<SegmentTemplate timescale="1000" duration="5000" media="dash_live_video_$RepresentationID$_$Number$.chk" startNumber="1" initialization="dash_live_video_$RepresentationID$.hdr"/>
-<Representation id="360" bandwidth="1000000" width="640" height="360" codecs="vp9" mimeType="video/webm" startsWithSAP="1"></Representation>
-</AdaptationSet>
-<AdaptationSet id="1" mimeType="audio/webm" codecs="vorbis" bitstreamSwitching="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
-<ContentComponent id="1" type="audio"/>
-<SegmentTemplate timescale="1000" duration="5000" media="dash_live_audio_$RepresentationID$_$Number$.chk" startNumber="1" initialization="dash_live_audio_$RepresentationID$.hdr"/>
-<Representation id="171" bandwidth="128000" audioSamplingRate="32000" codecs="vorbis" mimeType="audio/webm" startsWithSAP="1"></Representation>
-</AdaptationSet>
-</Period>
-</MPD>
Test webm-dash-manifest-live failed. Look at tests/data/fate/webm-dash-manifest-live.err for details.
make: *** [fate-webm-dash-manifest-live] Error 1
TEST    vp8-test-vector-005
TEST    vp8-test-vector-006
TEST    vp8-test-vector-007
--- ./tests/ref/fate/webm-dash-manifest-live-bandwidth  2017-04-18 12:31:39.137491812 +0200
+++ tests/data/fate/webm-dash-manifest-live-bandwidth   2017-04-20 16:10:26.975696506 +0200
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<MPD
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xmlns="urn:mpeg:DASH:schema:MPD:2011"
-  xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011"
-  type="dynamic"
-  minBufferTime="PT1S"
-  profiles="urn:mpeg:dash:profile:isoff-live:2011"
-  availabilityStartTime=""
-  timeShiftBufferDepth="PT7200S"
-  minimumUpdatePeriod="PT60S">
-<Period id="0" start="PT0S" >
-<AdaptationSet id="0" mimeType="video/webm" codecs="vp9" bitstreamSwitching="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
-<ContentComponent id="1" type="video"/>
-<SegmentTemplate timescale="1000" duration="5000" media="dash_live_video_$RepresentationID$_$Number$.chk" startNumber="1" initialization="dash_live_video_$RepresentationID$.hdr"/>
-<Representation id="360" bandwidth="100" width="640" height="360" codecs="vp9" mimeType="video/webm" startsWithSAP="1"></Representation>
-</AdaptationSet>
-<AdaptationSet id="1" mimeType="audio/webm" codecs="vorbis" bitstreamSwitching="true" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
-<ContentComponent id="1" type="audio"/>
-<SegmentTemplate timescale="1000" duration="5000" media="dash_live_audio_$RepresentationID$_$Number$.chk" startNumber="1" initialization="dash_live_audio_$RepresentationID$.hdr"/>
-<Representation id="171" bandwidth="200" audioSamplingRate="32000" codecs="vorbis" mimeType="audio/webm" startsWithSAP="1"></Representation>
-</AdaptationSet>
-</Period>
-</MPD>
Test webm-dash-manifest-live-bandwidth failed. Look at tests/data/fate/webm-dash-manifest-live-bandwidth.err for details.
make: *** [fate-webm-dash-manifest-live-bandwidth] Error 1


[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The bravest are surely those who have the clearest vision
of what is before them, glory and danger alike, and yet
notwithstanding go out to meet it. -- Thucydides
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170420/ae5432df/attachment.sig>


More information about the ffmpeg-devel mailing list