diff options
Diffstat (limited to 'multimedia/libxine/files/patch-src:input:vcd:xineplug_inp_vcd.c')
-rw-r--r-- | multimedia/libxine/files/patch-src:input:vcd:xineplug_inp_vcd.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/multimedia/libxine/files/patch-src:input:vcd:xineplug_inp_vcd.c b/multimedia/libxine/files/patch-src:input:vcd:xineplug_inp_vcd.c new file mode 100644 index 000000000000..0640ebdca1fa --- /dev/null +++ b/multimedia/libxine/files/patch-src:input:vcd:xineplug_inp_vcd.c @@ -0,0 +1,55 @@ +--- src/input/vcd/xineplug_inp_vcd.c 2004/04/28 10:41:46 1.108 ++++ src/input/vcd/xineplug_inp_vcd.c 2004/07/18 14:47:21 1.109 +@@ -48,6 +48,7 @@ + #define SHORT_PLUGIN_NAME "VCDX" + #define MRL_PREFIX "vcdx://" + #define MRL_PREFIX_LEN strlen(MRL_PREFIX) ++#define MRL_MAX_LEN 1024 + + #define xine_config_entry_t xine_cfg_entry_t + +@@ -465,7 +466,7 @@ + return false; + } + +- count = sscanf (p, "%[^@]@%1[EePpSsTt]%u", ++ count = sscanf (p, "%1024[^@]@%1[EePpSsTt]%u", + device_str, type_str, &num); + itemid->num = num; + +@@ -489,7 +490,7 @@ + { + /* 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]); +@@ -781,7 +782,7 @@ + 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; +@@ -913,7 +914,7 @@ + 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); + } + + /* +@@ -1425,7 +1426,7 @@ + { + 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; |