version 1.197, 2019/01/21 10:38:54 |
version 1.198, 2019/06/28 13:35:04 |
|
|
fromlen = sizeof(from); |
fromlen = sizeof(from); |
if (ssh_packet_connection_is_on_socket(ssh)) { |
if (ssh_packet_connection_is_on_socket(ssh)) { |
if (getpeername(ssh_packet_get_connection_in(ssh), |
if (getpeername(ssh_packet_get_connection_in(ssh), |
(struct sockaddr *)&from, &fromlen) < 0) { |
(struct sockaddr *)&from, &fromlen) == -1) { |
debug("getpeername: %.100s", strerror(errno)); |
debug("getpeername: %.100s", strerror(errno)); |
cleanup_exit(255); |
cleanup_exit(255); |
} |
} |
|
|
fatal("%s: send fds failed", __func__); |
fatal("%s: send fds failed", __func__); |
|
|
/* make sure nothing uses fd 0 */ |
/* make sure nothing uses fd 0 */ |
if ((fd0 = open(_PATH_DEVNULL, O_RDONLY)) < 0) |
if ((fd0 = open(_PATH_DEVNULL, O_RDONLY)) == -1) |
fatal("%s: open(/dev/null): %s", __func__, strerror(errno)); |
fatal("%s: open(/dev/null): %s", __func__, strerror(errno)); |
if (fd0 != 0) |
if (fd0 != 0) |
error("%s: fd0 %d != 0", __func__, fd0); |
error("%s: fd0 %d != 0", __func__, fd0); |
|
|
if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) |
if (socketpair(AF_UNIX, SOCK_STREAM, 0, pair) == -1) |
fatal("%s: socketpair: %s", __func__, strerror(errno)); |
fatal("%s: socketpair: %s", __func__, strerror(errno)); |
#ifdef SO_ZEROIZE |
#ifdef SO_ZEROIZE |
if (setsockopt(pair[0], SOL_SOCKET, SO_ZEROIZE, &on, sizeof(on)) < 0) |
if (setsockopt(pair[0], SOL_SOCKET, SO_ZEROIZE, &on, sizeof(on)) == -1) |
error("setsockopt SO_ZEROIZE(0): %.100s", strerror(errno)); |
error("setsockopt SO_ZEROIZE(0): %.100s", strerror(errno)); |
if (setsockopt(pair[1], SOL_SOCKET, SO_ZEROIZE, &on, sizeof(on)) < 0) |
if (setsockopt(pair[1], SOL_SOCKET, SO_ZEROIZE, &on, sizeof(on)) == -1) |
error("setsockopt SO_ZEROIZE(1): %.100s", strerror(errno)); |
error("setsockopt SO_ZEROIZE(1): %.100s", strerror(errno)); |
#endif |
#endif |
FD_CLOSEONEXEC(pair[0]); |
FD_CLOSEONEXEC(pair[0]); |