[125678kqv][cl]: fix sprint() and strcpy() buffer overflows

This commit is contained in:
cinap_lenrek 2015-02-17 22:13:35 +01:00
parent fdeea811b7
commit 03feba8cc1
31 changed files with 784 additions and 850 deletions

View file

@ -304,9 +304,7 @@ objfile(char *file)
char *e, *start, *stop;
if(file[0] == '-' && file[1] == 'l') {
sprint(name, "/%s/lib/lib", thestring);
strcat(name, file+2);
strcat(name, ".a");
snprint(name, sizeof name, "/%s/lib/lib%s.a", thestring, file+2);
file = name;
}
if(debug['v'])
@ -364,7 +362,7 @@ objfile(char *file)
s = lookup(e+5, 0);
if(s->type != SXREF)
continue;
sprint(pname, "%s(%s)", file, s->name);
snprint(pname, sizeof pname, "%s(%s)", file, s->name);
if(debug['v'])
Bprint(&bso, "%5.2f library: %s\n", cputime(), pname);
Bflush(&bso);
@ -524,17 +522,17 @@ addlib(char *obj)
return;
if(histfrog[0]->name[1] == '/') {
sprint(name, "");
name[0] = 0;
i = 1;
} else
if(histfrog[0]->name[1] == '.') {
sprint(name, ".");
snprint(name, sizeof name, ".");
i = 0;
} else {
if(debug['9'])
sprint(name, "/%s/lib", thestring);
snprint(name, sizeof name, "/%s/lib", thestring);
else
sprint(name, "/usr/%clib", thechar);
snprint(name, sizeof name, "/usr/%clib", thechar);
i = 0;
}