summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2009-09-29 07:28:01 +0200
committerJim Meyering <meyering@redhat.com>2009-09-29 14:12:30 +0200
commitb7aaa0da8b47f4f373d3e0876bd540986278c6e2 (patch)
tree7e3d1bbd71964a5e001afa172e43749bc29d0246 /src
parent36edf7bad2ab76720a0bf6519074d23d4b8823a7 (diff)
downloadcoreutils-b7aaa0da8b47f4f373d3e0876bd540986278c6e2.tar.xz
ls: don't use an undefined struct stat after failed stat/lstat
* src/ls.c (format_inode): Access f->stat only if f->stat_ok is set. * NEWS (Bug fixes): Mention it. Improved-by: Pádraig Brady <P@draigBrady.com>
Diffstat (limited to 'src')
-rw-r--r--src/ls.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/ls.c b/src/ls.c
index c8e8abb6d..801e717c6 100644
--- a/src/ls.c
+++ b/src/ls.c
@@ -3563,9 +3563,9 @@ static char *
format_inode (char *buf, size_t buflen, const struct fileinfo *f)
{
assert (INT_BUFSIZE_BOUND (uintmax_t) <= buflen);
- return (f->stat.st_ino == NOT_AN_INODE_NUMBER
- ? (char *) "?"
- : umaxtostr (f->stat.st_ino, buf));
+ return (f->stat_ok && f->stat.st_ino != NOT_AN_INODE_NUMBER
+ ? umaxtostr (f->stat.st_ino, buf)
+ : (char *) "?");
}
/* Print information about F in long format. */