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