Mailing List Archive

Re: svn commit: r1902317 - /httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c
On 6/28/22 3:05 PM, gbechis@apache.org wrote:
> Author: gbechis
> Date: Tue Jun 28 13:05:20 2022
> New Revision: 1902317
>
> URL: http://svn.apache.org/viewvc?rev=1902317&view=rev
> Log:
> check apr_sockaddr_info_get() return value
> bz #66135
>
> Modified:
> httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c
>
> Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c?rev=1902317&r1=1902316&r2=1902317&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c (original)
> +++ httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c Tue Jun 28 13:05:20 2022
> @@ -1555,7 +1555,12 @@ static int proxy_ftp_handler(request_rec
> }
>
> /* make the connection */
> - apr_sockaddr_info_get(&pasv_addr, apr_psprintf(p, "%d.%d.%d.%d", h3, h2, h1, h0), connect_addr->family, pasvport, 0, p);
> + err = apr_sockaddr_info_get(&pasv_addr, apr_psprintf(p, "%d.%d.%d.%d", h3, h2, h1, h0), connect_addr->family, pasvport, 0, p);
> + if (APR_SUCCESS != err) {
> + return ap_proxyerror(r, HTTP_BAD_GATEWAY, apr_pstrcat(p,
> + "DNS lookup failure for: ",
> + connectname, NULL));

I think this needs to be ftp_proxyerror instead of ap_proxyerror.

> + }
> rv = apr_socket_connect(data_sock, pasv_addr);
> if (rv != APR_SUCCESS) {
> ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01048)
> @@ -1598,7 +1603,12 @@ static int proxy_ftp_handler(request_rec
> #endif /* _OSD_POSIX */
> }
>
> - apr_sockaddr_info_get(&local_addr, local_ip, APR_UNSPEC, local_port, 0, r->pool);
> + err = apr_sockaddr_info_get(&local_addr, local_ip, APR_UNSPEC, local_port, 0, r->pool);
> + if (APR_SUCCESS != err) {
> + return ap_proxyerror(r, HTTP_BAD_GATEWAY, apr_pstrcat(p,
> + "DNS lookup failure for: ",
> + connectname, NULL));

I think this needs to be ftp_proxyerror instead of ap_proxyerror.

> + }
>
> if ((rv = apr_socket_bind(local_sock, local_addr)) != APR_SUCCESS) {
> ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r, APLOGNO(01051)
>
>
>

Regards

RĂ¼diger