File links in Unix VM broken?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

File links in Unix VM broken?

Andreas.Raab
 
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
Reply | Threaded
Open this post in threaded view
|

Re: File links in Unix VM broken?

johnmci
 
Well did you look into

sqFileOpen

in
sqFilePluginBasicPrims.c

at the point where it does the

fopen(cFileName, "....

what does it think cFileName  is?

mind don't forget it takes whatever squeak hands it and grinds thru

sqGetFilenameFromString() before giving to fopen(

See sqUnixMain.c



On Nov 7, 2007, at 8:05 PM, Andreas Raab wrote:

> 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
>

--
========================================================================
===
John M. McIntosh <[hidden email]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
========================================================================
===


Reply | Threaded
Open this post in threaded view
|

Re: File links in Unix VM broken?

Bert Freudenberg
In reply to this post by Andreas.Raab
 
On Nov 8, 2007, at 5:05 , Andreas Raab wrote:

> 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.

I've seen this problem, too, but never took time to investigate.

- Bert -