Opened 8 years ago

Closed 8 years ago

#5115 closed defect (fixed)

SIGFPE in ivf_write_trailer

Reported by: tsmith Owned by:
Priority: important Component: avformat
Version: git-master Keywords: ivf crash fpe regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug:
FPE in ivf_write_traile at libavformat/ivfenc.c:80

Program received signal SIGFPE, Arithmetic exception.
0x0000000000a2c15e in ivf_write_trailer (s=<optimized out>) at libavformat/ivfenc.c:80
80	        avio_wl64(pb, ctx->frame_cnt * ctx->sum_delta_pts / (ctx->frame_cnt - 1));
(gdb) bt
#0  0x0000000000a2c15e in ivf_write_trailer (s=<optimized out>)
    at libavformat/ivfenc.c:80
#1  0x0000000000b4fd35 in av_write_trailer (s=0x61b00001ea80) at libavformat/mux.c:1083
#2  0x0000000000590d90 in transcode () at ffmpeg.c:4190
#3  0x00000000005787b8 in main (argc=<optimized out>, argv=<optimized out>)
    at ffmpeg.c:4334

How to reproduce:

% ffmpeg -i <test_case> -vcodec copy -an out.ivf

ffmpeg version N-77454-ge42e0b1 Copyright (c) 2000-2015 the FFmpeg developers
  built with Ubuntu clang version 3.7.1-svn253742-1~exp1 (branches/release_37) (based on LLVM 3.7.1)
  configuration: --cc=clang --cxx=clang++ --disable-libxcb --disable-xlib --disable-logging --disable-ffprobe --disable-ffplay --disable-sdl --disable-ffserver --disable-doc --disable-pthreads --disable-network --disable-d3d11va --disable-dxva2 --disable-vaapi --disable-vda --disable-vdpau --disable-stripping --disable-runtime-cpudetect --disable-optimizations --disable-pic
  libavutil      55. 11.100 / 55. 11.100
  libavcodec     57. 20.100 / 57. 20.100
  libavformat    57. 20.100 / 57. 20.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 21.101 /  6. 21.101
  libswscale      4.  0.100 /  4.  0.100

built on linux x86_64

Attachments (1)

test_case.ivf (119 bytes ) - added by tsmith 8 years ago.

Download all attachments as: .zip

Change History (4)

by tsmith, 8 years ago

Attachment: test_case.ivf added

comment:1 by Carl Eugen Hoyos, 8 years ago

Keywords: ivf crash fpe regression added
Reproduced by developer: set
Status: newopen

Regression since 3a18d3fa047535980aa5368ebfda30ee0f1579cc

$ valgrind ffmpeg_g -y -i test_case.ivf -vcodec copy out.ivf
==2049== Memcheck, a memory error detector
==2049== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==2049== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==2049== Command: ffmpeg_g -y -i test_case.ivf -vcodec copy out.ivf
==2049==
ffmpeg version N-77567-g29e6606 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      55. 11.100 / 55. 11.100
  libavcodec     57. 20.100 / 57. 20.100
  libavformat    57. 21.100 / 57. 21.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 22.100 /  6. 22.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[vp9 @ 0xb72af00] Invalid compressed header size
Input #0, ivf, from 'test_case.ivf':
  Duration: 00:00:00.03, start: 0.000000, bitrate: 28 kb/s
    Stream #0:0: Video: vp9 (Profile 0) (VP90 / 0x30395056), yuv420p(pc), 45072x8, 30 tbr, 30 tbn, 30 tbc
Output #0, ivf, to 'out.ivf':
  Metadata:
    encoder         : Lavf57.21.100
    Stream #0:0: Video: vp9 (VP90 / 0x30395056), yuv420p, 45072x8, q=2-31, 30 tbr, 30 tbn, 30 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
Press [q] to stop, [?] for help
==2049==
==2049== Process terminating with default action of signal 8 (SIGFPE)
==2049==  Integer divide by zero at address 0x405A98AAF
==2049==    at 0x5DAC03: ivf_write_trailer (ivfenc.c:80)
==2049==    by 0x62A909: av_write_trailer (mux.c:1123)
==2049==    by 0x496C04: transcode (ffmpeg.c:4153)
==2049==    by 0x479FBA: main (ffmpeg.c:4311)
==2049==
==2049== HEAP SUMMARY:
==2049==     in use at exit: 172,937 bytes in 49 blocks
==2049==   total heap usage: 159 allocs, 110 frees, 772,869 bytes allocated
==2049==
==2049== LEAK SUMMARY:
==2049==    definitely lost: 0 bytes in 0 blocks
==2049==    indirectly lost: 0 bytes in 0 blocks
==2049==      possibly lost: 0 bytes in 0 blocks
==2049==    still reachable: 172,937 bytes in 49 blocks
==2049==         suppressed: 0 bytes in 0 blocks
==2049== Rerun with --leak-check=full to see details of leaked memory
==2049==
==2049== For counts of detected and suppressed errors, rerun with: -v
==2049== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
Floating point exception

comment:2 by Carl Eugen Hoyos, 8 years ago

Priority: normalimportant

comment:3 by Michael Niedermayer, 8 years ago

Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.