From 358b2781af5855e29fb9a37599e1154308117668 Mon Sep 17 00:00:00 2001 From: Robert James Kaes Date: Mon, 22 Oct 2001 16:08:29 +0000 Subject: Cleaned up the code in handle_connection() and added a NULL pointer test in the free request function. --- src/reqs.c | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) (limited to 'src/reqs.c') diff --git a/src/reqs.c b/src/reqs.c index 5b4cdbd..2132ea1 100644 --- a/src/reqs.c +++ b/src/reqs.c @@ -1,4 +1,4 @@ -/* $Id: reqs.c,v 1.30 2001-10-19 18:03:49 rjkaes Exp $ +/* $Id: reqs.c,v 1.31 2001-10-22 16:08:29 rjkaes Exp $ * * This is where all the work in tinyproxy is actually done. Incoming * connections have a new thread created for them. The thread then @@ -111,6 +111,9 @@ struct request_s { static void free_request_struct(struct request_s *request) { + if (!request) + return; + safefree(request->method); safefree(request->protocol); @@ -836,33 +839,33 @@ internal_proxy: safefree(request_line); if (!request) { - update_stats(STAT_BADCONN); - if (!connptr->send_message) { + update_stats(STAT_BADCONN); destroy_conn(connptr); return; } - } else { + goto send_error; + } + #ifdef UPSTREAM_SUPPORT - if (config.upstream_name && config.upstream_port != -1) { - if (connect_to_upstream(connptr, request) < 0) - goto send_error; - } else { + if (config.upstream_name && config.upstream_port != -1) { + if (connect_to_upstream(connptr, request) < 0) + goto send_error; + } else { #endif - connptr->server_fd = opensock(request->host, request->port); - if (connptr->server_fd < 0) { - httperr(connptr, 500, HTTP500ERROR); - goto send_error; - } + connptr->server_fd = opensock(request->host, request->port); + if (connptr->server_fd < 0) { + httperr(connptr, 500, HTTP500ERROR); + goto send_error; + } - log_message(LOG_CONN, "Established connection to host \"%s\" using file descriptor %d.", request->host, connptr->server_fd); + log_message(LOG_CONN, "Established connection to host \"%s\" using file descriptor %d.", request->host, connptr->server_fd); - if (!connptr->ssl) - establish_http_connection(connptr, request); + if (!connptr->ssl) + establish_http_connection(connptr, request); #ifdef UPSTREAM_SUPPORT - } -#endif } +#endif send_error: free_request_struct(request); -- cgit v1.2.3