tar_stat_init (&st);
- if (deref_stat (dereference_option, name->name, &st.stat) != 0)
+ if (deref_stat (name->name, &st.stat) != 0)
{
stat_diag (name->name);
continue;
}
if (S_ISDIR (st.stat.st_mode))
{
- int dir_fd = open (name->name, open_read_flags | O_DIRECTORY);
+ int dir_fd = openat (chdir_fd, name->name,
+ open_read_flags | O_DIRECTORY);
if (dir_fd < 0)
open_diag (name->name);
else
{
struct stat st;
- if (deref_stat (dereference_option, name, &st) != 0)
+ if (deref_stat (name, &st) != 0)
return; /* Will be complained about later */
if (S_ISDIR (st.st_mode))
return;