Fix a buffer overflow. Which accounted for the size of the path, plus the the
'/', plus the size of the test command. It did not account for the terminating NULL, which overwrote the end of the string. -Erik
This commit is contained in:
parent
e5ffb911e8
commit
7526f035f4
@ -53,7 +53,7 @@ extern int which_main(int argc, char **argv)
|
|||||||
argv++;
|
argv++;
|
||||||
found = 0;
|
found = 0;
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
char buf[strlen(path_n)+1+strlen(*argv)];
|
char buf[strlen(path_n)+strlen(*argv)+2];
|
||||||
strcpy (buf, path_n);
|
strcpy (buf, path_n);
|
||||||
strcat (buf, "/");
|
strcat (buf, "/");
|
||||||
strcat (buf, *argv);
|
strcat (buf, *argv);
|
||||||
|
2
which.c
2
which.c
@ -53,7 +53,7 @@ extern int which_main(int argc, char **argv)
|
|||||||
argv++;
|
argv++;
|
||||||
found = 0;
|
found = 0;
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
char buf[strlen(path_n)+1+strlen(*argv)];
|
char buf[strlen(path_n)+strlen(*argv)+2];
|
||||||
strcpy (buf, path_n);
|
strcpy (buf, path_n);
|
||||||
strcat (buf, "/");
|
strcat (buf, "/");
|
||||||
strcat (buf, *argv);
|
strcat (buf, *argv);
|
||||||
|
Loading…
Reference in New Issue
Block a user