dgaudet 97/11/05 03:38:53
Modified: src Tag: APACHE_1_2_X CHANGES mod_userdir.c Log: mod_userdir overwrites r->finfo in cases where it does not also update r->filename. These two are meant to be in sync, so this is a bug. Reviewed by: Dean Gaudet, Roy Fielding, Ralf Engelschall Revision Changes Path No revision No revision 1.286.2.56 +4 -0 apache/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apache/src/CHANGES,v retrieving revision 1.286.2.55 retrieving revision 1.286.2.56 diff -u -r1.286.2.55 -r1.286.2.56 --- CHANGES 1997/09/26 03:11:22 1.286.2.55 +++ CHANGES 1997/11/05 11:38:51 1.286.2.56 @@ -2,6 +2,10 @@ *) suexec.c wouldn't build without -DLOG_EXEC. [Jason A. Dour] + *) mod_userdir was modifying r->finfo in cases where it wasn't setting + r->filename. Since those two are meant to be in sync with each other + this is a bug. ["Paul B. Henson" <[EMAIL PROTECTED]>] + *) Inetd mode (which is buggy) uses timeouts without having setup the jmpbuffer. [Dean Gaudet] PR#1064 1.14.2.1 +3 -1 apache/src/mod_userdir.c Index: mod_userdir.c =================================================================== RCS file: /export/home/cvs/apache/src/mod_userdir.c,v retrieving revision 1.14 retrieving revision 1.14.2.1 diff -u -r1.14 -r1.14.2.1 --- mod_userdir.c 1997/03/07 14:15:44 1.14 +++ mod_userdir.c 1997/11/05 11:38:52 1.14.2.1 @@ -114,6 +114,7 @@ char *name = r->uri; const char *w, *dname, *redirect; char *x = NULL; + struct stat statbuf; if (userdirs == NULL || !strcasecmp(userdirs, "disabled") || (name[0] != '/') || (name[1] != '~')) { @@ -182,8 +183,9 @@ in the hope that some handler might handle it. This can be used, for example, to run a CGI script for the user. */ - if (filename && (!*userdirs || stat(filename, &r->finfo) != -1)) { + if (filename && (!*userdirs || stat(filename, &statbuf) != -1)) { r->filename = pstrcat(r->pool, filename, dname, NULL); + r->finfo = statbuf; return OK; } }