diff options
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | src/df.c | 7 |
2 files changed, 6 insertions, 2 deletions
@@ -235,6 +235,7 @@ Hugh Daniel hugh@xanadu.com Ian Bruce ian.bruce@myrealbox.com Iain Calder ic56@rogers.com Ian Jackson ijackson@chiark.greenend.org.uk +Ian Kent ikent@redhat.com Ian Lance Taylor ian@cygnus.com Ian Turner vectro@pipeline.com Iida Yosiaki iida@gnu.org @@ -1,5 +1,5 @@ /* df - summarize free disk space - Copyright (C) 91, 1995-2008 Free Software Foundation, Inc. + Copyright (C) 91, 1995-2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -993,12 +993,15 @@ main (int argc, char **argv) stats = xnmalloc (argc - optind, sizeof *stats); for (i = optind; i < argc; ++i) { - if (stat (argv[i], &stats[i - optind])) + int fd = open (argv[i], O_RDONLY | O_NOCTTY); + if (fd < 0 || fstat (fd, &stats[i - optind])) { error (0, errno, "%s", quote (argv[i])); exit_status = EXIT_FAILURE; argv[i] = NULL; } + if (0 <= fd) + close (fd); } } |