Opened 10 years ago

Closed 10 years ago

#6715 closed defect (fixed)

SIGABRT in RemoteEnocder::GetFrameRate()

Reported by: mythtv@… Owned by: danielk
Priority: minor Milestone: 0.22
Component: MythTV - General Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

changeset:18098 introduced a possible error path assertion failure in RemoteEncoder::GetFrameRate() at remoteencoder.cpp:167. Here is how the assertion is triggered:

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

Attachments (1)

mythtv_assert_fix.patch (913 bytes) - added by mythtv@… 10 years ago.
possible fix

Download all attachments as: .zip

Change History (3)

Changed 10 years ago by mythtv@…

Attachment: mythtv_assert_fix.patch added

possible fix

comment:1 Changed 10 years ago by danielk

Milestone: unknown0.22
Owner: changed from Isaac Richards to danielk
Status: newassigned

comment:2 Changed 10 years ago by danielk

Resolution: fixed
Status: assignedclosed

(In [20881]) Fixes #6715. Improve debugging output on GetFrameRate?() when backend socket handling dies on us.

Note: See TracTickets for help on using tickets.