On FreeBSD 7.3, test #39 "extract over symlinks" fails.  Specifically,
it's this snippet of extrac13

  ln -s target1 dst2/file1
  echo target1 >dst2/target1
  tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp

that errors out:

  tar: ./file1: Cannot open: Too many links

ktrace shows that an open() call with O_NOFOLLOW set fails...

 44351 tar      CALL  
open(0x800c1b100,O_WRONLY|O_NONBLOCK|O_NOFOLLOW|O_CREAT|O_TRUNC|O_NOCTTY,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
 44351 tar      NAMI  "./file1"
 44351 tar      RET   open -1 errno 31 Too many links

... and tar proceeds to the error message.  This open() behavior
is expected, so I'm unclear what GNU tar expects.


I compared with OpenBSD, where this test doesn't fail, and ktrace there
shows a sequence
  open("./file1", ...) => ELOOP
  lstat("./file1", ...)
  unlink("./file1")
  open("./file1", ...) => success

-- 
Christian "naddy" Weisgerber                          [email protected]

Reply via email to