diff options
Diffstat (limited to 'vendor/golang.org/x/net')
| -rw-r--r-- | vendor/golang.org/x/net/idna/go118.go | 14 | ||||
| -rw-r--r-- | vendor/golang.org/x/net/idna/idna10.0.0.go | 6 | ||||
| -rw-r--r-- | vendor/golang.org/x/net/idna/idna9.0.0.go | 4 | ||||
| -rw-r--r-- | vendor/golang.org/x/net/idna/pre_go118.go | 12 | ||||
| -rw-r--r-- | vendor/golang.org/x/net/idna/punycode.go | 36 | 
5 files changed, 56 insertions, 16 deletions
diff --git a/vendor/golang.org/x/net/idna/go118.go b/vendor/golang.org/x/net/idna/go118.go new file mode 100644 index 000000000..c5c4338db --- /dev/null +++ b/vendor/golang.org/x/net/idna/go118.go @@ -0,0 +1,14 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.18 +// +build go1.18 + +package idna + +// Transitional processing is disabled by default in Go 1.18. +// https://golang.org/issue/47510 +const transitionalLookup = false diff --git a/vendor/golang.org/x/net/idna/idna10.0.0.go b/vendor/golang.org/x/net/idna/idna10.0.0.go index 5208ba6cb..64ccf85fe 100644 --- a/vendor/golang.org/x/net/idna/idna10.0.0.go +++ b/vendor/golang.org/x/net/idna/idna10.0.0.go @@ -59,10 +59,10 @@ type Option func(*options)  // Transitional sets a Profile to use the Transitional mapping as defined in UTS  // #46. This will cause, for example, "ß" to be mapped to "ss". Using the  // transitional mapping provides a compromise between IDNA2003 and IDNA2008 -// compatibility. It is used by most browsers when resolving domain names. This +// compatibility. It is used by some browsers when resolving domain names. This  // option is only meaningful if combined with MapForLookup.  func Transitional(transitional bool) Option { -	return func(o *options) { o.transitional = true } +	return func(o *options) { o.transitional = transitional }  }  // VerifyDNSLength sets whether a Profile should fail if any of the IDN parts @@ -284,7 +284,7 @@ var (  	punycode = &Profile{}  	lookup   = &Profile{options{ -		transitional: true, +		transitional: transitionalLookup,  		useSTD3Rules: true,  		checkHyphens: true,  		checkJoiners: true, diff --git a/vendor/golang.org/x/net/idna/idna9.0.0.go b/vendor/golang.org/x/net/idna/idna9.0.0.go index 55f718f12..aae6aac87 100644 --- a/vendor/golang.org/x/net/idna/idna9.0.0.go +++ b/vendor/golang.org/x/net/idna/idna9.0.0.go @@ -58,10 +58,10 @@ type Option func(*options)  // Transitional sets a Profile to use the Transitional mapping as defined in UTS  // #46. This will cause, for example, "ß" to be mapped to "ss". Using the  // transitional mapping provides a compromise between IDNA2003 and IDNA2008 -// compatibility. It is used by most browsers when resolving domain names. This +// compatibility. It is used by some browsers when resolving domain names. This  // option is only meaningful if combined with MapForLookup.  func Transitional(transitional bool) Option { -	return func(o *options) { o.transitional = true } +	return func(o *options) { o.transitional = transitional }  }  // VerifyDNSLength sets whether a Profile should fail if any of the IDN parts diff --git a/vendor/golang.org/x/net/idna/pre_go118.go b/vendor/golang.org/x/net/idna/pre_go118.go new file mode 100644 index 000000000..3aaccab1c --- /dev/null +++ b/vendor/golang.org/x/net/idna/pre_go118.go @@ -0,0 +1,12 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.18 +// +build !go1.18 + +package idna + +const transitionalLookup = true diff --git a/vendor/golang.org/x/net/idna/punycode.go b/vendor/golang.org/x/net/idna/punycode.go index 02c7d59af..e8e3ac11a 100644 --- a/vendor/golang.org/x/net/idna/punycode.go +++ b/vendor/golang.org/x/net/idna/punycode.go @@ -49,6 +49,7 @@ func decode(encoded string) (string, error) {  		}  	}  	i, n, bias := int32(0), initialN, initialBias +	overflow := false  	for pos < len(encoded) {  		oldI, w := i, int32(1)  		for k := base; ; k += base { @@ -60,29 +61,32 @@ func decode(encoded string) (string, error) {  				return "", punyError(encoded)  			}  			pos++ -			i += digit * w -			if i < 0 { +			i, overflow = madd(i, digit, w) +			if overflow {  				return "", punyError(encoded)  			}  			t := k - bias -			if t < tmin { +			if k <= bias {  				t = tmin -			} else if t > tmax { +			} else if k >= bias+tmax {  				t = tmax  			}  			if digit < t {  				break  			} -			w *= base - t -			if w >= math.MaxInt32/base { +			w, overflow = madd(0, w, base-t) +			if overflow {  				return "", punyError(encoded)  			}  		} +		if len(output) >= 1024 { +			return "", punyError(encoded) +		}  		x := int32(len(output) + 1)  		bias = adapt(i-oldI, x, oldI == 0)  		n += i / x  		i %= x -		if n > utf8.MaxRune || len(output) >= 1024 { +		if n < 0 || n > utf8.MaxRune {  			return "", punyError(encoded)  		}  		output = append(output, 0) @@ -115,6 +119,7 @@ func encode(prefix, s string) (string, error) {  	if b > 0 {  		output = append(output, '-')  	} +	overflow := false  	for remaining != 0 {  		m := int32(0x7fffffff)  		for _, r := range s { @@ -122,8 +127,8 @@ func encode(prefix, s string) (string, error) {  				m = r  			}  		} -		delta += (m - n) * (h + 1) -		if delta < 0 { +		delta, overflow = madd(delta, m-n, h+1) +		if overflow {  			return "", punyError(s)  		}  		n = m @@ -141,9 +146,9 @@ func encode(prefix, s string) (string, error) {  			q := delta  			for k := base; ; k += base {  				t := k - bias -				if t < tmin { +				if k <= bias {  					t = tmin -				} else if t > tmax { +				} else if k >= bias+tmax {  					t = tmax  				}  				if q < t { @@ -164,6 +169,15 @@ func encode(prefix, s string) (string, error) {  	return string(output), nil  } +// madd computes a + (b * c), detecting overflow. +func madd(a, b, c int32) (next int32, overflow bool) { +	p := int64(b) * int64(c) +	if p > math.MaxInt32-int64(a) { +		return 0, true +	} +	return a + int32(p), false +} +  func decodeDigit(x byte) (digit int32, ok bool) {  	switch {  	case '0' <= x && x <= '9':  | 
