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: