summaryrefslogtreecommitdiff
path: root/multimedia/xine-lib/patches/patch-ba
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/xine-lib/patches/patch-ba')
-rw-r--r--multimedia/xine-lib/patches/patch-ba57
1 files changed, 57 insertions, 0 deletions
diff --git a/multimedia/xine-lib/patches/patch-ba b/multimedia/xine-lib/patches/patch-ba
new file mode 100644
index 00000000000..49e22f18e69
--- /dev/null
+++ b/multimedia/xine-lib/patches/patch-ba
@@ -0,0 +1,57 @@
+$NetBSD: patch-ba,v 1.1 2004/08/10 11:24:46 drochner Exp $
+
+--- src/input/vcd/xineplug_inp_vcd.c.orig 2004-06-13 23:28:56.000000000 +0200
++++ src/input/vcd/xineplug_inp_vcd.c
+@@ -48,6 +48,7 @@
+ #define SHORT_PLUGIN_NAME "VCD"
+ #define MRL_PREFIX "vcd://"
+ #define MRL_PREFIX_LEN strlen(MRL_PREFIX)
++#define MRL_MAX_LEN 1024
+
+ #define xine_config_entry_t xine_cfg_entry_t
+
+@@ -474,7 +475,7 @@ vcd_parse_mrl(/*in*/ const char *default
+ return false;
+ }
+
+- count = sscanf (p, "%[^@]@%1[EePpSsTt]%u",
++ count = sscanf (p, "%1024[^@]@%1[EePpSsTt]%u",
+ device_str, type_str, &num);
+ itemid->num = num;
+
+@@ -498,7 +499,7 @@ vcd_parse_mrl(/*in*/ const char *default
+ {
+ /* No device/file given, so use the default device and try again. */
+ if (NULL == default_vcd_device) return false;
+- strcpy(device_str, default_vcd_device);
++ strncpy(device_str, default_vcd_device, MRL_MAX_LEN);
+ if (p[0] == '@') p++;
+ count = sscanf (p, "%1[EePpSsTt]%u", type_str, &num);
+ type_str[0] = toupper(type_str[0]);
+@@ -790,7 +791,7 @@ static xine_mrl_t **
+ vcd_class_get_dir (input_class_t *this_gen, const char *filename,
+ int *num_files) {
+
+- char intended_vcd_device[1024]="";
++ char intended_vcd_device[MRL_MAX_LEN+1]="";
+ vcdinfo_itemid_t itemid;
+
+ vcd_input_class_t *class = (vcd_input_class_t *) this_gen;
+@@ -922,7 +923,7 @@ vcd_class_get_description (input_class_t
+ static char *
+ vcd_class_get_identifier (input_class_t *this_gen) {
+ dbg_print((INPUT_DBG_CALL|INPUT_DBG_EXT), "called\n");
+- return SHORT_PLUGIN_NAME;
++ return strdup(SHORT_PLUGIN_NAME);
+ }
+
+ /*
+@@ -1452,7 +1453,7 @@ vcd_class_get_instance (input_class_t *c
+ {
+ vcd_input_class_t *class = (vcd_input_class_t *) class_gen;
+
+- char intended_vcd_device[1024]="";
++ char intended_vcd_device[MRL_MAX_LEN+1]="";
+ vcdinfo_itemid_t itemid;
+ char *check_mrl=NULL;
+ bool used_default;