Opened 11 years ago

Closed 11 years ago

#6041 closed defect (fixed)

lircrc with modes crashes mythfrontend

Reported by: hp@… Owned by: danielk
Priority: minor Milestone: 0.22
Component: mythtv Version: head
Severity: low Keywords: lirc
Cc: Ticket locked: no

Description

I suppose it is related to #5583:

Since above-mentioned ticket got its changeset, my mythfrontend crashes on startup. Removing everything non-myth AND the begin/end mode lines from .lircrc works.

See attached bt full and lircrc

Attachments (2)

gdb.txt (8.3 KB) - added by hp@… 11 years ago.
bt full and output of mythfrontend -v all
lircrc (8.0 KB) - added by hp@… 11 years ago.
lircrc with modes, causing segfault

Download all attachments as: .zip

Change History (6)

Changed 11 years ago by hp@…

Attachment: gdb.txt added

bt full and output of mythfrontend -v all

Changed 11 years ago by hp@…

Attachment: lircrc added

lircrc with modes, causing segfault

comment:1 Changed 11 years ago by eric.bosch@…

I saw the exact same issue on mine, however I was able to resolve it by removing the begin system ... end system clause from my lircrc file. Problem seems to be at places in the file that refer to external programs

comment:2 Changed 11 years ago by hp@…

With my limited knowledge, I deduced that the call to

lirc_init( _program_, _verbose_ )

is missing. That call is mandatory... And I don't really understand the whole socket init stuff - as no connection between lirc and the opened socket is made... (And - afaik - the remote lircd stuff should be handled by the/one local lircd).

As a workaround, inserting: lirc_init( "mythtv", 1 )

into LIRC::Init works.

comment:3 Changed 11 years ago by danielk

Component: libmythuimythtv
Milestone: unknown0.22
Owner: changed from stuartm to danielk
Priority: majorminor
Severity: mediumlow
Status: newaccepted

comment:4 Changed 11 years ago by danielk

Resolution: fixed
Status: acceptedclosed

(In [19519]) Fixes #6041. Don't segfault on old style lirc config files.

The fallback parser in the lirc_client lib relies on some static globals which are only initialized if lirc_init() is called. We stopped calling that in [19499] because of some other bugs in that function. Modern lircrc's were unaffected so this problem didn't turn up in my testing. This pulls in the lirc_client.c and fixes the bugs and gets rid of the static globals so we can call lirc_init() and allow the legacy parser code to work correctly.

Note: See TracTickets for help on using tickets.