Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: Buffer Overflows in vdr-1.3.13



Klaus Schmidinger wrote:
"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.




Home | Main Index | Thread Index