dgaudet     98/07/20 09:33:58

  Modified:    src      CHANGES
               src/modules/standard mod_include.c
  Log:
  use sub_req_lookup_file for fsize and flastmod.
  
  PR:           2355
  Submitted by: Manoj Kasichainula <[EMAIL PROTECTED]>
  Reviewed by:  Brian, Dean
  
  Revision  Changes    Path
  1.971     +9 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.970
  retrieving revision 1.971
  diff -u -r1.970 -r1.971
  --- CHANGES   1998/07/18 22:50:15     1.970
  +++ CHANGES   1998/07/20 16:33:56     1.971
  @@ -1,3 +1,12 @@
  +Changes with Apache 1.3.2
  +
  +  *) mod_include had problems with the fsize and flastmod directives
  +     under WIN32.  Fix also avoids the minor security hole of using
  +     ".." paths for fsize and flastmod.
  +     [Manoj Kasichainula <[EMAIL PROTECTED]>] PR#2355
  +
  +  *) Fixed some Makefile dependency problems.  [Dean Gaudet]
  +
   Changes with Apache 1.3.1
   
     *) Disable the incorrect entry for application/msword in the 
  
  
  
  1.99      +24 -7     apache-1.3/src/modules/standard/mod_include.c
  
  Index: mod_include.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_include.c,v
  retrieving revision 1.98
  retrieving revision 1.99
  diff -u -r1.98 -r1.99
  --- mod_include.c     1998/07/08 17:47:16     1.98
  +++ mod_include.c     1998/07/20 16:33:57     1.99
  @@ -1004,22 +1004,39 @@
                        char *tag_val, struct stat *finfo, const char *error)
   {
       char *to_send;
  +    request_rec *rr;
  +    int ret=0;
   
       if (!strcmp(tag, "file")) {
           ap_getparents(tag_val);    /* get rid of any nasties */
  -        to_send = ap_make_full_path(r->pool, "./", tag_val);
  -        if (stat(to_send, finfo) == -1) {
  +        
  +        rr = ap_sub_req_lookup_file(tag_val, r);
  +
  +        if (rr->status == HTTP_OK && rr->finfo.st_mode != 0) {
  +            to_send = rr->filename;
  +            if ((ret = stat(to_send, finfo)) == -1) {
  +                ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  +                            "unable to get information about \"%s\" "
  +                            "in parsed file %s",
  +                            to_send, r->filename);
  +                ap_rputs(error, r);
  +            }
  +        }
  +        else {
  +            ret = -1;
               ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
  -                        "unable to get information about \"%s\" "
  +                        "unable to lookup information about \"%s\" "
                           "in parsed file %s",
  -                        to_send, r->filename);
  +                        tag_val, r->filename);
               ap_rputs(error, r);
  -            return -1;
           }
  -        return 0;
  +        
  +        ap_destroy_sub_req(rr);
  +        
  +        return ret;
       }
       else if (!strcmp(tag, "virtual")) {
  -        request_rec *rr = ap_sub_req_lookup_uri(tag_val, r);
  +        rr = ap_sub_req_lookup_uri(tag_val, r);
   
           if (rr->status == HTTP_OK && rr->finfo.st_mode != 0) {
               memcpy((char *) finfo, (const char *) &rr->finfo,
  
  
  

Reply via email to