We should not try and perform operations on an invalid DIR* stream.
Instead, we shall let the error message be printed, and the return
code set (existing behaviour) and abort afterwards.
---
 ls.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ls.c b/ls.c
index 5080c8f..b716aba 100644
--- a/ls.c
+++ b/ls.c
@@ -250,6 +250,7 @@ lsdir(const char *path, const struct entry *dir)
        if (!(dp = opendir(dir->name))) {
                ret = 1;
                weprintf("opendir %s%s:", path, dir->name);
+               return;
        }
        if (chdir(dir->name) < 0)
                eprintf("chdir %s:", dir->name);
-- 
2.14.1

Attachment: signature.asc
Description: PGP signature

Reply via email to