You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by fi...@hyperreal.org on 1998/10/30 23:41:29 UTC
cvs commit: apache-1.3/src/modules/proxy mod_proxy.c
fielding 98/10/30 14:41:28
Modified: src CHANGES
src/main http_config.c http_protocol.c
src/modules/proxy mod_proxy.c
Log:
Disable sending of error-notes on a 500 (Internal Server Error) response
since it often includes file path info. Enable sending of error-notes
on a 501 (Method Not Implemented).
http_config.c would respond with 501 (Method Not Implemented) if a
content type handler was specified but could not be found, which
should have been a 500 response. Likewise, mod_proxy.c would responsd
with a 501 if the URI scheme is unrecognized instead of the correct
response of 403 (Forbidden).
PR: 3173
Revision Changes Path
1.1130 +10 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.1129
retrieving revision 1.1130
diff -u -r1.1129 -r1.1130
--- CHANGES 1998/10/30 03:08:52 1.1129
+++ CHANGES 1998/10/30 22:41:21 1.1130
@@ -1,5 +1,15 @@
Changes with Apache 1.3.4
+ *) Disable sending of error-notes on a 500 (Internal Server Error) response
+ since it often includes file path info. Enable sending of error-notes
+ on a 501 (Method Not Implemented). [Roy Fielding] PR#3173
+
+ *) http_config.c would respond with 501 (Method Not Implemented) if a
+ content type handler was specified but could not be found, which
+ should have been a 500 response. Likewise, mod_proxy.c would responsd
+ with a 501 if the URI scheme is unrecognized instead of the correct
+ response of 403 (Forbidden). [Roy Fielding]
+
*) SECURITY: Eliminate DoS attack when a bad URI path contains what
looks like a printf format escape. [Marc Slemko, Studenten Net Twente]
1.135 +3 -3 apache-1.3/src/main/http_config.c
Index: http_config.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/main/http_config.c,v
retrieving revision 1.134
retrieving revision 1.135
diff -u -r1.134 -r1.135
--- http_config.c 1998/09/26 00:07:08 1.134
+++ http_config.c 1998/10/30 22:41:24 1.135
@@ -479,7 +479,7 @@
const char *handler;
char *p;
size_t handler_len;
- int result = NOT_IMPLEMENTED;
+ int result = HTTP_INTERNAL_SERVER_ERROR;
if (r->handler) {
handler = r->handler;
@@ -509,7 +509,7 @@
}
}
- if (result == NOT_IMPLEMENTED && r->handler) {
+ if (result == HTTP_INTERNAL_SERVER_ERROR && r->handler) {
ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
"handler \"%s\" not found for: %s", r->handler, r->filename);
}
@@ -526,7 +526,7 @@
}
}
- return NOT_IMPLEMENTED;
+ return HTTP_INTERNAL_SERVER_ERROR;
}
/* One-time setup for precompiled modules --- NOT to be done on restart */
1.247 +17 -4 apache-1.3/src/main/http_protocol.c
Index: http_protocol.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/main/http_protocol.c,v
retrieving revision 1.246
retrieving revision 1.247
diff -u -r1.246 -r1.247
--- http_protocol.c 1998/10/19 05:59:35 1.246
+++ http_protocol.c 1998/10/30 22:41:24 1.247
@@ -2297,10 +2297,13 @@
ap_escape_html(r->pool, r->uri),
" evaluated to false.<P>\n", NULL);
break;
- case NOT_IMPLEMENTED:
+ case HTTP_NOT_IMPLEMENTED:
ap_bvputs(fd, ap_escape_html(r->pool, r->method), " to ",
ap_escape_html(r->pool, r->uri),
" not supported.<P>\n", NULL);
+ if ((error_notes = ap_table_get(r->notes, "error-notes")) != NULL) {
+ ap_bvputs(fd, error_notes, "<P>\n", NULL);
+ }
break;
case BAD_GATEWAY:
ap_bputs("The proxy server received an invalid\015\012", fd);
@@ -2387,9 +2390,19 @@
"caused the error.<P>\n"
"More information about this error may be available\n"
"in the server error log.<P>\n", NULL);
- if ((error_notes = ap_table_get(r->notes, "error-notes")) != NULL) {
- ap_bvputs(fd, error_notes, "<P>\n", NULL);
- }
+ /*
+ * It would be nice to give the user the information they need to
+ * fix the problem directly since many users don't have access to
+ * the error_log (think University sites) even though they can easily
+ * get this error by misconfiguring an htaccess file. However, the
+ * error notes tend to include the real file pathname in this case,
+ * which some people consider to be a breach of privacy. Until we
+ * can figure out a way to remove the pathname, leave this commented.
+ *
+ * if ((error_notes = ap_table_get(r->notes, "error-notes")) != NULL) {
+ * ap_bvputs(fd, error_notes, "<P>\n", NULL);
+ * }
+ */
break;
}
1.63 +1 -1 apache-1.3/src/modules/proxy/mod_proxy.c
Index: mod_proxy.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/modules/proxy/mod_proxy.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- mod_proxy.c 1998/09/08 21:15:55 1.62
+++ mod_proxy.c 1998/10/30 22:41:27 1.63
@@ -397,7 +397,7 @@
if (strcasecmp(scheme, "ftp") == 0)
return ap_proxy_ftp_handler(r, cr, url);
else
- return NOT_IMPLEMENTED;
+ return HTTP_FORBIDDEN;
}
/* -------------------------------------------------------------- */