"C.Y.M" wrote:
Can you send me a sample set of timers.conf entries with which
you can reproduce this?
Also, just to be sure: your VDR has _one_ full featured DVB card, right?
Klaus
Yes, only one FF card in my setup. Here is an example of the
timers.conf. Just make about 5-10 timers, 1 min long, and have them
back to back.
1:S91.0W-4100-13-106-10106:19:0900:0901:50:99:I Love Lucy:
1:S91.0W-4100-16-105-10105:19:0901:0902:50:99:Nash Bridges:
1:S82.0W-4102-211-102-10102:19:0902:0903:50:99:Paid Programming:
1:S82.0W-4102-201-347-10347:19:0903:0904:50:99:Weird Science:
I tried this and actually was able to reproduce this.
Unfortunately it didn't happen any more since I have inserted
a few lines to test something. Will try that again tomorrow.
If somebody would like to try this:
--- remux.c 2004/10/16 09:11:52 1.19
+++ remux.c 2004/10/19 16:23:00
@@ -556,6 +556,11 @@
int resultCount = 0;
uchar *data = resultBuffer->Get(resultCount);
if (data) {
+ if (!synced && resultCount > RESULTBUFFERSIZE * 10 / 8) {//XXX
+ dsyslog("clearing resultBuffer before sync");
+ Clear();
+ return NULL;
+ }//XXX
for (int i = 0; i < resultCount - 3; i++) {
if (data[i] == 0 && data[i + 1] == 0 && data[i + 2] == 1) {
int l = 0;
and let me know whether this message is ever logged, that would be
nice.
Klaus
Thanks for the test code. I have rebuilt vdr with this patch and now I
can not seem to reproduce the buffer overflow either... Could the extra
time it takes to process this new code be preventing some kind of race
condition? So far I have not seen any "clearing resultBuffer before
sync" messages... I'll keep testing.