summaryrefslogtreecommitdiffstats
path: root/usr.bin/du
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>1998-07-29 17:50:06 +0000
committerdes <des@FreeBSD.org>1998-07-29 17:50:06 +0000
commitb4fe2eae8203da40c5de8d68fd8a30a9fb79b5f2 (patch)
tree5b0b9d624d7c2129b1189931e5d5345889e673d5 /usr.bin/du
parent57b661836aae1698e2f0388e6462e8f1521b801d (diff)
downloadFreeBSD-src-b4fe2eae8203da40c5de8d68fd8a30a9fb79b5f2.zip
FreeBSD-src-b4fe2eae8203da40c5de8d68fd8a30a9fb79b5f2.tar.gz
Don't try to dereference a pointer to freed memory.
PR: bin/7393
Diffstat (limited to 'usr.bin/du')
-rw-r--r--usr.bin/du/du.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/usr.bin/du/du.c b/usr.bin/du/du.c
index 4c81e62..4c75b70 100644
--- a/usr.bin/du/du.c
+++ b/usr.bin/du/du.c
@@ -67,8 +67,7 @@ main(argc, argv)
{
FTS *fts;
FTSENT *p;
- FTSENT *savedp;
- long blocksize;
+ long blocksize, savednumber = 0;
int ftsoptions;
int listall;
int depth;
@@ -184,7 +183,6 @@ main(argc, argv)
err(1, "fts_open");
while ((p = fts_read(fts)) != NULL) {
- savedp = p;
switch (p->fts_info) {
case FTS_D: /* Ignore. */
break;
@@ -216,15 +214,14 @@ main(argc, argv)
p->fts_parent->fts_number += p->fts_statp->st_blocks;
}
+ savednumber = p->fts_number;
}
if (errno)
err(1, "fts_read");
- if (cflag) {
- p = savedp->fts_parent;
- (void) printf("%ld\ttotal\n", howmany(p->fts_number, blocksize));
- }
+ if (cflag)
+ (void) printf("%ld\ttotal\n", howmany(savednumber, blocksize));
exit(rval);
}
OpenPOWER on IntegriCloud