---
tar.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/tar.c b/tar.c
index e8dd26a..551585f 100644
--- a/tar.c
+++ b/tar.c
_AT_@ -325,18 +325,20 @@ unarchive(char *fname, ssize_t l, char b[BLKSIZ])
close(fd);
}
- times[0].tv_sec = times[1].tv_sec = mtime;
- times[0].tv_nsec = times[1].tv_nsec = 0;
- if (!mflag && utimensat(AT_FDCWD, fname, times, AT_SYMLINK_NOFOLLOW) < 0)
- weprintf("utimensat %s:\n", fname);
- if (h->type == SYMLINK) {
- if (!getuid() && lchown(fname, uid, gid))
- weprintf("lchown %s:\n", fname);
- } else {
- if (!getuid() && chown(fname, uid, gid))
- weprintf("chown %s:\n", fname);
- if (chmod(fname, mode) < 0)
- eprintf("fchmod %s:\n", fname);
+ if (h->type != HARDLINK) {
+ times[0].tv_sec = times[1].tv_sec = mtime;
+ times[0].tv_nsec = times[1].tv_nsec = 0;
+ if (!mflag && utimensat(AT_FDCWD, fname, times, AT_SYMLINK_NOFOLLOW) < 0)
+ weprintf("utimensat %s:\n", fname);
+ if (h->type == SYMLINK) {
+ if (!getuid() && lchown(fname, uid, gid))
+ weprintf("lchown %s:\n", fname);
+ } else {
+ if (!getuid() && chown(fname, uid, gid))
+ weprintf("chown %s:\n", fname);
+ if (chmod(fname, mode) < 0)
+ eprintf("fchmod %s:\n", fname);
+ }
}
return 0;
--
2.3.6
--c3bfwLpm8qysLVxt--
Received on Mon Sep 17 2001 - 00:00:00 CEST
This archive was generated by hypermail 2.3.0 : Sun Dec 06 2015 - 20:00:12 CET