apr_status_t status = APR_SUCCESS;
if ((ctx->outbuf == NULL) || (size <=0))
return status;
- out = apr_palloc(ctx->tpool, size);
- memcpy(out, ctx->outbuf, size);
+ out = apr_pmemdup(ctx->tpool, ctx->outbuf, size);
status = append_bucket(ctx, out, size);
ctx->curoutbuf = ctx->outbuf;
return status;
/* if size is bigger than the allocated buffer directly add to output
* brigade */
if ((status == APR_SUCCESS) && (sz >= ctx->bufsize)) {
- char* newbuf = apr_palloc(ctx->tpool, sz);
- memcpy(newbuf, buf, sz);
+ char* newbuf = apr_pmemdup(ctx->tpool, buf, sz);
status = append_bucket(ctx, newbuf, sz);
/* pool might get clear after append_bucket */
if (ctx->outbuf == NULL) {
key = &cgid_req.conn_id;
}
else {
- key = apr_pcalloc(pcgi, sizeof(cgid_req.conn_id));
- memcpy(key, &cgid_req.conn_id, sizeof(cgid_req.conn_id));
+ key = apr_pmemdup(pcgi, &cgid_req.conn_id, sizeof(cgid_req.conn_id));
}
apr_hash_set(script_hash, key, sizeof(cgid_req.conn_id),
(void *)((long)procnew->pid));
proxy_function, backend_addr->family, worker->s->hostname);
if (conf->source_address_set) {
- local_addr = apr_pcalloc(conn->pool, sizeof(apr_sockaddr_t));
- memcpy(local_addr, conf->source_address, sizeof(apr_sockaddr_t));
+ local_addr = apr_pmemdup(conn->pool, conf->source_address,
+ sizeof(apr_sockaddr_t));
local_addr->pool = conn->pool;
rv = apr_socket_bind(newsock, local_addr);
if (rv != APR_SUCCESS) {