[mythtv-commits] Ticket #6715: SIGABRT in RemoteEnocder::GetFrameRate()

MythTV mythtv at cvs.mythtv.org
Sun Jul 12 09:44:17 UTC 2009


#6715: SIGABRT in RemoteEnocder::GetFrameRate()
------------------------------------+---------------------------------------
 Reporter:  mythtv at scientician.org  |       Owner:  ijr    
     Type:  defect                  |      Status:  new    
 Priority:  minor                   |   Milestone:  unknown
Component:  MythTV - General        |     Version:  head   
 Severity:  medium                  |     Mlocked:  0      
------------------------------------+---------------------------------------
 changeset:18098 introduced a possible error path assertion failure in
 `RemoteEncoder::GetFrameRate()` at
 [source:trunk/mythtv/libs/libmythtv/remoteencoder.cpp at 20523#L167
 remoteencoder.cpp:167].  Here is how the assertion is triggered:

  1. `RemoteEnocder::GetFrameRate()` creates `strlist`
  1. `RemoteEnocder::GetFrameRate()` passes `strlist` to
 `RemoteEnocder::SendReceiveStringList()`
  1. `RemoteEnocder::SendReceiveStringList()` passes `strlist` to
 `MythSocket::readStringList()`
  1. `MythSocket::readStringList()` calls `strlist.clear()`
  1. `MythSocket::readStringList()` fails in some way (e.g., times out) and
 returns `false`
  1. `RemoteEnocder::SendReceiveStringList()` returns `false`
  1. The variable `ok` in `RemoteEnocder::GetFrameRate()` remains `false`,
 so line 167 is executed
  1. Line 167 tries to access element 0 of `strlist`, but `strlist` is
 empty
  1. Qt aborts because 0 is out of the range of valid indexes into
 `strlist`

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


More information about the mythtv-commits mailing list