File links in Unix VM broken?

Alexander Lazarevic' Alexander at Lazarevic.de
Thu Nov 8 07:47:12 UTC 2007


I did a quick check with strace -e trace=file squeakvm ...
Seems to work for the vm I'm using[1]. (Although the link also had the
name plainfile)

lstat64("/tmp/foo/baz/plainfile", {st_mode=S_IFLNK|0777, st_size=12,
...}) = 0
readlink("/tmp/foo/baz/plainfile", "../plainfile", 4096) = 12
lstat64("../plainfile", {st_mode=S_IFREG|0644, st_size=5, ...}) = 0
open("../plainfile", O_RDONLY)          = 8

Alex

[1] VM from Matej squeak-vm package:
3.9-8 #1 Fri Sep  7 00:19:56 CEST 2007 gcc 4.1.2
Squeak3.9alpha of 4 July 2005 [latest update: #7021]
Linux debian 2.6.18-5-686 #1 SMP Sun Aug 12 21:57:02 UTC 2007 i686 GNU/Linux


Andreas Raab schrieb:
> Hi -
> 
> I had an interesting problem today. I had created a directory with a
> plain file like
> 
> /foo/bar/plainfile
> 
> and then added a subdirectory with a relative link to that file:
> 
> /foo/bar/baz/link -> ../plainfile
> 
> The link would be listed in the the directory listing primitives but
> would fail to open (although bash and any other unix tool would work
> just fine with it). When I played around a little more I found that the
> VM was trying to open /foo/plainfile instead of /foo/bar/plainfile
> (placing a test file in the location confirmed that) so it seems as if
> the Unix file code doesn't deal correctly with "up links" (going one hop
> too many). Any ideas how to fix that? I can work around it easy enough
> now that I know it but it'd be good if the problem could be fixed in
> general.
> 
> Cheers,
>   - Andreas
> 



More information about the Squeak-dev mailing list