summaryrefslogtreecommitdiffstats
path: root/extra/mplayer/asmrules_fix_20061231.diff
diff options
context:
space:
mode:
Diffstat (limited to 'extra/mplayer/asmrules_fix_20061231.diff')
-rw-r--r--extra/mplayer/asmrules_fix_20061231.diff45
1 files changed, 45 insertions, 0 deletions
diff --git a/extra/mplayer/asmrules_fix_20061231.diff b/extra/mplayer/asmrules_fix_20061231.diff
new file mode 100644
index 000000000..530a4eac2
--- /dev/null
+++ b/extra/mplayer/asmrules_fix_20061231.diff
@@ -0,0 +1,45 @@
+--- stream/realrtsp/asmrp.c (revision 20381)
++++ stream/realrtsp/asmrp.c (working copy)
+@@ -40,6 +40,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
++#include "asmrp.h"
+
+ /*
+ #define LOG
+@@ -645,8 +646,10 @@
+ #ifdef LOG
+ printf ("rule #%d is true\n", rule_num);
+ #endif
+- matches[num_matches] = rule_num;
+- num_matches++;
++ if(num_matches < MAX_RULEMATCHES - 1)
++ matches[num_matches++] = rule_num;
++ else
++ printf("Ignoring matched asm rule %d, too many matched rules.\n", rule_num);
+ }
+
+ rule_num++;
+--- stream/realrtsp/real.c (revision 20381)
++++ stream/realrtsp/real.c (working copy)
+@@ -271,7 +271,7 @@
+ int j=0;
+ int n;
+ char b[64];
+- int rulematches[16];
++ int rulematches[MAX_RULEMATCHES];
+
+ #ifdef LOG
+ printf("calling asmrp_match with:\n%s\n%u\n", desc->stream[i]->asm_rule_book, bandwidth);
+--- stream/realrtsp/asmrp.h (revision 20381)
++++ stream/realrtsp/asmrp.h (working copy)
+@@ -40,6 +40,8 @@
+ #ifndef HAVE_ASMRP_H
+ #define HAVE_ASMRP_H
+
++#define MAX_RULEMATCHES 16
++
+ int asmrp_match (const char *rules, int bandwidth, int *matches) ;
+
+ #endif