Now that we have linkat(2), we support to the ability to hardlink to 
symlinks.  POSIX specifies that pax do that when the input file specifies 
it, so let's do it.

oks?

Philip


Index: file_subs.c
===================================================================
RCS file: /cvs/src/bin/pax/file_subs.c,v
retrieving revision 1.33
diff -u -p -r1.33 file_subs.c
--- file_subs.c 16 Apr 2013 18:06:35 -0000      1.33
+++ file_subs.c 7 Oct 2013 02:27:39 -0000
@@ -307,7 +307,7 @@ mk_link(char *to, struct stat *to_sb, ch
         * try again)
         */
        for (;;) {
-               if (link(to, from) == 0)
+               if (linkat(AT_FDCWD, to, AT_FDCWD, from, 0) == 0)
                        break;
                oerrno = errno;
                if (!nodirs && chk_path(from, to_sb->st_uid, to_sb->st_gid) == 
0)

Reply via email to