Source File
alias.go
Belonging Package
crypto/internal/alias
// Copyright 2018 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.
// Package alias implements memory aliasing tests.
// This code also exists as golang.org/x/crypto/internal/alias.
package alias
import
// AnyOverlap reports whether x and y share memory at any (not necessarily
// corresponding) index. The memory beyond the slice length is ignored.
func (, []byte) bool {
return len() > 0 && len() > 0 &&
uintptr(unsafe.Pointer(&[0])) <= uintptr(unsafe.Pointer(&[len()-1])) &&
uintptr(unsafe.Pointer(&[0])) <= uintptr(unsafe.Pointer(&[len()-1]))
}
// InexactOverlap reports whether x and y share memory at any non-corresponding
// index. The memory beyond the slice length is ignored. Note that x and y can
// have different lengths and still not have any inexact overlap.
//
// InexactOverlap can be used to implement the requirements of the crypto/cipher
// AEAD, Block, BlockMode and Stream interfaces.
func (, []byte) bool {
if len() == 0 || len() == 0 || &[0] == &[0] {
return false
}
return AnyOverlap(, )
}
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |