From: Brian France Date: Thu, 12 Oct 2006 20:02:58 +0000 (+0000) Subject: Memory assigned to the request_rec should be allocated from apache pools X-Git-Tag: php-5.2.0RC6~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=33879eceb3ac0cb6f97b8029da5e1e32d20ab361;p=php Memory assigned to the request_rec should be allocated from apache pools and should not be free'ed at the end of the handler phase --- diff --git a/sapi/apache/mod_php5.c b/sapi/apache/mod_php5.c index a6d18f9705..719a193232 100644 --- a/sapi/apache/mod_php5.c +++ b/sapi/apache/mod_php5.c @@ -209,7 +209,6 @@ static int sapi_apache_header_handler(sapi_header_struct *sapi_header, sapi_head static int sapi_apache_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC) { request_rec *r = SG(server_context); - char *status_buf = NULL; const char *sline = SG(sapi_headers).http_status_line; int sline_len; @@ -223,11 +222,10 @@ static int sapi_apache_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC) * the status-code: */ if (sline && ((sline_len = strlen(sline)) > 12) && strncmp(sline, "HTTP/1.", 7) == 0 && sline[8] == ' ' && sline[12] == ' ') { if ((sline_len - 9) > MAX_STATUS_LENGTH) { - status_buf = estrndup(sline + 9, MAX_STATUS_LENGTH); + r->status_line = ap_pstrndup(r->pool, sline + 9, MAX_STATUS_LENGTH); } else { - status_buf = estrndup(sline + 9, sline_len - 9); + r->status_line = ap_pstrndup(r->pool, sline + 9, sline_len - 9); } - r->status_line = status_buf; } if(r->status==304) { @@ -235,9 +233,6 @@ static int sapi_apache_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC) } else { send_http_header(r); } - if (status_buf) { - efree(status_buf); - } return SAPI_HEADER_SENT_SUCCESSFULLY; } /* }}} */