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