[libav-bugs] [Bug 1146] New: Heap out-of-bounds write in mm_decode_intra()

bugzilla at libav.org bugzilla at libav.org
Wed Mar 20 12:40:45 CET 2019


https://bugzilla.libav.org/show_bug.cgi?id=1146

            Bug ID: 1146
           Summary: Heap out-of-bounds write in mm_decode_intra()
           Product: Libav
           Version: git HEAD
          Hardware: X86
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: ---
         Component: libavcodec
          Assignee: bugzilla at libav.org
          Reporter: mgcho.minic at gmail.com

Created attachment 731
  --> https://bugzilla.libav.org/attachment.cgi?id=731&action=edit
Poc to trigger bug

Triggered by "./avconv -i $POC -f null -"

Heap out-of-bounds write in mm_decode_intra().


The GDB debugging information is as follows:

(gdb) r -v 9 -loglevel 99 -i ~/Downloads/mm_decode_intra_crash -f null -
Starting program:
/home/seclab/fuzzing-experiment/fuzzing/program/x86/libav-master/clang5/bin/avconv
-v 9 -loglevel 99 -i ~/Downloads/mm_decode_intra_crash -f null -
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
avconv version v13_dev0-1642-gf8abf7d, Copyright (c) 2000-2018 the Libav
developers
  built on Mar 19 2019 11:21:48 with clang version 5.0.0-3~16.04.1
(tags/RELEASE_500/final)
  configuration:
--prefix=/home/seclab/fuzzing-experiment/fuzzing/program/x86/libav-master/clang5
--disable-yasm --enable-cross-compile --cc=clang --target-os=linux --arch=i386
--host-cflags=-m32 --host-ldflags=-m32 --extra-cflags=-m32 --extra-ldflags=-m32
  libavutil     56.  8. 0 / 56.  8. 0
  libavcodec    58. 12. 1 / 58. 12. 1
  libavformat   58.  2. 0 / 58.  2. 0
  libavdevice   57.  0. 2 / 57.  0. 2
  libavfilter    7.  1. 0 /  7.  1. 0
  libavresample  4.  0. 0 /  4.  0. 0
  libswscale     5.  0. 1 /  5.  0. 1
Splitting the commandline.
Reading option '-v' ... matched as option 'v' (set libav* logging level) with
argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set libav* logging
level) with argument '99'.
Reading option '-i' ... matched as input file with argument
'/home/seclab/Downloads/mm_decode_intra_crash'.
Reading option '-f' ... matched as option 'f' (force format) with argument
'null'.
Reading option '-' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set libav* logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input file
/home/seclab/Downloads/mm_decode_intra_crash.
Successfully parsed a group of options.
Opening an input file: /home/seclab/Downloads/mm_decode_intra_crash.
score: 0, dvhs_score: 0, fec_score: 0 
nsv_probe(), buf_size 2048
[mm @ 0x9158040] Probed with size=2048 and score=50
[mm @ 0x9158040] unknown chunk type 0x0
IN delayed:0 pts:0, dts:-9223372036854775808 cur_dts:0 st:0 pc:(nil)
OUTdelayed:0/0 pts:0, dts:0 cur_dts:1
[mm @ 0x9158040] unknown chunk type 0x0
    Last message repeated 16 times
[mm @ 0x9158040] unknown chunk type 0x1000
[mm @ 0x9158040] unknown chunk type 0x0
    Last message repeated 3 times
[mm @ 0x9158040] unknown chunk type 0xa00
[mm @ 0x9158040] unknown chunk type 0x0
    Last message repeated 2 times
IN delayed:0 pts:1, dts:-9223372036854775808 cur_dts:1 st:0 pc:(nil)
OUTdelayed:0/0 pts:1, dts:1 cur_dts:2
[mm @ 0x9158040] unknown chunk type 0x0
    Last message repeated 7 times
[mm @ 0x9158040] unknown chunk type 0xd8d8
[mm @ 0x9158040] Estimating duration from bitrate, this may be inaccurate
[mm @ 0x9158040] 0: start_time: 0.000 duration: -9223372036854.775
[mm @ 0x9158040] 1: start_time: -9223372036854.775 duration: -9223372036854.775
[mm @ 0x9158040] stream: start_time: 0.000 duration: -9223372036854.775
bitrate=0 kb/s
Input #0, mm, from '/home/seclab/Downloads/mm_decode_intra_crash':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0, 2, 1/24: Video: mmvideo
      pal8, 78x8 (0x0), 0/1
      24 tbn
    Stream #0:1, 0, 1/8000: Audio: pcm_u8
      8000 Hz, mono, u8, 64 kb/s
Successfully opened the file.
Parsing a group of options: output file -.
Applying option f (force format) with argument null.
Successfully parsed a group of options.
Opening an output file: -.
Successfully opened the file.
Stream mapping:
  Stream #0:0 -> #0:0 (mmvideo (native) -> wrapped_avframe (native))
  Stream #0:1 -> #0:1 (pcm_u8 (native) -> pcm_s16le (native))
Press ctrl-c to stop encoding

Thread 1 "avconv" received signal SIGABRT, Aborted.
0xf7fd8bf0 in __kernel_vsyscall ()
(gdb) bt
#0  0xf7fd8bf0 in __kernel_vsyscall ()
#1  0xf7dadea9 in raise () from /lib/i386-linux-gnu/libc.so.6
#2  0xf7daf407 in abort () from /lib/i386-linux-gnu/libc.so.6
#3  0xf7de937c in ?? () from /lib/i386-linux-gnu/libc.so.6
#4  0xf7def2f7 in ?? () from /lib/i386-linux-gnu/libc.so.6
#5  0xf7defc31 in ?? () from /lib/i386-linux-gnu/libc.so.6
#6  0xf7df1dc5 in ?? () from /lib/i386-linux-gnu/libc.so.6
#7  0xf7df32c1 in ?? () from /lib/i386-linux-gnu/libc.so.6
#8  0xf7df534f in posix_memalign () from /lib/i386-linux-gnu/libc.so.6
#9  0x088e7e58 in av_malloc (size=4) at libavutil/mem.c:71
#10 av_mallocz (size=4) at libavutil/mem.c:204
#11 0x08062f60 in ff_filter_alloc (filter=0x8b46b44 <ff_vf_null>,
inst_name=<optimized out>) at libavfilter/avfilter.c:424
#12 0x08063a75 in avfilter_graph_alloc_filter (graph=0x915dfe0, filter=0x2ffe,
name=0x0) at libavfilter/avfiltergraph.c:160
#13 0x080674b9 in create_filter (filt_ctx=filt_ctx at entry=0xffffca24,
ctx=ctx at entry=0x915dfe0, index=index at entry=0, filt_name=0x915cb80 "null",
args=0x0, log_ctx=0x915dfe0)
    at libavfilter/graphparser.c:149
#14 0x08067a69 in parse_filter (log_ctx=0x915dfe0, index=0, graph=0x915dfe0,
buf=0xffffca0c, filt_ctx=0xffffca24) at libavfilter/graphparser.c:203
#15 avfilter_graph_parse2 (graph=0x915dfe0, filters=0x915c0d0 "null",
inputs=0xffffca94, outputs=0xffffca88) at libavfilter/graphparser.c:439
#16 0x08052a4d in configure_filtergraph (fg=<optimized out>) at
avtools/avconv_filter.c:711
#17 0x0805f56b in ifilter_send_frame (ifilter=0x915d340, frame=0x915ece0) at
avtools/avconv.c:1257
#18 0x0805d465 in decode_video (ist=<optimized out>, pkt=<optimized out>,
got_output=<optimized out>, decode_failed=<optimized out>) at
avtools/avconv.c:1444
#19 process_input_packet (ist=<optimized out>, pkt=<optimized out>,
no_eof=12286) at avtools/avconv.c:1531
#20 0x08059cbc in process_input () at avtools/avconv.c:2759
#21 transcode () at avtools/avconv.c:2801
#22 main (argc=<optimized out>, argv=<optimized out>) at avtools/avconv.c:2975
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0xf7fd8bd0 to 0xf7fd8c10:
   0xf7fd8bd0 <__kernel_rt_sigreturn+0>:    mov    $0xad,%eax
   0xf7fd8bd5 <__kernel_rt_sigreturn+5>:    int    $0x80
   0xf7fd8bd7 <__kernel_rt_sigreturn+7>:    nop
   0xf7fd8bd8:    nop
   0xf7fd8bd9:    lea    0x0(%esi,%eiz,1),%esi
   0xf7fd8be0 <__kernel_vsyscall+0>:    push   %ecx
   0xf7fd8be1 <__kernel_vsyscall+1>:    push   %edx
   0xf7fd8be2 <__kernel_vsyscall+2>:    push   %ebp
   0xf7fd8be3 <__kernel_vsyscall+3>:    mov    %esp,%ebp
   0xf7fd8be5 <__kernel_vsyscall+5>:    sysenter 
   0xf7fd8be7 <__kernel_vsyscall+7>:    nop
   0xf7fd8be8 <__kernel_vsyscall+8>:    nop
   0xf7fd8be9 <__kernel_vsyscall+9>:    nop
   0xf7fd8bea <__kernel_vsyscall+10>:    nop
   0xf7fd8beb <__kernel_vsyscall+11>:    nop
   0xf7fd8bec <__kernel_vsyscall+12>:    nop
   0xf7fd8bed <__kernel_vsyscall+13>:    nop
   0xf7fd8bee <__kernel_vsyscall+14>:    int    $0x80
=> 0xf7fd8bf0 <__kernel_vsyscall+16>:    pop    %ebp
   0xf7fd8bf1 <__kernel_vsyscall+17>:    pop    %edx
   0xf7fd8bf2 <__kernel_vsyscall+18>:    pop    %ecx
   0xf7fd8bf3 <__kernel_vsyscall+19>:    ret    
   0xf7fd8bf4:    or     %ebx,%edi
   0xf7fd8bf6:    (bad)  
   0xf7fd8bf7:    call   *(%esi)
   0xf7fd8bf9:    add    %al,(%eax)
   0xf7fd8bfb:    add    %dh,0x0(%ecx)
   0xf7fd8bfe:    add    (%ebx),%eax
   0xf7fd8c00:    add    %esi,%edi
   0xf7fd8c02:    cli    
   0xf7fd8c03:    (bad)  
   0xf7fd8c04:    decl   (%eax,%eax,1)
   0xf7fd8c07:    add    %al,(%eax)
   0xf7fd8c09:    jb     0xf7fd8c0b
   0xf7fd8c0b:    add    (%ebx),%eax
   0xf7fd8c0d:    add    (%edi),%ecx
   0xf7fd8c0f:    scas   %es:(%edi),%al
End of assembler dump.
(gdb) info all-registers
eax            0x0    0
ecx            0x2ffe    12286
edx            0x6    6
ebx            0x2ffe    12286
esp            0xffffc438    0xffffc438
ebp            0xffffc6f8    0xffffc6f8
esi            0xf7f34000    -135053312
edi            0xffffc4f4    -15116
eip            0xf7fd8bf0    0xf7fd8bf0 <__kernel_vsyscall+16>
eflags         0x200202    [ IF ID ]
cs             0x23    35
ss             0x2b    43
ds             0x2b    43
es             0x2b    43
fs             0x0    0
gs             0x63    99
st0            9.957466722920461539027801867174361e-06    (raw
0x3feea70efe71ee611800)
st1            -0.16666658368778738963378316384478239    (raw
0xbffcaaaaa51919b23800)
st2            -5.2368704321306240943608958015795252e-09    (raw
0xbfe3b3efffdd0585e000)
st3            0.49999999985513093880840074234583881    (raw
0x3ffdfffffffec16df800)
st4            1.7384289452803415575633558961773407e-09    (raw
0x3fe1eeed87e67d4a0800)
st5            0    (raw 0x00000000000000000000)
st6            9.9999999999999994515327145420957165e-21    (raw
0x3fbcbce5086492111800)
st7            1    (raw 0x3fff8000000000000000)
fctrl          0x37f    895
fstat          0x420    1056
ftag           0xffff    65535
fiseg          0x0    0
fioff          0xf7f89a27    -134702553
foseg          0x0    0
fooff          0x0    0
fop            0x0    0
mxcsr          0x1fa0    [ PE IM DM ZM OM UM PM ]
bndcfgu        {raw = 0x0, config = {base = 0x0, reserved = 0x0, preserved =
0x0, enabled = 0x0}}    {raw = 0x0, config = {base = 0, reserved = 0, preserved
= 0, enabled = 0}}
bndstatus      {raw = 0x0, status = {bde = 0x0, error = 0x0}}    {raw = 0x0,
status = {bde = 0, error = 0}}
k0             0x0    0
k1             0x0    0
k2             0x0    0
k3             0x0    0
k4             0x0    0
k5             0x0    0
k6             0x0    0
k7             0x0    0
zmm0           {v16_float = {0x0, 0x0, 0x0, 0x0, 0x0 <repeats 12 times>},
v8_double = {0x0, 0x8000000000000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v64_int8 =
{0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x0 <repeats 48 times>}, v32_int16 =
{0x0, 0xff00, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffff, 0x0 <repeats 24 times>},
v16_int32 = {0xff000000, 0x0, 0x0, 0xffff0000, 
    0x0 <repeats 12 times>}, v8_int64 = {0xff000000, 0xffff000000000000, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0}, v4_int128 = {0xffff00000000000000000000ff000000,
0x00000000000000000000000000000000, 
    0x00000000000000000000000000000000, 0x00000000000000000000000000000000}}
zmm1           {v16_float = {0x0, 0x0, 0x0, 0x0, 0x0 <repeats 12 times>},
v8_double = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v64_int8 = {0x7a, 0x52,
0x0, 0x1, 0x7c, 0x8, 0x1, 0x1b, 0xc, 0x4, 0x4, 
    0x88, 0x1, 0x0, 0x0, 0x20, 0x0 <repeats 48 times>}, v32_int16 = {0x527a,
0x100, 0x87c, 0x1b01, 0x40c, 0x8804, 0x1, 0x2000, 0x0 <repeats 24 times>},
v16_int32 = {0x100527a, 0x1b01087c, 0x8804040c, 
    0x20000001, 0x0 <repeats 12 times>}, v8_int64 = {0x1b01087c0100527a,
0x200000018804040c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int128 =
{0x200000018804040c1b01087c0100527a, 
    0x00000000000000000000000000000000, 0x00000000000000000000000000000000,
0x00000000000000000000000000000000}}
zmm2           {v16_float = {0x0, 0xffffffff, 0x0 <repeats 14 times>},
v8_double = {0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v64_int8 =
{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xbf, 
    0x0 <repeats 56 times>}, v32_int16 = {0x0, 0x0, 0x0, 0xbff0, 0x0 <repeats
28 times>}, v16_int32 = {0x0, 0xbff00000, 0x0 <repeats 14 times>}, v8_int64 =
{0xbff0000000000000, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0}, v4_int128 = {0x0000000000000000bff0000000000000,
0x00000000000000000000000000000000, 0x00000000000000000000000000000000,
0x00000000000000000000000000000000}}
zmm3           {v16_float = {0x0, 0xffffffff, 0x0 <repeats 14 times>},
v8_double = {0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v64_int8 =
{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0, 0xbf, 
    0x0 <repeats 56 times>}, v32_int16 = {0x0, 0x0, 0x0, 0xbff0, 0x0 <repeats
28 times>}, v16_int32 = {0x0, 0xbff00000, 0x0 <repeats 14 times>}, v8_int64 =
{0xbff0000000000000, 0x0, 0x0, 0x0, 0x0, 0x0, 
    0x0, 0x0}, v4_int128 = {0x0000000000000000bff0000000000000,
0x00000000000000000000000000000000, 0x00000000000000000000000000000000,
0x00000000000000000000000000000000}}
zmm4           {v16_float = {0x0, 0x0 <repeats 15 times>}, v8_double = {0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v64_int8 = {0xff, 0xff, 0xff, 0xff, 0x0
<repeats 60 times>}, v32_int16 = {0xffff, 0xffff, 
    0x0 <repeats 30 times>}, v16_int32 = {0xffffffff, 0x0 <repeats 15 times>},
v8_int64 = {0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int128 =
{0x000000000000000000000000ffffffff, 
    0x00000000000000000000000000000000, 0x00000000000000000000000000000000,
0x00000000000000000000000000000000}}
zmm5           {v16_float = {0x0, 0x0, 0x0 <repeats 14 times>}, v8_double =
{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v64_int8 = {0xa0, 0xea, 0x15, 0x9,
0x0, 0xdf, 0x15, 0x9, 0x0 <repeats 56 times>}, 
---Type <return> to continue, or q <return> to quit---
  v32_int16 = {0xeaa0, 0x915, 0xdf00, 0x915, 0x0 <repeats 28 times>}, v16_int32
= {0x915eaa0, 0x915df00, 0x0 <repeats 14 times>}, v8_int64 =
{0x915df000915eaa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 
  v4_int128 = {0x00000000000000000915df000915eaa0,
0x00000000000000000000000000000000, 0x00000000000000000000000000000000,
0x00000000000000000000000000000000}}
zmm6           {v16_float = {0x0 <repeats 16 times>}, v8_double = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v64_int8 = {0x0 <repeats 64 times>}, v32_int16 =
{0x0 <repeats 32 times>}, v16_int32 = {
    0x0 <repeats 16 times>}, v8_int64 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v4_int128 = {0x00000000000000000000000000000000,
0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 
    0x00000000000000000000000000000000}}
zmm7           {v16_float = {0x0 <repeats 16 times>}, v8_double = {0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v64_int8 = {0x0 <repeats 64 times>}, v32_int16 =
{0x0 <repeats 32 times>}, v16_int32 = {
    0x0 <repeats 16 times>}, v8_int64 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0}, v4_int128 = {0x00000000000000000000000000000000,
0x00000000000000000000000000000000, 0x00000000000000000000000000000000, 
    0x00000000000000000000000000000000}}
mm0            {uint64 = 0xa70efe71ee611800, v2_int32 = {0xee611800,
0xa70efe71}, v4_int16 = {0x1800, 0xee61, 0xfe71, 0xa70e}, v8_int8 = {0x0, 0x18,
0x61, 0xee, 0x71, 0xfe, 0xe, 0xa7}}
mm1            {uint64 = 0xaaaaa51919b23800, v2_int32 = {0x19b23800,
0xaaaaa519}, v4_int16 = {0x3800, 0x19b2, 0xa519, 0xaaaa}, v8_int8 = {0x0, 0x38,
0xb2, 0x19, 0x19, 0xa5, 0xaa, 0xaa}}
mm2            {uint64 = 0xb3efffdd0585e000, v2_int32 = {0x585e000,
0xb3efffdd}, v4_int16 = {0xe000, 0x585, 0xffdd, 0xb3ef}, v8_int8 = {0x0, 0xe0,
0x85, 0x5, 0xdd, 0xff, 0xef, 0xb3}}
mm3            {uint64 = 0xfffffffec16df800, v2_int32 = {0xc16df800,
0xfffffffe}, v4_int16 = {0xf800, 0xc16d, 0xfffe, 0xffff}, v8_int8 = {0x0, 0xf8,
0x6d, 0xc1, 0xfe, 0xff, 0xff, 0xff}}
mm4            {uint64 = 0xeeed87e67d4a0800, v2_int32 = {0x7d4a0800,
0xeeed87e6}, v4_int16 = {0x800, 0x7d4a, 0x87e6, 0xeeed}, v8_int8 = {0x0, 0x8,
0x4a, 0x7d, 0xe6, 0x87, 0xed, 0xee}}
mm5            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0,
0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm6            {uint64 = 0xbce5086492111800, v2_int32 = {0x92111800,
0xbce50864}, v4_int16 = {0x1800, 0x9211, 0x864, 0xbce5}, v8_int8 = {0x0, 0x18,
0x11, 0x92, 0x64, 0x8, 0xe5, 0xbc}}
mm7            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x80}}


ASAN output:

==112086==ERROR: AddressSanitizer: heap-buffer-overflow on address 0xf2e007e0
at pc 0x081375cd bp 0xff8b8498 sp 0xff8b8070
WRITE of size 2 at 0xf2e007e0 thread T0
    #0 0x81375cc in __asan_memset
(/home/seclab/fuzzing-experiment/fuzzing/program/x86/libav-master/clang5-asan/bin/avconv+0x81375cc)
    #1 0x8dfd83b in mm_decode_intra
/home/seclab/libav/libavcodec/mmvideo.c:123:17
    #2 0x8dfd83b in mm_decode_frame /home/seclab/libav/libavcodec/mmvideo.c:216
    #3 0x874924b in decode_simple_internal
/home/seclab/libav/libavcodec/decode.c:336:15
    #4 0x874924b in decode_simple_receive_frame
/home/seclab/libav/libavcodec/decode.c:387
    #5 0x874924b in decode_receive_frame_internal
/home/seclab/libav/libavcodec/decode.c:405
    #6 0x8748d12 in avcodec_send_packet
/home/seclab/libav/libavcodec/decode.c:466:15
    #7 0x81cab96 in decode /home/seclab/libav/avtools/avconv.c:1312:15
    #8 0x81cab96 in decode_video /home/seclab/libav/avtools/avconv.c:1412
    #9 0x81cab96 in process_input_packet
/home/seclab/libav/avtools/avconv.c:1531
    #10 0x81be7ee in process_input /home/seclab/libav/avtools/avconv.c:2759:5
    #11 0x81be7ee in transcode /home/seclab/libav/avtools/avconv.c:2801
    #12 0x81be7ee in main /home/seclab/libav/avtools/avconv.c:2975
    #13 0xf753b636 in __libc_start_main (/lib/i386-linux-gnu/libc.so.6+0x18636)
    #14 0x808b647 in _start
(/home/seclab/fuzzing-experiment/fuzzing/program/x86/libav-master/clang5-asan/bin/avconv+0x808b647)


Credits:

Mingi Cho, Seoyoung Kim, and Taekyoung Kwon of the Information Security Lab,
Yonsei University.

-- 
You are receiving this mail because:
You are watching all bug changes.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.libav.org/pipermail/libav-bugs/attachments/20190320/e931b23b/attachment-0001.html>


More information about the libav-bugs mailing list