[mythtv-commits] Ticket #10089: mythcommflag occasionally dumps core due to NULL pointer dereference in ClassicLogoDetector::DetectEdges()

MythTV noreply at mythtv.org
Tue Oct 11 22:36:20 UTC 2011


#10089: mythcommflag occasionally dumps core due to NULL pointer dereference in
ClassicLogoDetector::DetectEdges()
-------------------------------------------------+-------------------------
     Reporter:  Don Lewis <dl-mythtv@…>          |      Owner:  cpinkham
         Type:  Bug Report - Crash               |     Status:  new
     Priority:  minor                            |  Milestone:  unknown
    Component:  MythTV - Mythcommflag            |    Version:  0.24.1
     Severity:  medium                           |   Keywords:
Ticket locked:  0                                |
-------------------------------------------------+-------------------------
 I'm seeing sporadic mythcommflag failures caused by it attempting to
 dereference a NULL pointer and dump core.

 {{{
 mythtv-0.24.1-275.fc14.x86_64 package from ATRPMS.

 Please attach all output as a file in bug reports.
 MythTV Version   : v0.24.1-55-g8bc2a66
 MythTV Branch    : fixes/0.24
 Network Protocol : 63
 Library API      : 0.24.20110505-1
 QT Version       : 4.7.3
 Options compiled in:
  linux release using_alsa using_jack using_oss using_pulse
 using_pulseoutput using_backend using_bindings_perl using_bindings_python
 using_crystalhd using_dvb using_firewire using_frontend using_hdhomerun
 using_hdpvr using_iptv using_ivtv using_joystick_menu using_libfftw3
 using_lirc using_mheg using_opengl_video using_opengl_vsync using_qtdbus
 using_qtwebkit using_v4l using_x11 using_xrandr using_xv using_xvmc
 using_xvmc_vld using_xvmcw using_bindings_perl using_bindings_python
 using_mythtranscode using_opengl using_vdpau using_ffmpeg_threads
 using_live using_mheg


 (gdb) bt
 #0  0x000000000040b517 in ClassicLogoDetector::DetectEdges (this=0xd02040,
     frame=<value optimized out>, edges=0x7f92904c8010, edgeDiff=10)
     at ClassicLogoDetector.cpp:537
 #1  0x000000000040c06e in ClassicLogoDetector::searchForLogo (
     this=<value optimized out>, player=0xb8db50) at
 ClassicLogoDetector.cpp:132
 #2  0x000000000041e85c in ClassicCommDetector::go (this=0xb8d570)
     at ClassicCommDetector.cpp:357
 #3  0x000000000045d418 in DoFlagCommercials (program_info=0x7fff25314a60,
     outputfilename=..., useDB=true) at main.cpp:612
 #4  FlagCommercials (program_info=0x7fff25314a60, outputfilename=...,
 useDB=
     true) at main.cpp:840
 #5  0x000000000045ef6f in FlagCommercials (chanid=4049, starttime=...,
     outputfilename=..., useDB=true) at main.cpp:873
 #6  0x00000000004650bb in main (argc=5, argv=<value optimized out>)
     at main.cpp:1351


 (gdb) list
 532                     continue;
 533
 534                 pos = y * width + x;
 535                 p = buf[pos];
 536
 537                 if (( abs(buf[y * width + (x - r)] - p) >= edgeDiff)
 ||
 538                     ( abs(buf[y * width + (x + r)] - p) >= edgeDiff))
 539                 {
 540                     edges[pos].horiz++;
 541                     edgeCount++;

 (gdb) print x
 $1 = 22
 (gdb) print y
 $2 = 22
 (gdb) print width
 $3 = 704
 (gdb) print r
 $4 = 2
 (gdb) print p
 Cannot access memory at address 0x3c96
 (gdb) print pos
 $5 = 15510
 (gdb) print buf[15510]
 Cannot access memory at address 0x3c96
 (gdb) print buf
 $6 = (unsigned char *) 0x0
 (gdb) print frame
 $7 = <value optimized out>

 (gdb) up
 #1  0x000000000040c06e in ClassicLogoDetector::searchForLogo (
     this=<value optimized out>, player=0xb8db50) at
 ClassicLogoDetector.cpp:132
 132                 DetectEdges(vf, edgeCounts, edgeDiffs[i]);

 (gdb) list
 127                 }
 128
 129                 if (!commDetector->fullSpeed)
 130                     usleep(10000);
 131
 132                 DetectEdges(vf, edgeCounts, edgeDiffs[i]);
 133
 134                 seekFrame += seekIncrement;
 135                 loops++;
 136

 (gdb) print *vf
 $9 = {codec = FMT_YV12, buf = 0x0, width = 528, height = 480, bpp = 12,
 size =
     380162, frameNumber = 2692, timecode = 62178107, disp_timecode =
 96288,
   priv = {0x0, 0x0, 0x0, 0x0}, qscale_table = 0x0, qstride = 0,
   interlaced_frame = 1, top_field_first = 1, repeat_pict = 0, forcekey =
 0,
   pitches = {528, 264, 264}, offsets = {0, 253440, 316800}, pix_fmt = 0}
 }}}

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/10089>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list