[FFmpeg-trac] #837(undetermined:new): crash with pam file generated by ffmpeg

FFmpeg trac at avcodec.org
Tue Dec 27 21:05:35 CET 2011


#837: crash with pam file generated by ffmpeg
-------------------------------------+-------------------------------------
             Reporter:  ami_stuff    |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 https://ffmpeg.org/trac/ffmpeg/attachment/ticket/833/gray.png

 ffmpeg -i gray.png out.pam

 ffmpeg -i out.pam out.bmp

 {{{
 (gdb) r -i out.pam out.bmp
 Starting program: F:\MinGW\msys\1.0\ffmpeg-HEAD-834f80d/ffmpeg_g.exe -i
 out.pam
 out.bmp
 [New Thread 3540.0x2d8]
 ffmpeg version 0.9.0.git-834f80d, Copyright (c) 2000-2011 the FFmpeg
 developers
   built on Dec 22 2011 14:07:40 with gcc 4.5.2
   configuration: --disable-ffplay --disable-ffserver --disable-asm
 --disable-yas
 m --disable-shared --enable-static
   libavutil      51. 32.100 / 51. 32.100
   libavcodec     53. 47.100 / 53. 47.100
   libavformat    53. 28.100 / 53. 28.100
   libavdevice    53.  4.100 / 53.  4.100
   libavfilter     2. 53.  0 /  2. 53.  0
   libswscale      2.  1.100 /  2.  1.100
   libswresample   0.  5.100 /  0.  0.100

 Program received signal SIGFPE, Arithmetic exception.
 0x006f0147 in pnm_decode_frame (avctx=0x3d5ef98, data=0x22f828,
     data_size=0x22faf8, avpkt=0x22f948) at libavcodec/pnmdec.c:128
 128                     unsigned int j, f = (255 * 128 + s->maxval / 2) /
 s->max
 val;
 (gdb) bt
 #0  0x006f0147 in pnm_decode_frame (avctx=0x3d5ef98, data=0x22f828,
     data_size=0x22faf8, avpkt=0x22f948) at libavcodec/pnmdec.c:128
 #1  0x005091f2 in avcodec_decode_video2 (avctx=0x3d5ef98,
 picture=0x22f828,
     got_picture_ptr=0x22faf8, avpkt=0x22f948) at libavcodec/utils.c:953
 #2  0x0043d9e1 in try_decode_frame (ic=0x3d58b60, options=0x3d60ff0)
     at libavformat/utils.c:2258
 #3  avformat_find_stream_info (ic=0x3d58b60, options=0x3d60ff0)
     at libavformat/utils.c:2558
 #4  0x0040c2d2 in opt_input_file (o=0x22fd98, opt=0x3d60d38 "i",
     filename=<value optimized out>) at ffmpeg.c:3485
 #5  0x00410ea2 in parse_option (optctx=0x22fd98, opt=<value optimized
 out>,
     arg=0x3d60d3a "out.pam", options=0xa3b460) at cmdutils.c:293
 #6  0x00411250 in parse_options (optctx=0x22fd98, argc=4,
     argv=<value optimized out>, options=0xa3b460,
     parse_arg_function=0x40dbbc <opt_output_file>) at cmdutils.c:326
 #7  0x0040f41a in main (argc=4, argv=<value optimized out>) at
 ffmpeg.c:4865
 (gdb) disass $pc-32,$pc+32
 Dump of assembler code from 0x6f0127 to 0x6f0167:
    0x006f0127 <pnm_decode_frame+1095>:  sub    0x4(%ebx),%eax
    0x006f012a <pnm_decode_frame+1098>:  add    $0x4c,%esp
    0x006f012d <pnm_decode_frame+1101>:  pop    %ebx
    0x006f012e <pnm_decode_frame+1102>:  pop    %esi
    0x006f012f <pnm_decode_frame+1103>:  pop    %edi
    0x006f0130 <pnm_decode_frame+1104>:  pop    %ebp
    0x006f0131 <pnm_decode_frame+1105>:  ret
    0x006f0132 <pnm_decode_frame+1106>:  mov    0x130(%ebx),%ecx
    0x006f0138 <pnm_decode_frame+1112>:  mov    %ecx,%eax
    0x006f013a <pnm_decode_frame+1114>:  shr    $0x1f,%eax
    0x006f013d <pnm_decode_frame+1117>:  add    %ecx,%eax
    0x006f013f <pnm_decode_frame+1119>:  sar    %eax
    0x006f0141 <pnm_decode_frame+1121>:  add    $0x7f80,%eax
    0x006f0146 <pnm_decode_frame+1126>:  cltd
 => 0x006f0147 <pnm_decode_frame+1127>:  idiv   %ecx
    0x006f0149 <pnm_decode_frame+1129>:  mov    0x18(%esp),%edx
    0x006f014d <pnm_decode_frame+1133>:  test   %edx,%edx
    0x006f014f <pnm_decode_frame+1135>:  je     0x6f0174
 <pnm_decode_frame+1172>
    0x006f0151 <pnm_decode_frame+1137>:  xor    %edx,%edx
    0x006f0153 <pnm_decode_frame+1139>:  mov    0x18(%esp),%edi
    0x006f0157 <pnm_decode_frame+1143>:  jmp    0x6f015e
 <pnm_decode_frame+1150>
    0x006f0159 <pnm_decode_frame+1145>:  lea    0x0(%esi),%esi
    0x006f015c <pnm_decode_frame+1148>:  mov    (%ebx),%esi
    0x006f015e <pnm_decode_frame+1150>:  movzbl (%esi,%edx,1),%ecx
    0x006f0162 <pnm_decode_frame+1154>:  imul   %eax,%ecx
    0x006f0165 <pnm_decode_frame+1157>:  add    $0x40,%ecx
 End of assembler dump.
 (gdb) info all-registers
 eax            0x7f80   32640
 ecx            0x0      0
 edx            0x0      0
 ebx            0x3d61290        64361104
 esp            0x22f690 0x22f690
 ebp            0x4480020        0x4480020
 esi            0x43b0067        70975591
 edi            0x3d5ef98        64352152
 eip            0x6f0147 0x6f0147 <pnm_decode_frame+1127>
 eflags         0x10202  [ IF RF ]
 cs             0x1b     27
 ss             0x23     35
 ds             0x23     35
 es             0x23     35
 fs             0x3b     59
 gs             0x0      0
 st0            0        (raw 0x00000000000000000000)
 st1            0        (raw 0x00000000000000000000)
 st2            0        (raw 0x00000000000000000000)
 st3            -1       (raw 0xbfff8000000000000000)
 st4            -1       (raw 0xbfff8000000000000000)
 st5            9.9999999999999995e-021  (raw 0x3fbcbce5086492111aeb)
 st6            1.4411518807585587e+017  (raw 0x40388000000000000000)
 st7            3.6028797018963968e+018  (raw 0x403cc800000000000002)
 fctrl          0xffff037f       -64641
 fstat          0xffff0420       -64480
 ftag           0xffffffff       -1
 fiseg          0x0      0
 fioff          0x0      0
 foseg          0xffff0000       -65536
 fooff          0x0      0
 fop            0x0      0
 xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
   v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0},
   uint128 = 0x00000000000000000000000000000000}
 mxcsr          0x1f80   [ IM DM ZM OM UM PM ]
 mm0            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
     0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
 mm1            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
     0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
 mm2            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
     0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
 mm3            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
   v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x80}}
 mm4            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
   v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x80}}
 mm5            {uint64 = 0xbce5086492111aeb, v2_int32 = {0x92111aeb,
     0xbce50864}, v4_int16 = {0x1aeb, 0x9211, 0x864, 0xbce5}, v8_int8 =
 {0xeb,
     0x1a, 0x11, 0x92, 0x64, 0x8, 0xe5, 0xbc}}
 mm6            {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
   v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x80}}
 mm7            {uint64 = 0xc800000000000002, v2_int32 = {0x2, 0xc8000000},
   v4_int16 = {0x2, 0x0, 0x0, 0xc800}, v8_int8 = {0x2, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0xc8}}
 }}}

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


More information about the FFmpeg-trac mailing list