commit: 9671e6a50b5ceb989c77e6960ef209ec571e3e3f Author: Michael Mair-Keimberger <mm1ke <AT> gentoo <DOT> org> AuthorDate: Sun Dec 28 19:14:25 2025 +0000 Commit: Michael Mair-Keimberger <mm1ke <AT> gentoo <DOT> org> CommitDate: Sun Dec 28 19:14:25 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9671e6a5
dev-lang/go: remove unused patches Signed-off-by: Michael Mair-Keimberger <mm1ke <AT> gentoo.org> dev-lang/go/files/go-1.24.9-ipv6-validation.patch | 86 ----------------------- dev-lang/go/files/go-1.25.3-ipv6-validation.patch | 86 ----------------------- 2 files changed, 172 deletions(-) diff --git a/dev-lang/go/files/go-1.24.9-ipv6-validation.patch b/dev-lang/go/files/go-1.24.9-ipv6-validation.patch deleted file mode 100644 index f9db3f7ee898..000000000000 --- a/dev-lang/go/files/go-1.24.9-ipv6-validation.patch +++ /dev/null @@ -1,86 +0,0 @@ -From e02a9d02d0181394e243cbc3b356e86896a78e2c Mon Sep 17 00:00:00 2001 -From: Roland Shoemaker <[email protected]> -Date: Wed, 08 Oct 2025 17:13:12 -0700 -Subject: [PATCH] [release-branch.go1.24] net/url: allow IP-literals with IPv4-mapped IPv6 addresses - -The security fix we applied in CL709857 was overly broad. It applied -rules from RFC 2732, which disallowed IPv4-mapped IPv6 addresses, but -these were later allowed in RFC 3986, which is the canonical URI syntax -RFC. - -Revert the portion of CL709857 which restricted IPv4-mapped addresses, -and update the related tests. - -Updates #75815 -Fixes #75831 - -Change-Id: I3192f2275ad5c386f5c15006a6716bdb5282919d -Reviewed-on: https://go-review.googlesource.com/c/go/+/710375 -LUCI-TryBot-Result: Go LUCI <[email protected]> -Reviewed-by: Ethan Lee <[email protected]> -Auto-Submit: Roland Shoemaker <[email protected]> -(cherry picked from commit 9db7e30bb42eed9912f5e7e9e3959f3b38879d5b) ---- - -diff --git a/src/net/url/url.go b/src/net/url/url.go -index c686239..1d9c1cd 100644 ---- a/src/net/url/url.go -+++ b/src/net/url/url.go -@@ -670,13 +670,13 @@ - - // Per RFC 3986, only a host identified by a valid - // IPv6 address can be enclosed by square brackets. -- // This excludes any IPv4 or IPv4-mapped addresses. -+ // This excludes any IPv4, but notably not IPv4-mapped addresses. - addr, err := netip.ParseAddr(unescapedHostname) - if err != nil { - return "", fmt.Errorf("invalid host: %w", err) - } -- if addr.Is4() || addr.Is4In6() { -- return "", errors.New("invalid IPv6 host") -+ if addr.Is4() { -+ return "", errors.New("invalid IP-literal") - } - return "[" + unescapedHostname + "]" + unescapedColonPort, nil - } else if i := strings.LastIndex(host, ":"); i != -1 { -diff --git a/src/net/url/url_test.go b/src/net/url/url_test.go -index 3206558..6084fac 100644 ---- a/src/net/url/url_test.go -+++ b/src/net/url/url_test.go -@@ -726,7 +726,7 @@ - {"https://[2001:db8::1]/path", true}, // compressed IPv6 address with path - {"https://[fe80::1%25eth0]/path?query=1", true}, // link-local with zone, path, and query - -- {"https://[::ffff:192.0.2.1]", false}, -+ {"https://[::ffff:192.0.2.1]", true}, - {"https://[:1] ", false}, - {"https://[1:2:3:4:5:6:7:8:9]", false}, - {"https://[1::1::1]", false}, -@@ -1672,16 +1672,17 @@ - {"cache_object:foo/bar", true}, - {"cache_object/:foo/bar", false}, - -- {"http://[192.168.0.1]/", true}, // IPv4 in brackets -- {"http://[192.168.0.1]:8080/", true}, // IPv4 in brackets with port -- {"http://[::ffff:192.168.0.1]/", true}, // IPv4-mapped IPv6 in brackets -- {"http://[::ffff:192.168.0.1]:8080/", true}, // IPv4-mapped IPv6 in brackets with port -- {"http://[::ffff:c0a8:1]/", true}, // IPv4-mapped IPv6 in brackets (hex) -- {"http://[not-an-ip]/", true}, // invalid IP string in brackets -- {"http://[fe80::1%foo]/", true}, // invalid zone format in brackets -- {"http://[fe80::1", true}, // missing closing bracket -- {"http://fe80::1]/", true}, // missing opening bracket -- {"http://[test.com]/", true}, // domain name in brackets -+ {"http://[192.168.0.1]/", true}, // IPv4 in brackets -+ {"http://[192.168.0.1]:8080/", true}, // IPv4 in brackets with port -+ {"http://[::ffff:192.168.0.1]/", false}, // IPv4-mapped IPv6 in brackets -+ {"http://[::ffff:192.168.0.1000]/", true}, // Out of range IPv4-mapped IPv6 in brackets -+ {"http://[::ffff:192.168.0.1]:8080/", false}, // IPv4-mapped IPv6 in brackets with port -+ {"http://[::ffff:c0a8:1]/", false}, // IPv4-mapped IPv6 in brackets (hex) -+ {"http://[not-an-ip]/", true}, // invalid IP string in brackets -+ {"http://[fe80::1%foo]/", true}, // invalid zone format in brackets -+ {"http://[fe80::1", true}, // missing closing bracket -+ {"http://fe80::1]/", true}, // missing opening bracket -+ {"http://[test.com]/", true}, // domain name in brackets - } - for _, tt := range tests { - u, err := Parse(tt.in) diff --git a/dev-lang/go/files/go-1.25.3-ipv6-validation.patch b/dev-lang/go/files/go-1.25.3-ipv6-validation.patch deleted file mode 100644 index 4f162b2b09a9..000000000000 --- a/dev-lang/go/files/go-1.25.3-ipv6-validation.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 83449b7e2f261c94ea46842012c0992a3a714ce5 Mon Sep 17 00:00:00 2001 -From: Roland Shoemaker <[email protected]> -Date: Wed, 08 Oct 2025 17:13:12 -0700 -Subject: [PATCH] [release-branch.go1.25] net/url: allow IP-literals with IPv4-mapped IPv6 addresses - -The security fix we applied in CL709857 was overly broad. It applied -rules from RFC 2732, which disallowed IPv4-mapped IPv6 addresses, but -these were later allowed in RFC 3986, which is the canonical URI syntax -RFC. - -Revert the portion of CL709857 which restricted IPv4-mapped addresses, -and update the related tests. - -Updates #75815 -Fixes #75832 - -Change-Id: I3192f2275ad5c386f5c15006a6716bdb5282919d -Reviewed-on: https://go-review.googlesource.com/c/go/+/710375 -LUCI-TryBot-Result: Go LUCI <[email protected]> -Reviewed-by: Ethan Lee <[email protected]> -Auto-Submit: Roland Shoemaker <[email protected]> -(cherry picked from commit 9db7e30bb42eed9912f5e7e9e3959f3b38879d5b) ---- - -diff --git a/src/net/url/url.go b/src/net/url/url.go -index 40faa7c..1c50e06 100644 ---- a/src/net/url/url.go -+++ b/src/net/url/url.go -@@ -673,13 +673,13 @@ - - // Per RFC 3986, only a host identified by a valid - // IPv6 address can be enclosed by square brackets. -- // This excludes any IPv4 or IPv4-mapped addresses. -+ // This excludes any IPv4, but notably not IPv4-mapped addresses. - addr, err := netip.ParseAddr(unescapedHostname) - if err != nil { - return "", fmt.Errorf("invalid host: %w", err) - } -- if addr.Is4() || addr.Is4In6() { -- return "", errors.New("invalid IPv6 host") -+ if addr.Is4() { -+ return "", errors.New("invalid IP-literal") - } - return "[" + unescapedHostname + "]" + unescapedColonPort, nil - } else if i := strings.LastIndex(host, ":"); i != -1 { -diff --git a/src/net/url/url_test.go b/src/net/url/url_test.go -index 3206558..6084fac 100644 ---- a/src/net/url/url_test.go -+++ b/src/net/url/url_test.go -@@ -726,7 +726,7 @@ - {"https://[2001:db8::1]/path", true}, // compressed IPv6 address with path - {"https://[fe80::1%25eth0]/path?query=1", true}, // link-local with zone, path, and query - -- {"https://[::ffff:192.0.2.1]", false}, -+ {"https://[::ffff:192.0.2.1]", true}, - {"https://[:1] ", false}, - {"https://[1:2:3:4:5:6:7:8:9]", false}, - {"https://[1::1::1]", false}, -@@ -1672,16 +1672,17 @@ - {"cache_object:foo/bar", true}, - {"cache_object/:foo/bar", false}, - -- {"http://[192.168.0.1]/", true}, // IPv4 in brackets -- {"http://[192.168.0.1]:8080/", true}, // IPv4 in brackets with port -- {"http://[::ffff:192.168.0.1]/", true}, // IPv4-mapped IPv6 in brackets -- {"http://[::ffff:192.168.0.1]:8080/", true}, // IPv4-mapped IPv6 in brackets with port -- {"http://[::ffff:c0a8:1]/", true}, // IPv4-mapped IPv6 in brackets (hex) -- {"http://[not-an-ip]/", true}, // invalid IP string in brackets -- {"http://[fe80::1%foo]/", true}, // invalid zone format in brackets -- {"http://[fe80::1", true}, // missing closing bracket -- {"http://fe80::1]/", true}, // missing opening bracket -- {"http://[test.com]/", true}, // domain name in brackets -+ {"http://[192.168.0.1]/", true}, // IPv4 in brackets -+ {"http://[192.168.0.1]:8080/", true}, // IPv4 in brackets with port -+ {"http://[::ffff:192.168.0.1]/", false}, // IPv4-mapped IPv6 in brackets -+ {"http://[::ffff:192.168.0.1000]/", true}, // Out of range IPv4-mapped IPv6 in brackets -+ {"http://[::ffff:192.168.0.1]:8080/", false}, // IPv4-mapped IPv6 in brackets with port -+ {"http://[::ffff:c0a8:1]/", false}, // IPv4-mapped IPv6 in brackets (hex) -+ {"http://[not-an-ip]/", true}, // invalid IP string in brackets -+ {"http://[fe80::1%foo]/", true}, // invalid zone format in brackets -+ {"http://[fe80::1", true}, // missing closing bracket -+ {"http://fe80::1]/", true}, // missing opening bracket -+ {"http://[test.com]/", true}, // domain name in brackets - } - for _, tt := range tests { - u, err := Parse(tt.in)
