diff options
-rw-r--r-- | pflocal/ChangeLog | 2 | ||||
-rw-r--r-- | pflocal/socket.c | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/pflocal/ChangeLog b/pflocal/ChangeLog index 6c3b1d14..696b9adb 100644 --- a/pflocal/ChangeLog +++ b/pflocal/ChangeLog @@ -3,6 +3,8 @@ * pf.c (S_socket_fabricate_address): Drop one reference from addr since we only take the send right. * socket.c (S_socket_name): Likewise. + (S_socket_send): Release a reader reference instead of a writer + reference when the destination is given. 2007-11-13 Thomas Schwinge <tschwinge@gnu.org> diff --git a/pflocal/socket.c b/pflocal/socket.c index a2cd242b..06777cab 100644 --- a/pflocal/socket.c +++ b/pflocal/socket.c @@ -323,7 +323,10 @@ S_socket_send (struct sock_user *user, struct addr *dest_addr, int flags, source_addr, data, data_len, control, control_len, ports, num_ports, amount); - pipe_release_writer (pipe); + if (dest_sock) + pipe_release_reader (pipe); + else + pipe_release_writer (pipe); } if (err) |