[FFmpeg-trac] #8298(undetermined:new): Segmentation fault in av_crc at libavutil/crc.c:403

FFmpeg trac at avcodec.org
Thu Oct 17 11:06:20 EEST 2019


#8298: Segmentation fault in av_crc at libavutil/crc.c:403
-------------------------------------+-------------------------------------
             Reporter:  Suhwan       |                     Type:  defect
               Status:  new          |                 Priority:  important
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 There is a Segmentation fault in av_crc at libavutil/crc.c:403
 How to reproduce:
 {{{
 % ffmpeg_g -y -i $PoC -filter_complex shuffleplanes -loglevel 0 -map 0
 -c:a:58 pcm_f32le tmp.apng

 ffmpeg version N-95425-g1e35519fe0 Copyright (c) 2000-2019 the FFmpeg
 developers
 built with clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
 configuration: --cc=clang --cxx=clang++ --ld=clang --enable-debug
 }}}

 Here's GDB log
 {{{
 libavutil/crc.c:403:20: runtime error: load of null pointer of type 'const
 uint32_t' (aka 'const unsigned int')

 Thread 1 "ffmpeg_g" received signal SIGSEGV, Segmentation fault.
 0x00000000058e57eb in av_crc (ctx=0x911ef90 <av_crc_table+16384>,
 crc=4294967295, buffer=0x0,
     length=<optimized out>) at libavutil/crc.c:403
 403                 crc ^= av_le2ne32(*(const uint32_t *) buffer); buffer
 += 4;
 (gdb) bt
 #0  0x00000000058e57eb in av_crc (ctx=0x911ef90 <av_crc_table+16384>,
 crc=4294967295, buffer=0x0,
     length=<optimized out>) at libavutil/crc.c:403
 #1  0x0000000002e310fc in encode_apng (avctx=<optimized out>,
 pkt=0x93cbe80, pict=0x940dc40,
     got_packet=0x7fffffffc294) at libavcodec/pngenc.c:851
 #2  0x0000000001fd0b9f in avcodec_encode_video2 (avctx=0x93b5b40,
 avpkt=<optimized out>, frame=<optimized out>,
     got_packet_ptr=0x7fffffffc294) at libavcodec/encode.c:302
 #3  0x0000000001fd28d0 in do_encode (avctx=0x93b5b40, frame=0x940dc40,
 got_packet=0x7fffffffc294)
     at libavcodec/encode.c:371
 #4  0x0000000001fd244a in avcodec_send_frame (avctx=0x93b5b40,
 frame=0x940dc40) at libavcodec/encode.c:420
 #5  0x00000000004c51d8 in do_video_out (of=0x93b0cc0, ost=<optimized out>,
 next_picture=<optimized out>,
     sync_ipts=4.9406564584124654e-324) at fftools/ffmpeg.c:1287
 #6  0x00000000004c0f0b in reap_filters (flush=0) at fftools/ffmpeg.c:1504
 #7  0x000000000048d662 in transcode_step () at fftools/ffmpeg.c:4638
 #8  transcode () at fftools/ffmpeg.c:4682
 #9  0x0000000000487da4 in main (argc=13, argv=<optimized out>) at
 fftools/ffmpeg.c:4884
 (gdb) disass $pc-32,$pc+32
 Dump of assembler code from 0x58e57cb to 0x58e580b:
    0x00000000058e57cb <av_crc+811>:     (bad)
    0x00000000058e57cc <av_crc+812>:     (bad)
    0x00000000058e57cd <av_crc+813>:     jmpq   0x58e56c8 <av_crc+552>
    0x00000000058e57d2 <av_crc+818>:     mov    $0x7f73600,%edi
    0x00000000058e57d7 <av_crc+823>:     mov    %r12,%rsi
    0x00000000058e57da <av_crc+826>:     mov    %rcx,%rbx
    0x00000000058e57dd <av_crc+829>:     mov    %r8,%rbp
    0x00000000058e57e0 <av_crc+832>:     callq  0x42c820
 <__ubsan_handle_type_mismatch_v1>
    0x00000000058e57e5 <av_crc+837>:     mov    %rbp,%r8
    0x00000000058e57e8 <av_crc+840>:     mov    %rbx,%rcx
 => 0x00000000058e57eb <av_crc+843>:     xor    (%r12),%ecx
    0x00000000058e57ef <av_crc+847>:     cmp    $0xfffffffffffffffc,%r12
    0x00000000058e57f3 <av_crc+851>:     mov    %rcx,%r13
    0x00000000058e57f6 <av_crc+854>:     jb     0x58e5624 <av_crc+388>
    0x00000000058e57fc <av_crc+860>:     lea    0x4(%r12),%rdx
    0x00000000058e5801 <av_crc+865>:     mov    $0x7f73620,%edi
    0x00000000058e5806 <av_crc+870>:     mov    %r12,%rsi
    0x00000000058e5809 <av_crc+873>:     mov    %r8,%rbx
 End of assembler dump.

 }}}
 Please confirm.
 Thanks

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


More information about the FFmpeg-trac mailing list