coreutils/coreutils-7.5-df-localdevice.patch
2009-09-03 15:19:58 +00:00

18 lines
671 B
Diff

diff -urNp coreutils-7.5-orig/src/df.c coreutils-7.5/src/df.c
--- coreutils-7.5-orig/src/df.c 2009-08-15 17:25:32.000000000 +0200
+++ coreutils-7.5/src/df.c 2009-09-03 16:37:25.000000000 +0200
@@ -995,7 +995,12 @@ main (int argc, char **argv)
for (i = optind; i < argc; ++i)
{
int fd = open (argv[i], O_RDONLY | O_NOCTTY);
- if (fd < 0 || fstat (fd, &stats[i - optind]))
+ if (0 <= fd && !fstat (fd, &stats[i - optind])
+ && !stat (argv[i], &stats[i - optind]))
+ {
+ /* open() may have failed for normal user but stat() works */
+ }
+ else
{
error (0, errno, "%s", quote (argv[i]));
exit_status = EXIT_FAILURE;