Opened 20 years ago
Closed 20 years ago
#2338 closed defect (fixed)
prbuffer NULL pointer check missing in TV::StopStuff
| Reported by: | Owned by: | Isaac Richards | |
|---|---|---|---|
| Priority: | minor | Milestone: | unknown |
| Component: | mythtv | Version: | head |
| Severity: | medium | Keywords: | |
| Cc: | Ticket locked: | no |
Description
When I can't get stream from one of my backends such thing happen:
2006-09-07 08:26:54.412 NVP::OpenFile(): Error, file not found: /media/mythstorage/69999_20060907082647.mpg
2006-09-07 08:26:54.419 TV Error: StartPlayer(): NVP is not playing after 20000 msec
QObject::disconnect: Unexpected null parameter
2006-09-07 08:26:57.904 TV Error: LiveTV not successfully started
2006-09-07 08:26:57.904 TV: Attempting to change from WatchingLiveTV to None
Segmentation fault (core dumped)
#0 0x4053bb45 in TV::StopStuff (this=0x83b1010, stopRingBuffers=true,
stopPlayers=true, stopRecorders=true) at tv_play.cpp:1215
1215 tv_play.cpp: No such file or directory.
in tv_play.cpp
(gdb) where
#0 0x4053bb45 in TV::StopStuff (this=0x83b1010, stopRingBuffers=true,
stopPlayers=true, stopRecorders=true) at tv_play.cpp:1215
#1 0x405903cc in TV::HandleStateChange (this=0x83b1010) at tv_play.cpp:952
#2 0x4059945c in TV::RunTV (this=0x83b1010) at tv_play.cpp:1514
#3 0x4059b24b in TV::EventThread (param=0x1) at tv_play.cpp:1475
#4 0x41fc8297 in start_thread () from /lib/tls/libpthread.so.0
#5 0x421a037e in clone () from /lib/tls/libc.so.6
#6 0x42e46bb0 in ?? ()
(gdb) p prbuffer
$1 = (class RingBuffer *) 0x0
In mythtv/libs/libmythtv/tv_play.cpp is the code:
if (prbuffer->isDVD())
{
VERBOSE(VB_PLAYBACK,LOC + " StopStuff() -- get dvd player out of still frame or wait status");
prbuffer->DVD()->IgnoreStillOrWait(true);
}
I don't know should it be always initialized or not and therefore don't know should we first check prbuffer value here or is bug somewhere else. I don't have DVD plugin installed.
Change History (2)
Note:
See TracTickets
for help on using tickets.

(In [11070]) Closes #2338. add prbuffer null check in tv::stopstuff.