Show symlink even if target cannot be stat-ed

This commit is contained in:
Arun Prakash Jana 2019-12-09 22:20:46 +05:30
parent 21f9a713dc
commit 6fcc6834ff
No known key found for this signature in database
GPG key ID: A75979F35C080412
2 changed files with 7 additions and 10 deletions

View file

@ -76,10 +76,10 @@ static void disabledbg(void)
close(DEBUG_FD); close(DEBUG_FD);
} }
#define DPRINTF_D(x) xprintf(DEBUG_FD, #x "=%d\n", x) #define DPRINTF_D(x) xprintf(DEBUG_FD, #x "=%d [ln %d]\n", x, __LINE__)
#define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u\n", x) #define DPRINTF_U(x) xprintf(DEBUG_FD, #x "=%u [ln %d]\n", x, __LINE__)
#define DPRINTF_S(x) xprintf(DEBUG_FD, #x "=%s\n", x) #define DPRINTF_S(x) xprintf(DEBUG_FD, #x "=%s [ln %d]\n", x, __LINE__)
#define DPRINTF_P(x) xprintf(DEBUG_FD, #x "=%p\n", x) #define DPRINTF_P(x) xprintf(DEBUG_FD, #x "=%p [ln %d]\n", x, __LINE__)
#else #else
#define DPRINTF_D(x) #define DPRINTF_D(x)
#define DPRINTF_U(x) #define DPRINTF_U(x)

View file

@ -3756,15 +3756,12 @@ static int dentfill(char *path, struct entry **dents)
if (fstatat(fd, namep, &sb, flags) == -1) { if (fstatat(fd, namep, &sb, flags) == -1) {
/* List a symlink with target missing */ /* List a symlink with target missing */
if (!flags && errno == ENOENT) { if (flags || (!flags && fstatat(fd, namep, &sb, AT_SYMLINK_NOFOLLOW) == -1)) {
if (fstatat(fd, namep, &sb, AT_SYMLINK_NOFOLLOW) == -1) { DPRINTF_U(flags);
if (!flags) {
DPRINTF_S(namep); DPRINTF_S(namep);
DPRINTF_S(strerror(errno)); DPRINTF_S(strerror(errno));
continue;
} }
} else {
DPRINTF_S(namep);
DPRINTF_S(strerror(errno));
continue; continue;
} }
} }