ab: increase request and response header size to 8192 bytes,
fix potential buffer-overflow in Server: header handling.
Submitted by: jkaluza
Reviewed/backported by: jim
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@
1638069 13f79535-47bb-0310-9956-
ffa450edef68
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- * ab: Increase request and response header size to 8192 bytes.
- Fix potential buffer-overflow in Server: header handling.
- trunk patch: http://svn.apache.org/r1622450
- 2.4.x patch: trunk works
- +1: jkaluza, ylavic, trawick
-
* mod_cache: Avoid another (unlikely) access to freed memory.
trunk patch: http://svn.apache.org/r1632740
2.4.x patch: http://people.apache.org/~ylavic/httpd-2.4.x-apr_bucket_delete_new_fix.patch
STATE_READ
} connect_state_e;
-#define CBUFFSIZE (2048)
+#define CBUFFSIZE (8192)
struct connection {
apr_pool_t *ctx;
apr_time_t start, lasttime, stoptime;
/* global request (and its length) */
-char _request[2048];
+char _request[8192];
char *request = _request;
apr_size_t reqlen;
* this is first time, extract some interesting info
*/
char *p, *q;
+ size_t len = 0;
p = strstr(c->cbuff, "Server:");
q = servername;
if (p) {
p += 8;
- while (*p > 32)
- *q++ = *p++;
+ /* -1 to not overwrite last '\0' byte */
+ while (*p > 32 && len++ < sizeof(servername) - 1)
+ *q++ = *p++;
}
*q = 0;
}