Opened 13 years ago
Closed 13 years ago
#10089 closed Bug Report - Crash (Duplicate)
mythcommflag occasionally dumps core due to NULL pointer dereference in ClassicLogoDetector::DetectEdges()
Reported by: | Owned by: | cpinkham | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | MythTV - Mythcommflag | Version: | 0.24.1 |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
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}
Change History (2)
Note: See
TracTickets for help on using
tickets.
Looks to be a dupe of #9581