| 320 | } |
| 321 | |
| 322 | static void cgi_child_errfn(apr_pool_t *pool, apr_status_t err, |
| 323 | const char *description) |
| 324 | { |
| 325 | apr_file_t *stderr_log; |
| 326 | |
| 327 | apr_file_open_stderr(&stderr_log, pool); |
| 328 | /* Escape the logged string because it may be something that |
| 329 | * came in over the network. |
| 330 | */ |
| 331 | apr_file_printf(stderr_log, |
| 332 | "(%d)%pm: %s\n", |
| 333 | err, |
| 334 | &err, |
| 335 | #ifndef AP_UNSAFE_ERROR_LOG_UNESCAPED |
| 336 | ap_escape_logitem(pool, |
| 337 | #endif |
| 338 | description |
| 339 | #ifndef AP_UNSAFE_ERROR_LOG_UNESCAPED |
| 340 | ) |
| 341 | #endif |
| 342 | ); |
| 343 | } |
| 344 | |
| 345 | static apr_status_t run_cgi_child(apr_file_t **script_out, |
| 346 | apr_file_t **script_in, |
nothing calls this directly
no test coverage detected