File links in Unix VM broken?

Alexander Lazarevic' Alexander at Lazarevic.de
Thu Nov 8 07:59:48 UTC 2007


Ok, this only works if squeaks gets launched with the subdirectory as
the current directory. Launched from another directory I get the same
problem as you do.

Alexander Lazarevic' schrieb:
> 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