mirror of
https://github.com/golang/sys.git
synced 2026-02-08 11:46:04 +03:00
unix: allow empty string argument to SetsockoptString
Don't panic with "index out of range" on empty string argument. Follows CL 170937 which did the sane for package syscall. Updates golang/go#31277 Change-Id: I4feb796d0d58d3637428ae69997cfa3ec28a6b01 Reviewed-on: https://go-review.googlesource.com/c/sys/+/170957 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
committed by
Tobias Klauser
parent
81d4e9dc47
commit
4b34438f7a
@@ -351,7 +351,11 @@ func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {
|
||||
}
|
||||
|
||||
func SetsockoptString(fd, level, opt int, s string) (err error) {
|
||||
return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s)))
|
||||
var p unsafe.Pointer
|
||||
if len(s) > 0 {
|
||||
p = unsafe.Pointer(&[]byte(s)[0])
|
||||
}
|
||||
return setsockopt(fd, level, opt, p, uintptr(len(s)))
|
||||
}
|
||||
|
||||
func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {
|
||||
|
||||
@@ -403,6 +403,14 @@ func TestSeekFailure(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestSetsockoptString(t *testing.T) {
|
||||
// should not panic on empty string, see issue #31277
|
||||
err := unix.SetsockoptString(-1, 0, 0, "")
|
||||
if err == nil {
|
||||
t.Fatalf("SetsockoptString: did not fail")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDup(t *testing.T) {
|
||||
file, err := ioutil.TempFile("", "TestDup")
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user