diff options
author | diego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2004-06-25 16:49:53 +0000 |
---|---|---|
committer | diego <diego@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2004-06-25 16:49:53 +0000 |
commit | 42b784ac1a0c71e7d494db68ff700101461f840f (patch) | |
tree | 5f64d2b91ff78cbb9454456f0b9203faf1812d7e /libvo/vo_dxr3.c | |
parent | 80f2b9c5a68d9899965fc30001807cd827ca4174 (diff) | |
download | mpv-42b784ac1a0c71e7d494db68ff700101461f840f.tar.bz2 mpv-42b784ac1a0c71e7d494db68ff700101461f840f.tar.xz |
string handling security fixes
patch by Nicholas Kain, Alexander Strasser <eclipse7@gmx.net>
reviewed by Pontscho, Alex, Rich
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12647 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_dxr3.c')
-rw-r--r-- | libvo/vo_dxr3.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/libvo/vo_dxr3.c b/libvo/vo_dxr3.c index aea525876e..99518a0327 100644 --- a/libvo/vo_dxr3.c +++ b/libvo/vo_dxr3.c @@ -175,12 +175,14 @@ int dxr3_overlay = 0; int dxr3_device_num = 0; int dxr3_norm = 0; +#define MAX_STR_SIZE 80 /* length for the static strings */ + /* File descriptors */ static int fd_control = -1; static int fd_video = -1; static int fd_spu = -1; -static char fdv_name[80]; -static char fds_name[80]; +static char fdv_name[MAX_STR_SIZE]; +static char fds_name[MAX_STR_SIZE]; #ifdef SPU_SUPPORT /* on screen display/subpics */ @@ -865,7 +867,7 @@ static void check_events(void) static uint32_t preinit(const char *arg) { - char devname[80]; + char devname[MAX_STR_SIZE]; int fdflags = O_WRONLY; /* Parse commandline */ @@ -1136,13 +1138,13 @@ static int overlay_read_state(overlay_t *o, char *p) int j; if(!p) { - strcpy(fname,getenv("HOME")); - strcat(fname,"/.overlay"); + strlcpy(fname, getenv("HOME"), sizeof( fname )); + strlcat(fname,"/.overlay", sizeof( fname )); } else - strcpy(fname,p); + strlcpy(fname, p, sizeof( fname )); sprintf(tmp,"/res_%dx%dx%d",o->xres,o->yres,o->depth); - strcat(fname,tmp); + strlcat(fname, tmp, sizeof( fname )); if(!(fp=fopen(fname,"r"))) return -1; @@ -1199,10 +1201,10 @@ static int overlay_write_state(overlay_t *o, char *p) int i,j; if(!p) { - strcpy(fname,getenv("HOME")); - strcat(fname,"/.overlay"); + strlcpy(fname, getenv("HOME"), sizeof( fname )); + strlcat(fname,"/.overlay", sizeof( fname )); } else - strcpy(fname,p); + strlcpy(fname, p, sizeof( fname )); if(access(fname, W_OK|X_OK|R_OK)) { if(mkdir(fname,0766)) @@ -1210,7 +1212,7 @@ static int overlay_write_state(overlay_t *o, char *p) } sprintf(tmp,"/res_%dx%dx%d",o->xres,o->yres,o->depth); - strcat(fname,tmp); + strlcat(fname, tmp, sizeof( fname )); if(!(fp=fopen(fname,"w"))) return -1; |