зеркало из https://github.com/golang/sys.git
unix: fix potential overflow in Mkdev on Linux
Daniel Swarbrick reports the following go vet warning after CL 50550: .../dev_linux.go:38: (major & 0xfffff000) (32 bits) too small for shift of 32 Fix it by converting major and minor to uint64 before the bitwise-and. Change-Id: If37540be81f2c78a58fd5e5dcce7b770ce7b8afe Reviewed-on: https://go-review.googlesource.com/63090 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Родитель
a5054c7c13
Коммит
7a85bfad8b
|
@ -34,9 +34,9 @@ func Minor(dev uint64) uint32 {
|
|||
// Mkdev returns a Linux device number generated from the given major and minor
|
||||
// components.
|
||||
func Mkdev(major, minor uint32) uint64 {
|
||||
dev := uint64((major & 0x00000fff) << 8)
|
||||
dev |= uint64((major & 0xfffff000) << 32)
|
||||
dev |= uint64((minor & 0x000000ff) << 0)
|
||||
dev |= uint64((minor & 0xffffff00) << 12)
|
||||
dev := (uint64(major) & 0x00000fff) << 8
|
||||
dev |= (uint64(major) & 0xfffff000) << 32
|
||||
dev |= (uint64(minor) & 0x000000ff) << 0
|
||||
dev |= (uint64(minor) & 0xffffff00) << 12
|
||||
return dev
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче