summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/input/vcd/xineplug_inp_vcd.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/input/vcd/xineplug_inp_vcd.c b/src/input/vcd/xineplug_inp_vcd.c
index 65f04563c..e4b3210ad 100644
--- a/src/input/vcd/xineplug_inp_vcd.c
+++ b/src/input/vcd/xineplug_inp_vcd.c
@@ -1,5 +1,5 @@
/*
- $Id: xineplug_inp_vcd.c,v 1.18 2004/06/13 21:28:56 miguelfreitas Exp $
+ $Id: xineplug_inp_vcd.c,v 1.19 2004/07/18 14:46:59 rockyb Exp $
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
@@ -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_vcd_device, /*in*/ char *mrl,
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_vcd_device, /*in*/ char *mrl,
{
/* 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 *this_gen)
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 *class_gen, xine_stream_t *stream,
{
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;