[mythtv-commits] Re: Ticket #466: SEGV mythfrontend while attempting edit recording

MythTV mythtv at cvs.mythtv.org
Tue Oct 25 23:03:15 UTC 2005


#466: SEGV mythfrontend while attempting edit recording
---------------------+------------------------------------------------------
 Reporter:  stuarta  |        Owner:  ijr   
     Type:  defect   |       Status:  closed
 Priority:  minor    |    Milestone:  0.19  
Component:  mythtv   |      Version:  head  
 Severity:  medium   |   Resolution:  fixed 
---------------------+------------------------------------------------------
Changes (by stuarta):

  * resolution:  => fixed
  * summary:  SEGV mythfronend while attempting edit recording => SEGV
              mythfrontend while attempting edit recording
  * status:  new => closed

Comment:

 Initial testing doing exactly what I was doing before on
 the exact same recording it no longer crashed. But the
 frontend log did generate quite a lot of

 {{{
 [mpeg2video @ 0xb75a8270]warning: first frame is no keyframe
 }}}

 and at roughly the point where it was crashing it also showed

 {{{
 [dvbsub @ 0xb75a8270]Junk in packet
 [dvbsub @ 0xb75a8270]Invalid object location!
 }}}

 The action I was performing at the time was hit 'e' for edit.

 The most relevant part of the earlier backtrace I found was

 http://svn.mythtv.org/trac/attachment/ticket/466/frontend-bt.txt#L29

 this shows that drawwidth had gone negative. Debugging showed me at the
 time that the xstart was exceeding the width of the surface.

 From osdtypes.cpp, rev 7582, line 945-946
 {{{
     if (drawwidth + xstart > surface->width)
         drawwidth = surface->width - xstart - 1;
 }}}

 This calculation caused drawwidth to go negative when xstart >
 surface->width
 which memcpy didn't like very much.

 Looks like you have reworked the relevant area of the code to prevent this
 condition and therefore the crash.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/466>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list