- Added nil check for proxy user credentials to prevent potential nil pointer dereference. - Enhanced authentication logic for SOCKS5 proxies in `proxy_helpers.go` and `proxy.go`.
Unified · Split
| @@ -87,9 +87,12 @@ func buildProxyTransport(proxyURL string) *http.Transport { · 86 unmodified lines | ||
| 87 | 87 | // Handle different proxy schemes |
| 88 | 88 | if parsedURL.Scheme == "socks5" { |
| 89 | 89 | // Configure SOCKS5 proxy with optional authentication |
| 90 | − username := parsedURL.User.Username() | |
| 91 | − password, _ := parsedURL.User.Password() | |
| 92 | − proxyAuth := &proxy.Auth{User: username, Password: password} | |
| 90 | + var proxyAuth *proxy.Auth | |
| 91 | + if parsedURL.User != nil { | |
| 92 | + username := parsedURL.User.Username() | |
| 93 | + password, _ := parsedURL.User.Password() | |
| 94 | + proxyAuth = &proxy.Auth{User: username, Password: password} | |
| 95 | + } | |
| 93 | 96 | dialer, errSOCKS5 := proxy.SOCKS5("tcp", parsedURL.Host, proxyAuth, proxy.Direct) |
| 94 | 97 | if errSOCKS5 != nil { |
| 95 | 98 | log.Errorf("create SOCKS5 dialer failed: %v", errSOCKS5) |
| @@ -25,9 +25,12 @@ func SetProxy(cfg *config.SDKConfig, httpClient *http.Client) *http.Client { · 24 unmodified lines | ||
| 25 | 25 | // Handle different proxy schemes. |
| 26 | 26 | if proxyURL.Scheme == "socks5" { |
| 27 | 27 | // Configure SOCKS5 proxy with optional authentication. |
| 28 | − username := proxyURL.User.Username() | |
| 29 | − password, _ := proxyURL.User.Password() | |
| 30 | − proxyAuth := &proxy.Auth{User: username, Password: password} | |
| 28 | + var proxyAuth *proxy.Auth | |
| 29 | + if proxyURL.User != nil { | |
| 30 | + username := proxyURL.User.Username() | |
| 31 | + password, _ := proxyURL.User.Password() | |
| 32 | + proxyAuth = &proxy.Auth{User: username, Password: password} | |
| 33 | + } | |
| 31 | 34 | dialer, errSOCKS5 := proxy.SOCKS5("tcp", proxyURL.Host, proxyAuth, proxy.Direct) |
| 32 | 35 | if errSOCKS5 != nil { |
| 33 | 36 | log.Errorf("create SOCKS5 dialer failed: %v", errSOCKS5) |