On 6/28/22 3:05 PM, gbec...@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

Reply via email to