diff options
Diffstat (limited to 'libcli/named_pipe_auth/npa_tstream.c')
-rw-r--r-- | libcli/named_pipe_auth/npa_tstream.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/libcli/named_pipe_auth/npa_tstream.c b/libcli/named_pipe_auth/npa_tstream.c index 3d3f55edd35..35392021275 100644 --- a/libcli/named_pipe_auth/npa_tstream.c +++ b/libcli/named_pipe_auth/npa_tstream.c @@ -1468,17 +1468,23 @@ int _tstream_npa_socketpair(uint16_t file_type, fd1 = fds[0]; fd2 = fds[1]; + rc = set_blocking(fd1, false); + if (rc == -1) { + goto close_fail; + } + + rc = set_blocking(fd2, false); + if (rc == -1) { + goto close_fail; + } + rc = _tstream_npa_existing_socket(mem_ctx1, fd1, file_type, &stream1, location); if (rc == -1) { - int sys_errno = errno; - close(fd1); - close(fd2); - errno = sys_errno; - return -1; + goto close_fail; } rc = _tstream_npa_existing_socket(mem_ctx2, @@ -1498,4 +1504,13 @@ int _tstream_npa_socketpair(uint16_t file_type, *pstream2 = stream2; return 0; + +close_fail: + { + int sys_errno = errno; + close(fd1); + close(fd2); + errno = sys_errno; + return -1; + } } |