When ls -l is run on a directory without execute permission, fail with a
error value of 1

Ok?

Index: ls.c
===================================================================
RCS file: /cvs/src/bin/ls/ls.c,v
retrieving revision 1.37
diff -u -p -r1.37 ls.c
--- ls.c        4 Mar 2011 21:03:19 -0000       1.37
+++ ls.c        6 Mar 2013 13:52:43 -0000
@@ -384,6 +384,13 @@ traverse(int argc, char *argv[], int opt
                         */
                        if (!f_recursive && !(chp == NULL && saved_errno != 0))
                                (void)fts_set(ftsp, p, FTS_SKIP);
+                        if (saved_errno != 0) {
+                                warnx("%s: %s", p->fts_name[0] == '\0' ?
+                                      p->fts_path : p->fts_name,
+                                      strerror(saved_errno));
+                                rval = 1;
+                                break;
+                        }
                        break;
                case FTS_DC:
                        warnx("%s: directory causes a cycle", p->fts_name);

Reply via email to