Skip to content

syscall: why doesn't Accept4 read from accept4's *len result parameter? #7428

@bradfitz

Description

@bradfitz
Question from Rob:

The accept4 system call has a in+out socklen_t *addrlen parameter.

In syscall_linux.go, we use it as an in parameter, but never read the result:

func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {
        var rsa RawSockaddrAny
        var len _Socklen = SizeofSockaddrAny
        nfd, err = accept4(fd, &rsa, &len, flags)
        if err != nil {
                return
        }
        sa, err = anyToSockaddr(&rsa)
        if err != nil {
                Close(nfd)
                nfd = 0
        }
        return
}


Likewise in Darwin (https://golang.org/cl/68880043/).

Should we?

Or is func anyToSockaddr safe as-is?  Why?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions