mirror of
https://github.com/apache/httpd.git
synced 2025-08-20 16:09:55 +00:00
* Use distinct char pointers for sending and receiving buffers to avoid
destroying the pointer to the sending buffer in the ajp message if data is received from the backend before all data is sent to the backend. PR: 45911 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@709666 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@ -172,6 +172,7 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
|
||||
ajp_msg_t *msg;
|
||||
apr_size_t bufsiz = 0;
|
||||
char *buff;
|
||||
char *send_body_chunk_buff;
|
||||
apr_uint16_t size;
|
||||
const char *tenc;
|
||||
int havebody = 1;
|
||||
@ -427,7 +428,7 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
|
||||
break;
|
||||
case CMD_AJP13_SEND_BODY_CHUNK:
|
||||
/* AJP13_SEND_BODY_CHUNK: piece of data */
|
||||
status = ajp_parse_data(r, conn->data, &size, &buff);
|
||||
status = ajp_parse_data(r, conn->data, &size, &send_body_chunk_buff);
|
||||
if (status == APR_SUCCESS) {
|
||||
/* AJP13_SEND_BODY_CHUNK with zero length
|
||||
* is explicit flush message
|
||||
@ -443,7 +444,7 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
|
||||
}
|
||||
}
|
||||
else {
|
||||
e = apr_bucket_transient_create(buff, size,
|
||||
e = apr_bucket_transient_create(send_body_chunk_buff, size,
|
||||
r->connection->bucket_alloc);
|
||||
APR_BRIGADE_INSERT_TAIL(output_brigade, e);
|
||||
|
||||
|
Reference in New Issue
Block a user