mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-10 20:48:12 +00:00
net: preserve socketpair output on setup failure
socketpair() writes the reserved descriptor numbers to userspace before creating the sockets and their file objects. A later failure therefore leaves a modified caller's array despite returning an error, contrary to POSIX. For example, socketpair(AF_UNIX, SOCK_STREAM, -1, fd) returns EPROTONOSUPPORT but replaces the array's sentinel values with unused fd numbers. Defer the output stores until both file objects have been created, before installing either descriptor. If a store faults, drop both file references before releasing the reserved descriptor slots. Keep the early descriptor reservation and the existing setup-failure cleanup paths. In practice, I doubt anyone notices. But this aligns with the expected behavior Signed-off-by: Steve Grubb <sgrubb@redhat.com> Link: https://patch.msgid.link/JyK226D0S5CWGUpAC4MO4A@redhat.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
c5faf1d4df
commit
65734bbe4a
1 changed files with 11 additions and 12 deletions
23
net/socket.c
23
net/socket.c
Loading…
Add table
Add a link
Reference in a new issue