From bfab679fddfc39a9506c7176713baa8fdf2c108c Mon Sep 17 00:00:00 2001 From: imp Date: Tue, 9 Jun 1998 03:39:38 +0000 Subject: Make sure we don't overflow the path buffer. Exit if we do. Obtained from or inspired by: A similar change in OpenBSD by theo --- bin/mv/mv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'bin/mv') diff --git a/bin/mv/mv.c b/bin/mv/mv.c index 2963cff..20f4a27 100644 --- a/bin/mv/mv.c +++ b/bin/mv/mv.c @@ -45,7 +45,7 @@ static char const copyright[] = static char sccsid[] = "@(#)mv.c 8.2 (Berkeley) 4/2/94"; #endif static const char rcsid[] = - "$Id: mv.c,v 1.18 1998/05/15 06:25:17 charnier Exp $"; + "$Id: mv.c,v 1.19 1998/05/25 22:44:16 steve Exp $"; #endif /* not lint */ #include @@ -80,7 +80,7 @@ main(argc, argv) register char *p, *endp; struct stat sb; int ch; - char path[MAXPATHLEN + 1]; + char path[MAXPATHLEN]; while ((ch = getopt(argc, argv, "fi")) != -1) switch (ch) { @@ -112,6 +112,8 @@ main(argc, argv) } /* It's a directory, move each file into it. */ + if (strlen(argv[argc - 1]) > sizeof(path) - 1) + errx(1, "%s: destination pathname too long", *argv); (void)strcpy(path, argv[argc - 1]); baselen = strlen(path); endp = &path[baselen]; -- cgit v1.1