diff options
Diffstat (limited to 'extra/mplayer/asmrules_fix_20061231.diff')
-rw-r--r-- | extra/mplayer/asmrules_fix_20061231.diff | 45 |
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 |