summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2022-09-06 00:06:33 +0700
committerShulhan <ms@kilabit.info>2022-09-06 00:06:33 +0700
commit48d8d04b2da02f50348cb66ff45866556616e099 (patch)
tree87b67c78c11971af0251ef2d96cee9a0c78f7ef7
parent5a554b81ba788cead97da262e1cf8500f58a7a38 (diff)
downloadciigo-48d8d04b2da02f50348cb66ff45866556616e099.tar.xz
all: check for symlink and re-fetch file info using os.Stat
Since Readdir return list of FileInfo using Lstat, any node that is symlink may return false file size and mod time.
-rw-r--r--ciigo.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/ciigo.go b/ciigo.go
index 962c469..aff887b 100644
--- a/ciigo.go
+++ b/ciigo.go
@@ -288,6 +288,13 @@ func listFileMarkups(dir string, excRE []*regexp.Regexp) (
continue
}
+ if fi.Mode()&os.ModeSymlink == os.ModeSymlink {
+ fi, err = os.Stat(filePath)
+ if err != nil {
+ return nil, fmt.Errorf(`%s: %w`, logp, err)
+ }
+ }
+
if fi.IsDir() {
if name[0] == '.' {
// Skip any directory start with '.'.