From: Martin Kraemer Date: Tue, 29 Jan 2002 16:55:07 +0000 (+0000) Subject: For NoProxy connections (when no backend->connection is needed), a NULL X-Git-Tag: 2.0.31~46 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cdf7a56914d85f41f038d505b18d77cdb4c546bf;p=apache For NoProxy connections (when no backend->connection is needed), a NULL pointer would be dereferenced. Check it more thoroughly. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@93077 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/proxy_ftp.c b/modules/proxy/proxy_ftp.c index 389862a2af..416eba1484 100644 --- a/modules/proxy/proxy_ftp.c +++ b/modules/proxy/proxy_ftp.c @@ -572,7 +572,7 @@ int ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf, int i = 0, j, len, rc; int one = 1; char *size = NULL; - apr_socket_t *origin_sock; + apr_socket_t *origin_sock = NULL; /* stuff for PASV mode */ int connect = 0, use_port = 0; @@ -601,7 +601,8 @@ int ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf, backend->port = 0; ap_set_module_config(c->conn_config, &proxy_ftp_module, backend); } - origin_sock = ap_get_module_config(backend->connection->conn_config, &core_module); + if (backend->connection) + origin_sock = ap_get_module_config(backend->connection->conn_config, &core_module); /* @@ -777,6 +778,7 @@ int ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf, if (backend->connection) { apr_socket_close(origin_sock); backend->connection = NULL; + origin_sock = NULL; } ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, 0, r->server, @@ -1652,7 +1654,10 @@ int ap_proxy_ftp_handler(request_rec *r, proxy_server_conf *conf, ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, 0, r->server, "proxy: FTP: %d %s", rc, buffer); ap_flush_conn(origin); - apr_socket_close(origin_sock); + if (origin_sock) { + apr_socket_close(origin_sock); + origin_sock = NULL; + } apr_brigade_destroy(bb); return OK; }