You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2016/12/22 19:20:26 UTC
svn commit: r1775705 - in /httpd/httpd/branches/2.2.x-merge-http-strict: ./
server/protocol.c
Author: wrowe
Date: Thu Dec 22 19:20:25 2016
New Revision: 1775705
URL: http://svn.apache.org/viewvc?rev=1775705&view=rev
Log:
Backports: r1185385
Submitted by: sf
Downgrade some more log messages indicating client errors from level error to
info. Add log messages for various reasons to return HTTP_BAD_REQUEST.
Modified:
httpd/httpd/branches/2.2.x-merge-http-strict/ (props changed)
httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c
Propchange: httpd/httpd/branches/2.2.x-merge-http-strict/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Dec 22 19:20:25 2016
@@ -1,2 +1,2 @@
/httpd/httpd/branches/2.4.x:1555538,1555559,1648845,1649003,1681034,1682929,1682939
-/httpd/httpd/trunk:290940,395552,417988,451572,501364,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,713575,719357,720250,729316-729317,729586,732414,732504,732816,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,819480,823536,823563,834378,835046,891282,892678,892808,900022,932791,942209,952823,953311,955966,979120,981084,992625,1026743,1031551,1040304,1040373,1057372,1058192,1070096,1082189,1082196,1090645,1100511,1172732,1178566,1200040,1200372,1200374,1213380,1222335,1223048,1231446,1244211,1294306,1299738,1300171,1301111,1308862,1327036,1327080,1328133,1328325-1328326,1345319,1348656,1349905,1352912,13631
83,1363186,1366344,1367778,1368131,1368396,1369568,1395225,1398066,1400700,1408402,1410681,1413732,1414094,1416889,1418752,1422234,1422253,1435178,1447426,1470940,1475878,1476604,1476621,1476642,1476644-1476645,1477530,1484852,1485409,1485668,1490994,1493330,1496429,1500323,1504276,1506714,1509872,1509875,1514215,1524192,1524770,1526168,1526189,1527291,1527295,1527925,1528718,1529559,1529988,1529991,1531505,1532816,1551685,1551714,1552227,1553204,1554276,1554281,1555240,1555555,1556428,1563420,1572092,1572198,1572543,1572611,1572630,1572655,1572663,1572668-1572671,1572896,1572911,1572967,1573224,1573229,1575400,1585090,1586745,1587594,1587639,1588851,1590509,1603156,1604353,1610207,1610311,1610491,1610501,1611165,1611169,1620932,1621453,1643537,1643543,1648840,1649001,1649043,1650310,1650320,1652929,1653997,1657897,1658765,1663647,1664205,1665215,1665218,1665625,1665721,1666363,1674056,1675533,1676654,1677462,1679182,1679470,1680895,1680900,1680942,1681037,1682923,1682937,1684513,16
85345,1685347,1685349-1685350,1688274,1688536,1688538
+/httpd/httpd/trunk:290940,395552,417988,451572,501364,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,713575,719357,720250,729316-729317,729586,732414,732504,732816,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,819480,823536,823563,834378,835046,891282,892678,892808,900022,932791,942209,952823,953311,955966,979120,981084,992625,1026743,1031551,1040304,1040373,1057372,1058192,1070096,1082189,1082196,1090645,1100511,1172732,1178566,1185385,1200040,1200372,1200374,1213380,1222335,1223048,1231446,1244211,1294306,1299738,1300171,1301111,1308862,1327036,1327080,1328133,1328325-1328326,1345319,1348656,1349905,13529
12,1363183,1363186,1366344,1367778,1368131,1368396,1369568,1395225,1398066,1400700,1408402,1410681,1413732,1414094,1416889,1418752,1422234,1422253,1435178,1447426,1470940,1475878,1476604,1476621,1476642,1476644-1476645,1477530,1484852,1485409,1485668,1490994,1493330,1496429,1500323,1504276,1506714,1509872,1509875,1514215,1524192,1524770,1526168,1526189,1527291,1527295,1527925,1528718,1529559,1529988,1529991,1531505,1532816,1551685,1551714,1552227,1553204,1554276,1554281,1555240,1555555,1556428,1563420,1572092,1572198,1572543,1572611,1572630,1572655,1572663,1572668-1572671,1572896,1572911,1572967,1573224,1573229,1575400,1585090,1586745,1587594,1587639,1588851,1590509,1603156,1604353,1610207,1610311,1610491,1610501,1611165,1611169,1620932,1621453,1643537,1643543,1648840,1649001,1649043,1650310,1650320,1652929,1653997,1657897,1658765,1663647,1664205,1665215,1665218,1665625,1665721,1666363,1674056,1675533,1676654,1677462,1679182,1679470,1680895,1680900,1680942,1681037,1682923,1682937,16
84513,1685345,1685347,1685349-1685350,1688274,1688536,1688538
Modified: httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c?rev=1775705&r1=1775704&r2=1775705&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c (original)
+++ httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c Thu Dec 22 19:20:25 2016
@@ -702,9 +702,21 @@ static int table_do_fn_check_lengths(voi
"\n<pre>\n",
ap_escape_html(r->pool, key),
"</pre>\n", NULL));
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, "Request header exceeds "
+ "LimitRequestFieldSize after merging: %s", key);
return 0;
}
+/* get the length of the field name for logging, but no more than 80 bytes */
+#define LOG_NAME_MAX_LEN 80
+static int field_name_len(const char *field)
+{
+ const char *end = ap_strchr_c(field, ':');
+ if (end == NULL || end - field > LOG_NAME_MAX_LEN)
+ return LOG_NAME_MAX_LEN;
+ return end - field;
+}
+
AP_DECLARE(void) ap_get_mime_headers_core(request_rec *r, apr_bucket_brigade *bb)
{
char *last_field = NULL;
@@ -755,6 +767,9 @@ AP_DECLARE(void) ap_get_mime_headers_cor
ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
"Request header exceeds LimitRequestFieldSize: "
"%.*s", field_name_len(field), field);
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
+ "Request header exceeds LimitRequestFieldSize: "
+ "%.*s", field_name_len(field), field);
}
return;
}
@@ -786,6 +801,10 @@ AP_DECLARE(void) ap_get_mime_headers_cor
"Request header exceeds LimitRequestFieldSize "
"after folding: %.*s",
field_name_len(last_field), last_field);
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
+ "Request header exceeds LimitRequestFieldSize "
+ "after folding: %.*s",
+ field_name_len(last_field), last_field);
return;
}
@@ -811,6 +830,9 @@ AP_DECLARE(void) ap_get_mime_headers_cor
apr_table_setn(r->notes, "error-notes",
"The number of request header fields "
"exceeds this server's limit.");
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
+ "Number of request headers exceeds "
+ "LimitRequestFields");
return;
}
@@ -829,6 +851,10 @@ AP_DECLARE(void) ap_get_mime_headers_cor
"separator: %.*s", (int)LOG_NAME_MAX_LEN,
last_field);
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
+ "Request header field is missing ':' "
+ "separator: %.*s", (int)LOG_NAME_MAX_LEN,
+ last_field);
return;
}
@@ -957,12 +983,13 @@ request_rec *ap_read_request(conn_rec *c
if (r->status == HTTP_REQUEST_URI_TOO_LARGE
|| r->status == HTTP_BAD_REQUEST) {
if (r->status == HTTP_BAD_REQUEST) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
"request failed: invalid characters in URI");
}
else {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
- "request failed: URI too long (longer than %d)", r->server->limit_req_line);
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
+ "request failed: URI too long (longer than %d)",
+ r->server->limit_req_line);
}
ap_send_error_response(r, 0);
ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r);
@@ -999,7 +1026,7 @@ request_rec *ap_read_request(conn_rec *c
ap_get_mime_headers_core(r, tmp_bb);
if (r->status != HTTP_OK) {
- ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
"request failed: error reading the headers");
ap_send_error_response(r, 0);
ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r);
@@ -1046,7 +1073,7 @@ request_rec *ap_read_request(conn_rec *c
* headers! Have to dink things just to make sure the error message
* comes through...
*/
- ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
"client sent invalid HTTP/0.9 request: HEAD %s",
r->uri);
r->header_only = 0;
@@ -1088,7 +1115,7 @@ request_rec *ap_read_request(conn_rec *c
* a Host: header, and the server MUST respond with 400 if it doesn't.
*/
r->status = HTTP_BAD_REQUEST;
- ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
"client sent HTTP/1.1 request without hostname "
"(see RFC2616 section 14.23): %s", r->uri);
}
@@ -1310,7 +1337,7 @@ AP_DECLARE(int) ap_get_basic_auth_pw(req
if (strcasecmp(ap_getword(r->pool, &auth_line, ' '), "Basic")) {
/* Client tried to authenticate using wrong auth scheme */
- ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+ ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
"client used wrong authentication scheme: %s", r->uri);
ap_note_basic_auth_failure(r);
return HTTP_UNAUTHORIZED;
Re: svn commit: r1775705 - in /httpd/httpd/branches/2.2.x-merge-http-strict:
./ server/protocol.c
Posted by William A Rowe Jr <wr...@rowe-clan.net>.
On Thu, Dec 22, 2016 at 6:00 PM, Yann Ylavic <yl...@gmail.com> wrote:
> On Thu, Dec 22, 2016 at 8:20 PM, <wr...@apache.org> wrote:
> > Author: wrowe
> > Date: Thu Dec 22 19:20:25 2016
> > New Revision: 1775705
> >
> > URL: http://svn.apache.org/viewvc?rev=1775705&view=rev
> > Log:
> > Backports: r1185385
> > Submitted by: sf
> > Downgrade some more log messages indicating client errors from level
> error to
> > info. Add log messages for various reasons to return HTTP_BAD_REQUEST.
>
> Hmm, in 2.2, users are used to get an error message when httpd refuses
> the request (moreover before any module had seen the request).
>
> Is it really 2.2 material?
>
> >
> > Modified: httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c
> > URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x-
> merge-http-strict/server/protocol.c?rev=1775705&r1=
> 1775704&r2=1775705&view=diff
> > ============================================================
> ==================
> > --- httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c
> (original)
> > +++ httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c Thu
> Dec 22 19:20:25 2016
> > @@ -702,9 +702,21 @@ static int table_do_fn_check_lengths(voi
> > "\n<pre>\n",
> > ap_escape_html(r->pool, key),
> > "</pre>\n", NULL));
> > + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, "Request header exceeds
> "
> > + "LimitRequestFieldSize after merging: %s", key);
> > return 0;
> > }
> >
> > +/* get the length of the field name for logging, but no more than 80
> bytes */
> > +#define LOG_NAME_MAX_LEN 80
> > +static int field_name_len(const char *field)
> > +{
> > + const char *end = ap_strchr_c(field, ':');
> > + if (end == NULL || end - field > LOG_NAME_MAX_LEN)
> > + return LOG_NAME_MAX_LEN;
> > + return end - field;
> > +}
> > +
> > AP_DECLARE(void) ap_get_mime_headers_core(request_rec *r,
> apr_bucket_brigade *bb)
> > {
> > char *last_field = NULL;
> > @@ -755,6 +767,9 @@ AP_DECLARE(void) ap_get_mime_headers_cor
> > ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> > "Request header exceeds
> LimitRequestFieldSize: "
> > "%.*s", field_name_len(field), field);
> > + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> > + "Request header exceeds
> LimitRequestFieldSize: "
> > + "%.*s", field_name_len(field), field);
>
> Double logging?
>
> > }
> > return;
> > }
> > @@ -786,6 +801,10 @@ AP_DECLARE(void) ap_get_mime_headers_cor
> > "Request header exceeds
> LimitRequestFieldSize "
> > "after folding: %.*s",
> > field_name_len(last_field),
> last_field);
> > + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> > + "Request header exceeds
> LimitRequestFieldSize "
> > + "after folding: %.*s",
> > + field_name_len(last_field),
> last_field);
>
> Likewise?
>
> > return;
> > }
> >
> > @@ -811,6 +830,9 @@ AP_DECLARE(void) ap_get_mime_headers_cor
> > apr_table_setn(r->notes, "error-notes",
> > "The number of request header fields
> "
> > "exceeds this server's limit.");
> > + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> > + "Number of request headers exceeds "
> > + "LimitRequestFields");
> > return;
> > }
> >
> > @@ -829,6 +851,10 @@ AP_DECLARE(void) ap_get_mime_headers_cor
> > "separator: %.*s",
> (int)LOG_NAME_MAX_LEN,
> > last_field);
> >
> > + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> > + "Request header field is missing ':' "
> > + "separator: %.*s",
> (int)LOG_NAME_MAX_LEN,
> > + last_field);
>
> Likewise?
>
> > return;
> > }
>
Yes, doubled merge. Believe I have these cleaned up in r1775774.
Re: svn commit: r1775705 - in /httpd/httpd/branches/2.2.x-merge-http-strict:
./ server/protocol.c
Posted by Yann Ylavic <yl...@gmail.com>.
On Thu, Dec 22, 2016 at 8:20 PM, <wr...@apache.org> wrote:
> Author: wrowe
> Date: Thu Dec 22 19:20:25 2016
> New Revision: 1775705
>
> URL: http://svn.apache.org/viewvc?rev=1775705&view=rev
> Log:
> Backports: r1185385
> Submitted by: sf
> Downgrade some more log messages indicating client errors from level error to
> info. Add log messages for various reasons to return HTTP_BAD_REQUEST.
Hmm, in 2.2, users are used to get an error message when httpd refuses
the request (moreover before any module had seen the request).
Is it really 2.2 material?
>
> Modified: httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c?rev=1775705&r1=1775704&r2=1775705&view=diff
> ==============================================================================
> --- httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c (original)
> +++ httpd/httpd/branches/2.2.x-merge-http-strict/server/protocol.c Thu Dec 22 19:20:25 2016
> @@ -702,9 +702,21 @@ static int table_do_fn_check_lengths(voi
> "\n<pre>\n",
> ap_escape_html(r->pool, key),
> "</pre>\n", NULL));
> + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, "Request header exceeds "
> + "LimitRequestFieldSize after merging: %s", key);
> return 0;
> }
>
> +/* get the length of the field name for logging, but no more than 80 bytes */
> +#define LOG_NAME_MAX_LEN 80
> +static int field_name_len(const char *field)
> +{
> + const char *end = ap_strchr_c(field, ':');
> + if (end == NULL || end - field > LOG_NAME_MAX_LEN)
> + return LOG_NAME_MAX_LEN;
> + return end - field;
> +}
> +
> AP_DECLARE(void) ap_get_mime_headers_core(request_rec *r, apr_bucket_brigade *bb)
> {
> char *last_field = NULL;
> @@ -755,6 +767,9 @@ AP_DECLARE(void) ap_get_mime_headers_cor
> ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> "Request header exceeds LimitRequestFieldSize: "
> "%.*s", field_name_len(field), field);
> + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> + "Request header exceeds LimitRequestFieldSize: "
> + "%.*s", field_name_len(field), field);
Double logging?
> }
> return;
> }
> @@ -786,6 +801,10 @@ AP_DECLARE(void) ap_get_mime_headers_cor
> "Request header exceeds LimitRequestFieldSize "
> "after folding: %.*s",
> field_name_len(last_field), last_field);
> + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> + "Request header exceeds LimitRequestFieldSize "
> + "after folding: %.*s",
> + field_name_len(last_field), last_field);
Likewise?
> return;
> }
>
> @@ -811,6 +830,9 @@ AP_DECLARE(void) ap_get_mime_headers_cor
> apr_table_setn(r->notes, "error-notes",
> "The number of request header fields "
> "exceeds this server's limit.");
> + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> + "Number of request headers exceeds "
> + "LimitRequestFields");
> return;
> }
>
> @@ -829,6 +851,10 @@ AP_DECLARE(void) ap_get_mime_headers_cor
> "separator: %.*s", (int)LOG_NAME_MAX_LEN,
> last_field);
>
> + ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r,
> + "Request header field is missing ':' "
> + "separator: %.*s", (int)LOG_NAME_MAX_LEN,
> + last_field);
Likewise?
> return;
> }