From f06087625f58ecc7554b06f496bff433459474a7 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Mon, 6 Jun 2016 09:39:51 +0200 Subject: [PATCH] server/rump_fs: skip . and .. directory elements Do not return elements for '.' and '..' during directory reads. Fixes #1998 --- repos/dde_rump/src/server/rump_fs/directory.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/repos/dde_rump/src/server/rump_fs/directory.h b/repos/dde_rump/src/server/rump_fs/directory.h index b148080f9..d689e977c 100644 --- a/repos/dde_rump/src/server/rump_fs/directory.h +++ b/repos/dde_rump/src/server/rump_fs/directory.h @@ -165,11 +165,17 @@ class File_system::Directory : public Node void *current, *end; for (current = buf, end = &buf[bytes]; current < end; - current = _DIRENT_NEXT((dirent *)current), i++) - if (i == index) { - dent = (dirent *)current; - break; + current = _DIRENT_NEXT((dirent *)current)) + { + struct ::dirent *d = (dirent*)current; + if (strcmp(".", d->d_name) && strcmp("..", d->d_name)) { + if (i == index) { + dent = d; + break; + } + ++i; } + } } while(bytes && !dent); if (!dent)