summaryrefslogtreecommitdiffstats
path: root/libaf/af.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-01 09:23:31 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-01 09:23:31 +0000
commite331e6b94ff10325c2569cb8f1b5469ebed46f4f (patch)
tree246bf0df32249ae76d7b9adcce5cb5fe8f2a266d /libaf/af.c
parentb7f3811b299809cf1d57bd1b5979b54eb1e41765 (diff)
downloadmpv-e331e6b94ff10325c2569cb8f1b5469ebed46f4f.tar.bz2
mpv-e331e6b94ff10325c2569cb8f1b5469ebed46f4f.tar.xz
Prevent segfault when filter chain is empty (e.g. because all
filters returned AF_DETACH). Fixes bugzilla bug #293. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15313 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libaf/af.c')
-rw-r--r--libaf/af.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libaf/af.c b/libaf/af.c
index 5fffde13b1..33542a3c57 100644
--- a/libaf/af.c
+++ b/libaf/af.c
@@ -368,6 +368,11 @@ int af_init(af_stream_t* s, int force_output)
if(AF_OK != af_reinit(s,s->first))
return -1;
+ // make sure the chain is not empty and valid (e.g. because of AF_DETACH)
+ if (!s->first)
+ if (!af_append(s,s->first,"dummy") || AF_OK != af_reinit(s,s->first))
+ return -1;
+
// If force_output isn't set do not compensate for output format
if(!force_output){
memcpy(&s->output, s->last->data, sizeof(af_data_t));