[FFmpeg-trac] #8572(avfilter:new): access violation using af_anequalizer filter

FFmpeg trac at avcodec.org
Sat Mar 14 19:37:25 EET 2020


#8572: access violation using af_anequalizer filter
----------------------------------+---------------------------------------
             Reporter:  DiZSl     |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avfilter  |                  Version:  unspecified
             Keywords:            |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+---------------------------------------
 Summary of the bug:
 By using a large number of af_anequalizer filters, you can get an error
 out of the array range.
 The add_filter function in the filter has a comparison error

 Now:
 static int add_filter(AudioNEqualizerContext *s, AVFilterLink *inlink)
 {
     equalizer(&s->filters[s->nb_filters], inlink->sample_rate);
     if (s->nb_filters >= s->nb_allocated) {
 ...

 Must be:
 static int add_filter(AudioNEqualizerContext *s, AVFilterLink *inlink)
 {
     equalizer(&s->filters[s->nb_filters], inlink->sample_rate);
     if (s->nb_filters >= (s->nb_allocated - 1)) {
 ...

 nb_allocated initialized as
     s->nb_allocated = 32 * inlink->channels;
 If you call the add_filter function more times, you will get an error
 because nb_filters is incremented after the above comparison.

 Unfortunately I can't send you the patch and the command line to play the
 bug because I'm not familiar with the ffmpeg command system.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8572>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list