We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent b9c22ac commit 28eaefcCopy full SHA for 28eaefc
1 file changed
dnscrypt-proxy/dnsutils.go
@@ -267,8 +267,12 @@ func removeEDNS0Options(msg *dns.Msg) bool {
267
return true
268
}
269
270
-func dddToByte(s []byte) byte {
271
- return byte((s[0]-'0')*100 + (s[1]-'0')*10 + (s[2] - '0'))
+func dddToByte(s []byte) (byte, bool) {
+ n := int(s[0]-'0')*100 + int(s[1]-'0')*10 + int(s[2]-'0')
272
+ if n > 255 {
273
+ return 0, false
274
+ }
275
+ return byte(n), true
276
277
278
func PackTXTRR(s string) []byte {
@@ -282,7 +286,9 @@ func PackTXTRR(s string) []byte {
282
286
break
283
287
284
288
if i+2 < len(bs) && isDigit(bs[i]) && isDigit(bs[i+1]) && isDigit(bs[i+2]) {
285
- msg = append(msg, dddToByte(bs[i:]))
289
+ if b, ok := dddToByte(bs[i:]); ok {
290
+ msg = append(msg, b)
291
292
i += 2
293
} else if bs[i] == 't' {
294
msg = append(msg, '\t')
0 commit comments