From 14425adcb044e96172146d106c43a7ea0c45e716 Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Fri, 14 Jan 2005 07:03:59 +0000 Subject: [PATCH] strl* conversion. Original-patch-by: Andre Nathan --- sbin/badsect/badsect.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sbin/badsect/badsect.c b/sbin/badsect/badsect.c index 3b17c661bf..b5ecf9dbf4 100644 --- a/sbin/badsect/badsect.c +++ b/sbin/badsect/badsect.c @@ -33,7 +33,7 @@ * @(#) Copyright (c) 1981, 1983, 1993 The Regents of the University of California. All rights reserved. * @(#)badsect.c 8.1 (Berkeley) 6/5/93 * $FreeBSD: src/sbin/badsect/badsect.c,v 1.7.2.2 2001/07/30 10:30:04 dd Exp $ - * $DragonFly: src/sbin/badsect/badsect.c,v 1.5 2003/11/01 17:15:57 drhodus Exp $ + * $DragonFly: src/sbin/badsect/badsect.c,v 1.6 2005/01/14 07:03:59 joerg Exp $ */ /* @@ -53,6 +53,7 @@ #include #include +#include #include #include #include @@ -97,18 +98,22 @@ main(int argc, char **argv) register struct dirent *dp; DIR *dirp; char name[2 * MAXPATHLEN]; - char *name_dir_end; if (argc < 3) usage(); if (chdir(argv[1]) < 0 || stat(".", &stbuf) < 0) err(2, "%s", argv[1]); - strcpy(name, _PATH_DEV); + if (strlcpy(name, _PATH_DEV, sizeof(name)) >= sizeof(name)) { + errno = ENAMETOOLONG; + err(1, "cannot build path name"); + } if ((dirp = opendir(name)) == NULL) err(3, "%s", name); - name_dir_end = name + strlen(name); while ((dp = readdir(dirp)) != NULL) { - strcpy(name_dir_end, dp->d_name); + if (strlcat(name, dp->d_name, sizeof(name)) >= sizeof(name)) { + errno = ENAMETOOLONG; + err(1, "cannot build path name"); + } if (lstat(name, &devstat) < 0) err(4, "%s", name); if (stbuf.st_dev == devstat.st_rdev && -- 2.41.0