aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/crypto/aes/ctr_s390x.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/crypto/aes/ctr_s390x.go')
-rw-r--r--libgo/go/crypto/aes/ctr_s390x.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/libgo/go/crypto/aes/ctr_s390x.go b/libgo/go/crypto/aes/ctr_s390x.go
index 7892f79..a3c43a3 100644
--- a/libgo/go/crypto/aes/ctr_s390x.go
+++ b/libgo/go/crypto/aes/ctr_s390x.go
@@ -8,6 +8,7 @@ package aes
import (
"crypto/cipher"
+ "crypto/internal/subtle"
"unsafe"
)
@@ -66,9 +67,11 @@ func (c *aesctr) refill() {
}
func (c *aesctr) XORKeyStream(dst, src []byte) {
- if len(src) > 0 {
- // Assert len(dst) >= len(src)
- _ = dst[len(src)-1]
+ if len(dst) < len(src) {
+ panic("crypto/cipher: output smaller than input")
+ }
+ if subtle.InexactOverlap(dst[:len(src)], src) {
+ panic("crypto/cipher: invalid buffer overlap")
}
for len(src) > 0 {
if len(c.buffer) == 0 {