1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
--- setup.c.orig Sat May 11 15:48:32 1996
+++ setup.c Sat Aug 3 17:06:39 2002
@@ -106,7 +106,8 @@
{
i++;
if(i>=ac) break;
- strcpy(display,av[i]);
+ strncpy(display,av[i],sizeof(display));
+ display[sizeof(display) - 1] = '\0';
}
else if(!strcmp(av[i],"-cmap"))
{
@@ -120,7 +121,8 @@
{
i++;
if(i>=ac) show_usage();
- strcpy(bgfn,av[i]);
+ strncpy(bgfn,av[i],sizeof(bgfn));
+ bgfn[sizeof(bgfn) - 1] = '\0';
}
else if(!strcmp(av[i],"-rough"))
{
@@ -139,7 +141,7 @@
{
i++;
if(i>=ac) show_usage();
- if(strcmp(av[i],"no")) strcpy(pad_dev,av[i]);
+ if(strcmp(av[i],"no")) strncpy(pad_dev,av[i],sizeof(pad_dev)); pad_dev[sizeof(pad_dev) - 1] = '\0';
else upad=0;
}
#endif
@@ -154,10 +156,14 @@
user.uid=getuid();
p=getpwuid(user.uid);
- strcpy(user.name,p->pw_name);
- strcpy(home_dir,p->pw_dir);
+ strncpy(user.name,p->pw_name,sizeof(user.name));
+ user.name[sizeof(user.name) - 1] = '\0';
+
+ strncpy(home_dir,p->pw_dir,sizeof(home_dir));
+ home_dir[sizeof(home_dir) -1] = '\0';
if( home_dir[strlen(home_dir)-1] != '/' ) strcat(home_dir,"/");
- strcpy(rc_file,home_dir);
+ strncpy(rc_file,home_dir,sizeof(rc_file));
+ rc_file[sizeof(rc_file) - 1 ] = '\0';
strcat(rc_file,".cosmorc");
}
@@ -195,14 +201,16 @@
show_error("Too Few Arguments",buf,line,2);
return;
}
- strcpy(colorname,p);
+ strncpy(colorname,p,sizeof(colorname));
+ colorname[sizeof(colorname) - 1] = '\0';
if( (p=getnword(buf,2))==NULL )
{
show_error("Too Few Arguments",buf,line,3);
return;
}
- strcpy(color,p);
+ strncpy(color,p,sizeof(color));
+ color[sizeof(color)] = '\0';
if( !strcmp(colorname,"Background") ) strcpy(colors[Back],color);
else if( !strcmp(colorname,"Foreground") ) strcpy(colors[Fore],color);
@@ -298,7 +306,8 @@
i=1;
while(p[i]!='/'&&p[i]!='\0') name[i-1]=p[i++];
name[i-1]='\0';
- if(i==1) strcpy(name,user.name);
+ if(i==1) strncpy(name,user.name,sizeof(name));
+ name[sizeof(name) -1] = '\0';
do
{
|