diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-05-01 09:23:31 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-05-01 09:23:31 +0000 |
commit | e331e6b94ff10325c2569cb8f1b5469ebed46f4f (patch) | |
tree | 246bf0df32249ae76d7b9adcce5cb5fe8f2a266d /libaf | |
parent | b7f3811b299809cf1d57bd1b5979b54eb1e41765 (diff) | |
download | mpv-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')
-rw-r--r-- | libaf/af.c | 5 |
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)); |