[FFmpeg-trac] #8237(undetermined:reopened): Division by zero at libavfilter/af_adeclick.c
FFmpeg
trac at avcodec.org
Fri Oct 11 03:14:26 EEST 2019
#8237: Division by zero at libavfilter/af_adeclick.c
-------------------------------------+-------------------------------------
Reporter: Suhwan | Owner:
Type: defect | Status: reopened
Priority: normal | Component:
| undetermined
Version: git-master | Resolution:
Keywords: ubsan | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Changes (by Suhwan):
* status: closed => reopened
* resolution: invalid =>
Comment:
Replying to [comment:1 richardpl]:
I checked this again and re-uploaded the full gdb-log.
I compiled ffmpeg with "--toolchain=clang-usan" option to check division
by zero.
please confirm.
Thanks
How to reproduce:
{{{
$ ffmpeg_g -y -r 49 -i $PoC -filter_complex adeclick -loglevel 99 -c:s:7
h264_v4l2m2m -disposition:s:3 apng -vframes 35 -ab 267k -ac 0 -strict 1
tmp.ast
ffmpeg version N-95314-g1331e00179 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
--toolchain=clang-usan
}}}
{{{
Breakpoint 1, uninit (ctx=0x90e0140) at libavfilter/af_adeclick.c:684
684 s->nb_samples, 100. * s->detected_errors /
s->nb_samples);
(gdb) n
683 s->is_declip ? "clips" : "clicks", s->detected_errors,
(gdb) n
684 s->nb_samples, 100. * s->detected_errors /
s->nb_samples);
(gdb) n
libavfilter/af_adeclick.c:684:53: runtime error: division by zero
682 av_log(ctx, AV_LOG_INFO, "Detected %s in %"PRId64" of
%"PRId64" samples (%g%%).\n",
(gdb) bt
#0 uninit (ctx=0x90e0140) at libavfilter/af_adeclick.c:682
#1 0x00000000005ca3f3 in avfilter_free (filter=0x90e0140) at
libavfilter/avfilter.c:771
#2 0x00000000005d6218 in avfilter_graph_free (graph=0x7fffffffde50) at
libavfilter/avfiltergraph.c:126
#3 0x00000000004646ca in init_complex_filtergraph (fg=<optimized out>) at
fftools/ffmpeg_filter.c:377
#4 0x000000000042db4c in init_complex_filters () at
fftools/ffmpeg_opt.c:2102
#5 ffmpeg_parse_options (argc=<optimized out>, argv=<optimized out>) at
fftools/ffmpeg_opt.c:3324
#6 0x0000000000487b44 in main (argc=23, argv=0x7fffffffe118) at
fftools/ffmpeg.c:4872
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0xfeb693 to 0xfeb6d3:
0x0000000000feb693 <uninit+265>: pushfq
0x0000000000feb694 <uninit+266>: add $0x66,%al
0x0000000000feb696 <uninit+268>: subps 0x49c8d83(%rip),%xmm1
# 0x59b4420
0x0000000000feb69d <uninit+275>: pshufd $0x4e,%xmm1,%xmm2
0x0000000000feb6a2 <uninit+280>: addpd %xmm1,%xmm2
0x0000000000feb6a6 <uninit+284>: test %rax,%rax
0x0000000000feb6a9 <uninit+287>: je 0xfebc7b <uninit+1777>
0x0000000000feb6af <uninit+293>: divsd %xmm2,%xmm0
=> 0x0000000000feb6b3 <uninit+297>: mov $0x20,%esi
0x0000000000feb6b8 <uninit+302>: mov $0x5a698dc,%edx
0x0000000000feb6bd <uninit+307>: mov $0x1,%al
0x0000000000feb6bf <uninit+309>: mov %r15,%rdi
0x0000000000feb6c2 <uninit+312>: mov %rbx,%rcx
0x0000000000feb6c5 <uninit+315>: mov %r13,%r9
0x0000000000feb6c8 <uninit+318>: callq 0x58e7540 <av_log>
0x0000000000feb6cd <uninit+323>: mov 0xf(%rsp),%r12b
0x0000000000feb6d2 <uninit+328>: test %r12b,%r12b
End of assembler dump.
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/8237#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list