coar 98/09/30 21:14:43
Modified: src/main http_request.c Log: ap_sub_req_lookup_file() was assuming that all absolute paths begin with "/" -- which obviously isn't the case for Win32. #ifdef this to do the right thing on Win32. (It's unclear whether a leading "/" should still be considered a valid absolute path for Win32, since it's thereby inheriting the current drive. At least most of the hole is closed.) PR: 2976, 3074 Submitted by: Ken Parzygnat <[EMAIL PROTECTED]> Reviewed by: Ken Coar Revision Changes Path 1.131 +11 -2 apache-1.3/src/main/http_request.c Index: http_request.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/main/http_request.c,v retrieving revision 1.130 retrieving revision 1.131 diff -u -r1.130 -r1.131 --- http_request.c 1998/08/11 00:09:46 1.130 +++ http_request.c 1998/10/01 04:14:42 1.131 @@ -188,8 +188,10 @@ } #ifdef WIN32 - /* If the path is x:/, then convert it to x:/., coz that's what stat needs to work properly */ - if(strlen(path) == 3 && path[1] == ':') { + /* If the path is x:/, then convert it to x:/., coz that's what stat + * needs to work properly + */ + if (strlen(path) == 3 && path[1] == ':') { strcpy(buf,path); buf[3]='.'; buf[4]='\0'; @@ -826,7 +828,14 @@ * file may not have a uri associated with it -djg */ rnew->uri = "INTERNALLY GENERATED file-relative req"; +#ifdef WIN32 + rnew->filename = ((new_file[0] == '/' + || (ap_isalpha(new_file[0]) + && new_file[1] == ':' + && new_file[2] == '/')) ? +#else rnew->filename = ((new_file[0] == '/') ? +#endif ap_pstrdup(rnew->pool, new_file) : ap_make_full_path(rnew->pool, fdir, new_file)); rnew->per_dir_config = r->server->lookup_defaults;