X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fchdir-long.c;h=8c15d06d2a99de89c100c2f216c6721e071b2913;hb=7560f27e580a611b89348447a1540514ffac32f8;hp=a727817251394544404218f63b3c4b65d8b2e206;hpb=222b0486b7db1b09293e05512873d633440efcb3;p=gnulib.git diff --git a/lib/chdir-long.c b/lib/chdir-long.c index a72781725..8c15d06d2 100644 --- a/lib/chdir-long.c +++ b/lib/chdir-long.c @@ -77,13 +77,10 @@ cdb_free (struct cd_buf const *cdb) static int cdb_advance_fd (struct cd_buf *cdb, char const *dir) { - int new_fd = openat (cdb->fd, dir, O_RDONLY | O_DIRECTORY); + int new_fd = openat (cdb->fd, dir, + O_RDONLY | O_DIRECTORY | O_NOCTTY | O_NONBLOCK); if (new_fd < 0) - { - new_fd = openat (cdb->fd, dir, O_WRONLY | O_DIRECTORY); - if (new_fd < 0) - return -1; - } + return -1; cdb_free (cdb); cdb->fd = new_fd;