Within the dom extension, I am trying to resolve an issue with uris and local 
filepaths which are passed to libxml.
When I get the filepath, I need to resolve any local filepaths to an absoulte path. On 
top of this the safemode checks need to be done before passing any of these to libxml.

So far I started with taking the user supplied source string and running that through 
the safemode checks.
If this passes, then the source is tested as follows:

If uri, then it is passed to libxml, otherwise it gets passed through expand_filepath 
and the resolved path is passed to libxml.

It has been noted that file uris should not be passed in directly, but go through the 
same path resolutions as local files and that the following block of code be used 
instead of just using expand_filepath on all non uri and file uri source strings:
#ifdef VIRTUAL_DIR
    virtual_filepath_ex(source, &resolved_path, NULL TSRMLS_CC);
#else
    resolved_path = source;
#endif

My problem is that if VIRTUAL_DIR is not defined, then the resolved path ends up being 
the origional source supplied, which means that relative paths are not resolved. Also, 
should the path resolutions be done before the safemode checks?

On top of this I am looking at allowing additional registered streams to be used, so 
not sure if that would change any of this.

What is the correct way to implement this?

Thanks,

Rob

Reply via email to