Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[vdr] BUG: VDR 1.3.12 crashes in replay mode -- concerning time searchmenu
Hi,
Jacek Pop?awski found this bug and here are the steps to reproduce it:
1. Replay a recording
2. Press the red key
3. Press the menu key
4. Press the menu key
5. Press any number key
I don't know if my test sequence above makes any sense but it is likely to
happen if one hits the wrong remote button by mistake.
This is the backtrace:
(gdb) backtrace
#0 0x080c0196 in cReplayControl::TimeSearchDisplay (this=0x8c38690) at
menu.c:3153
#1 0x080c02c8 in cReplayControl::TimeSearchProcess (this=0x8c38690, Key=k0)
at menu.c:3168
#2 0x080c0aab in cReplayControl::ProcessKey (this=0x8c38690, Key=k0) at
menu.c:3350
#3 0x080fb541 in main (argc=20, argv=0xbfffe1b4) at vdr.c:722
(gdb)
Here is the crashing function:
void cReplayControl::TimeSearchDisplay(void)
{
char buf[64];
strcpy(buf, tr("Jump: "));
int len = strlen(buf);
char h10 = '0' + (timeSearchTime >> 24);
char h1 = '0' + ((timeSearchTime & 0x00FF0000) >> 16);
char m10 = '0' + ((timeSearchTime & 0x0000FF00) >> 8);
char m1 = '0' + (timeSearchTime & 0x000000FF);
char ch10 = timeSearchPos > 3 ? h10 : '-';
char ch1 = timeSearchPos > 2 ? h1 : '-';
char cm10 = timeSearchPos > 1 ? m10 : '-';
char cm1 = timeSearchPos > 0 ? m1 : '-';
sprintf(buf + len, "%c%c:%c%c", ch10, ch1, cm10, cm1);
displayReplay->SetJump(buf); // <<<<<<<<<<<< this instruction fails
}
It seems that "displayReplay" is no longer valid as another OSD was shown
meanwhile.
For any reason, the "menu" key doesn't go through
cReplayControl::TimeSearchProcess() where the default case would set
"timeSearchActive" to false.
That's why the later key press still reaches cReplayControl::TimeSearchDisplay().
Bye.
--
Dipl.-Inform. (FH) Reinhard Nissl
mailto:rnissl@gmx.de
Home |
Main Index |
Thread Index