From: Todd Neal Date: Tue, 25 Aug 2015 23:25:42 +0000 (-0500) Subject: runtime: remove always false comparison in sigsend X-Git-Tag: go1.6beta1~1268 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a94e906c41e83b663cd51751cbb74e801a54aba8;p=gostls13.git runtime: remove always false comparison in sigsend s is a uint32 and can never be zero. It's max value is already tested against sig.wanted, whose size is derived from _NSIG. This also matches the test in signal_enable. Fixes #11282 Change-Id: I8eec9c7df8eb8682433616462fe51b264c092475 Reviewed-on: https://go-review.googlesource.com/13940 Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot --- diff --git a/src/runtime/sigqueue.go b/src/runtime/sigqueue.go index 3f50a59c14..e6e1a84063 100644 --- a/src/runtime/sigqueue.go +++ b/src/runtime/sigqueue.go @@ -49,7 +49,7 @@ const ( // Reports whether the signal was sent. If not, the caller typically crashes the program. func sigsend(s uint32) bool { bit := uint32(1) << uint(s&31) - if !sig.inuse || s < 0 || int(s) >= 32*len(sig.wanted) || sig.wanted[s/32]&bit == 0 { + if !sig.inuse || s >= uint32(32*len(sig.wanted)) || sig.wanted[s/32]&bit == 0 { return false } @@ -137,7 +137,7 @@ func signal_enable(s uint32) { return } - if int(s) >= len(sig.wanted)*32 { + if s >= uint32(len(sig.wanted)*32) { return } sig.wanted[s/32] |= 1 << (s & 31) @@ -146,7 +146,7 @@ func signal_enable(s uint32) { // Must only be called from a single goroutine at a time. func signal_disable(s uint32) { - if int(s) >= len(sig.wanted)*32 { + if s >= uint32(len(sig.wanted)*32) { return } sig.wanted[s/32] &^= 1 << (s & 31) @@ -155,7 +155,7 @@ func signal_disable(s uint32) { // Must only be called from a single goroutine at a time. func signal_ignore(s uint32) { - if int(s) >= len(sig.wanted)*32 { + if s >= uint32(len(sig.wanted)*32) { return } sig.wanted[s/32] &^= 1 << (s & 31)