mirror of https://github.com/MidnightCommander/mc
Ticket #2121: don't calculate directory size if directory is symlink.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
parent
6f6ea1bc88
commit
69a8796e47
16
src/file.c
16
src/file.c
|
@ -1573,10 +1573,24 @@ compute_dir_size (const char *dirname, const void *ui,
|
|||
compute_dir_size_callback cback,
|
||||
off_t *ret_marked, double *ret_total)
|
||||
{
|
||||
int res;
|
||||
struct stat s;
|
||||
DIR *dir;
|
||||
struct dirent *dirent;
|
||||
FileProgressStatus ret = FILE_CONT;
|
||||
|
||||
res = mc_lstat (dirname, &s);
|
||||
|
||||
if (res != 0)
|
||||
return ret;
|
||||
|
||||
/* don't scan symlink to directory */
|
||||
if (S_ISLNK (s.st_mode)) {
|
||||
(*ret_marked)++;
|
||||
*ret_total += s.st_size;
|
||||
return ret;
|
||||
}
|
||||
|
||||
dir = mc_opendir (dirname);
|
||||
|
||||
if (dir == NULL)
|
||||
|
@ -1584,8 +1598,6 @@ compute_dir_size (const char *dirname, const void *ui,
|
|||
|
||||
while ((dirent = mc_readdir (dir)) != NULL) {
|
||||
char *fullname;
|
||||
int res;
|
||||
struct stat s;
|
||||
|
||||
ret = (cback != NULL) ? cback (ui, dirname) : FILE_CONT;
|
||||
|
||||
|
|
Loading…
Reference in New Issue