Mercurial > mplayer.hg
comparison vidix/vidixlib.c @ 12646:9a495bdc3a1e
string handling security fixes
patch by Nicholas Kain, Alexander Strasser <eclipse7@gmx.net>
reviewed by Pontscho, Alex, Rich
author | diego |
---|---|
date | Fri, 25 Jun 2004 16:49:53 +0000 |
parents | 285e298968de |
children | 628dd5d2326c |
comparison
equal
deleted
inserted
replaced
12645:3841ef14a481 | 12646:9a495bdc3a1e |
---|---|
120 { | 120 { |
121 vidix_capability_t vid_cap; | 121 vidix_capability_t vid_cap; |
122 unsigned (*_ver)(void); | 122 unsigned (*_ver)(void); |
123 int (*_probe)(int,int); | 123 int (*_probe)(int,int); |
124 int (*_cap)(vidix_capability_t*); | 124 int (*_cap)(vidix_capability_t*); |
125 strcpy(drv_name,path); | 125 strlcpy(drv_name,path, sizeof( drv_name )); |
126 strcat(drv_name,name); | 126 strlcat(drv_name,name, sizeof( drv_name )); |
127 if(verbose) printf("vidixlib: PROBING: %s\n",drv_name); | 127 if(verbose) printf("vidixlib: PROBING: %s\n",drv_name); |
128 if(!(t_vdl(stream)->handle = dlopen(drv_name,RTLD_LAZY|RTLD_GLOBAL))) | 128 if(!(t_vdl(stream)->handle = dlopen(drv_name,RTLD_LAZY|RTLD_GLOBAL))) |
129 { | 129 { |
130 if(verbose) printf("vidixlib: %s not driver: %s\n",drv_name,dlerror()); | 130 if(verbose) printf("vidixlib: %s not driver: %s\n",drv_name,dlerror()); |
131 return 0; | 131 return 0; |
192 if(name) | 192 if(name) |
193 { | 193 { |
194 unsigned (*ver)(void); | 194 unsigned (*ver)(void); |
195 int (*probe)(int,int); | 195 int (*probe)(int,int); |
196 unsigned version = 0; | 196 unsigned version = 0; |
197 strcpy(drv_name,path); | 197 strlcpy(drv_name,path, sizeof( drv_name )); |
198 strcat(drv_name,name); | 198 strlcat(drv_name,name, sizeof( drv_name )); |
199 if(!(t_vdl(stream)->handle = dlopen(drv_name,RTLD_NOW|RTLD_GLOBAL))) | 199 if(!(t_vdl(stream)->handle = dlopen(drv_name,RTLD_NOW|RTLD_GLOBAL))) |
200 { | 200 { |
201 if (verbose) | 201 if (verbose) |
202 printf("vidixlib: dlopen error: %s\n", dlerror()); | 202 printf("vidixlib: dlopen error: %s\n", dlerror()); |
203 err: | 203 err: |