Martin,
where the path is altogether invalid, ap_server_root_relative() may return
NULL (there was no better method for reporting an error.) One can assume
the only possible error if NULL was APR_EBADPATH. Of course, within
ap_server_root_relative() we already invoke apr_filepath_merge() so that
path+{empty} merge to test for a valid path is no longer required in this code.
Would you please account for this possibility in your patch?
Bill
At 07:53 AM 6/20/2003, you wrote:
>martin 2003/06/20 05:53:53
>
> Modified: server core.c
> Log:
> DocumentRoot always used to be interpreted relative to ServerRoot. Make it
> server_root_relative like in Apache-1.3
>
> Revision Changes Path
> 1.239 +3 -1 httpd-2.0/server/core.c
>
> Index: core.c
> ===================================================================
> RCS file: /home/cvs/httpd-2.0/server/core.c,v
> retrieving revision 1.238
> retrieving revision 1.239
> diff -u -u -r1.238 -r1.239
> --- core.c 11 Jun 2003 17:46:25 -0000 1.238
> +++ core.c 20 Jun 2003 12:53:52 -0000 1.239
> @@ -1113,8 +1113,10 @@
> return err;
> }
>
> + /* Make it absolute, relative to ServerRoot */
> + arg = ap_server_root_relative(cmd->pool, arg);
> +
> /* TODO: ap_configtestonly && ap_docrootcheck && */
> - /* XXX Shouldn't this be relative to ServerRoot ??? */
> if (apr_filepath_merge((char**)&conf->ap_document_root, NULL, arg,
> APR_FILEPATH_TRUENAME, cmd->pool) != APR_SUCCESS
> || !ap_is_directory(cmd->pool, arg)) {
>
>
>