Skip to content
Permalink
Browse files
Merge pull request #2673 from dscho/also-handle-fscache-addon-for-#2637
Fix `lstat()`'s `st_size` computation for symbolic links when FSCache is in effect
  • Loading branch information
dscho committed Jun 8, 2020
2 parents ba03143 + aeb9254 commit 4df0b592227d5e0a229f2b2173a5696f95ce2f41
Showing 1 changed file with 12 additions and 0 deletions.
@@ -597,6 +597,18 @@ int fscache_lstat(const char *filename, struct stat *st)
if (!fse)
return -1;

/*
* Special case symbolic links: FindFirstFile()/FindNextFile() did not
* provide us with the length of the target path.
*/
if (fse->u.s.st_size == MAX_LONG_PATH && S_ISLNK(fse->st_mode)) {
char buf[MAX_LONG_PATH];
int len = readlink(filename, buf, sizeof(buf) - 1);

if (len > 0)
fse->u.s.st_size = len;
}

/* copy stat data */
st->st_ino = 0;
st->st_gid = 0;

0 comments on commit 4df0b59

Please sign in to comment.