diff options
author | Eric Andersen | 2001-04-09 22:48:12 +0000 |
---|---|---|
committer | Eric Andersen | 2001-04-09 22:48:12 +0000 |
commit | e5dfced23a904d08afa5dcee190c3c3d845d9f50 (patch) | |
tree | ef367ee8a9096884fb40debdc9e10af8583f9d5f /coreutils/du.c | |
parent | a75e2867435faa68ea03735fe09ad298fa3e4e72 (diff) | |
download | busybox-e5dfced23a904d08afa5dcee190c3c3d845d9f50.zip busybox-e5dfced23a904d08afa5dcee190c3c3d845d9f50.tar.gz |
Apply Vladimir's latest cleanup patch.
-Erik
Diffstat (limited to 'coreutils/du.c')
-rw-r--r-- | coreutils/du.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/coreutils/du.c b/coreutils/du.c index 7cb888d..119895e 100644 --- a/coreutils/du.c +++ b/coreutils/du.c @@ -83,7 +83,8 @@ static long du(char *filename) int len; if ((lstat(filename, &statbuf)) != 0) { - perror_msg_and_die("%s", filename); + perror_msg("%s", filename); + return 0; } du_depth++; @@ -110,22 +111,16 @@ static long du(char *filename) filename[--len] = '\0'; while ((entry = readdir(dir))) { - char newfile[BUFSIZ + 1]; + char *newfile; char *name = entry->d_name; if ((strcmp(name, "..") == 0) || (strcmp(name, ".") == 0)) { continue; } - - if (len + strlen(name) + 1 > BUFSIZ) { - error_msg(name_too_long); - du_depth--; - return 0; - } - sprintf(newfile, "%s/%s", filename, name); - + newfile = concat_path_file(filename, name); sum += du(newfile); + free(newfile); } closedir(dir); print(sum, filename); @@ -197,7 +192,7 @@ int du_main(int argc, char **argv) return status; } -/* $Id: du.c,v 1.43 2001/03/09 14:36:42 andersen Exp $ */ +/* $Id: du.c,v 1.44 2001/04/09 22:48:11 andersen Exp $ */ /* Local Variables: c-file-style: "linux" |