|
Adam Tkac |
354aa5d |
diff -up netkit-rsh-0.17/rcp/rcp.c.ipv6 netkit-rsh-0.17/rcp/rcp.c
|
|
Adam Tkac |
354aa5d |
--- netkit-rsh-0.17/rcp/rcp.c.ipv6 2008-10-03 12:44:22.000000000 +0200
|
|
Adam Tkac |
354aa5d |
+++ netkit-rsh-0.17/rcp/rcp.c 2008-10-03 12:44:22.000000000 +0200
|
|
Adam Tkac |
354aa5d |
@@ -262,9 +262,9 @@ toremote(const char *targ, int argc, cha
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
nospace();
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
(void)snprintf(bp, len, "%s -t %s", cmd, targ);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
host = thost;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- rem = rcmd(&host, port, pwd->pw_name,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ rem = rcmd_af(&host, port, pwd->pw_name,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
tuser ? tuser : pwd->pw_name,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- bp, 0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ bp, 0, AF_UNSPEC);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (rem < 0)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
#ifdef IP_TOS
|
|
Adam Tkac |
354aa5d |
@@ -325,7 +325,8 @@ tolocal(int argc, char *argv[])
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (!(bp = malloc(len)))
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
nospace();
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
(void)snprintf(bp, len, "%s -f %s", cmd, src);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- rem = rcmd(&host, port, pwd->pw_name, suser, bp, 0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ rem = rcmd_af(&host, port, pwd->pw_name, suser, bp, 0,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ AF_UNSPEC);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
(void)free(bp);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (rem < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
++errs;
|
|
Adam Tkac |
354aa5d |
diff -up netkit-rsh-0.17/rlogind/network.c.ipv6 netkit-rsh-0.17/rlogind/network.c
|
|
Adam Tkac |
354aa5d |
--- netkit-rsh-0.17/rlogind/network.c.ipv6 1999-12-12 16:15:40.000000000 +0100
|
|
Adam Tkac |
354aa5d |
+++ netkit-rsh-0.17/rlogind/network.c 2008-10-03 12:44:22.000000000 +0200
|
|
Adam Tkac |
354aa5d |
@@ -88,47 +88,78 @@ local_domain(const char *h)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
return(0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+static int
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+soaddr_eq_ip(const struct sockaddr *s1, const struct sockaddr *s2)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+{
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (s1->sa_family != s2->sa_family)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ return 0;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (s2->sa_family == AF_INET6)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ return (memcmp(
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ (const void*)(
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ &((const struct sockaddr_in6 *)s1)->sin6_addr
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ),
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ (const void*)(
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ &((const struct sockaddr_in6 *)s2)->sin6_addr
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ),
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ sizeof(struct in6_addr))
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ == 0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ else
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ return (memcmp(
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ (const void*)(
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ &((const struct sockaddr_in *)s1)->sin_addr
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ),
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ (const void*)(
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ &((const struct sockaddr_in *)s2)->sin_addr
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ),
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ sizeof(struct in_addr))
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ == 0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
static char *
|
|
Adam Tkac |
5687e31 |
-find_hostname(const struct sockaddr_in *fromp, int *hostokp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+find_hostname(struct sockaddr *fromp, socklen_t fromlen,
|
|
Adam Tkac |
5687e31 |
+ char *portname, int *hostokp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
{
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- struct hostent *hop;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ int error;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
char *hname;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ char hname_buf[NI_MAXHOST];
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
int hostok = 0;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hop = gethostbyaddr((const char *)&fromp->sin_addr,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- sizeof(struct in_addr), fromp->sin_family);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (hop == NULL) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hname = strdup(inet_ntoa(fromp->sin_addr));
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hostok = 1;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- }
|
|
Adam Tkac |
5687e31 |
- else if (check_all || local_domain(hop->h_name)) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ error = getnameinfo(fromp, fromlen,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hname_buf, sizeof(hname_buf), portname, NI_MAXSERV,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ NI_NUMERICSERV);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ assert(error == 0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
Adam Tkac |
5687e31 |
+ if (check_all || local_domain(hname_buf)) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
/*
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- * If name returned by gethostbyaddr is in our domain,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ * If name returned is in our domain,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
* attempt to verify that we haven't been fooled by someone
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
* in a remote net; look up the name and check that this
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
* address corresponds to the name.
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
*/
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hname = strdup(hop->h_name);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hop = gethostbyname(hname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (hop) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- for (; hop->h_addr_list[0]; hop->h_addr_list++) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (!memcmp(hop->h_addr_list[0], &fromp->sin_addr,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- sizeof(fromp->sin_addr))) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct addrinfo hints;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct addrinfo *res0, *res;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ memset(&hints, 0, sizeof(hints));
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hints.ai_family = PF_UNSPEC;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ error = getaddrinfo(hname_buf, NULL, &hints, &res;;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ assert(error == 0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ res0 = res;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ while (res) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (soaddr_eq_ip(fromp, res->ai_addr)) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
hostok = 1;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
break;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- }
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- /* not clear if this is worthwhile */
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- free(hname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hname = strdup(hop->h_name);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ res = res->ai_next;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ freeaddrinfo(res0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
else {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hname = strdup(hop->h_name);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
hostok = 1;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hname = strdup(hname_buf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
/*
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
* Actually it might be null if we're out of memory, but
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
* where do we go then? We'd have to bail anyhow.
|
|
Adam Tkac |
354aa5d |
@@ -145,14 +176,14 @@ find_hostname(const struct sockaddr_in *
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
char *
|
|
Adam Tkac |
5687e31 |
network_init(int f, int *hostokp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
{
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- struct sockaddr_in from, *fromp;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct sockaddr_storage from, *fromp;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
socklen_t fromlen;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
int on = 1;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
char c;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
char *hname;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ char portname[NI_MAXSERV];
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
int port;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- from.sin_family = AF_INET;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
fromlen = sizeof (from);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (getpeername(f, (struct sockaddr *)&from, &fromlen) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_ERR,"Can't get peer name of remote host: %m");
|
|
Adam Tkac |
354aa5d |
@@ -177,13 +208,19 @@ network_init(int f, int *hostokp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
alarm(0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
Adam Tkac |
5687e31 |
- hname = find_hostname(fromp, hostokp);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hname = find_hostname((struct sockaddr *)fromp, fromlen,
|
|
Adam Tkac |
5687e31 |
+ portname, hostokp);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ assert(hname != NULL);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- port = ntohs(fromp->sin_port);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (fromp->sin_family != AF_INET ||
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ port = atoi(portname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (! port) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ syslog(LOG_NOTICE, "Unknown port %s", portname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ fatal(f, "Permission denied", 0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if ((fromp->ss_family != AF_INET && fromp->ss_family != AF_INET6) ||
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
port >= IPPORT_RESERVED || port < IPPORT_RESERVED/2) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_NOTICE, "Connection from %s on illegal port",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- inet_ntoa(fromp->sin_addr));
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ portname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
fatal(f, "Permission denied", 0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
Adam Tkac |
354aa5d |
diff -up netkit-rsh-0.17/rlogin/rlogin.c.ipv6 netkit-rsh-0.17/rlogin/rlogin.c
|
|
Adam Tkac |
354aa5d |
--- netkit-rsh-0.17/rlogin/rlogin.c.ipv6 2008-10-03 12:44:22.000000000 +0200
|
|
Adam Tkac |
354aa5d |
+++ netkit-rsh-0.17/rlogin/rlogin.c 2008-10-03 12:44:22.000000000 +0200
|
|
Adam Tkac |
354aa5d |
@@ -280,7 +280,7 @@ main(int argc, char **argv)
|
|
Adam Tkac |
354aa5d |
/* will use SIGUSR1 for window size hack, so hold it off */
|
|
Adam Tkac |
354aa5d |
omask = sigblock(sigmask(SIGURG) | sigmask(SIGUSR1));
|
|
Adam Tkac |
354aa5d |
|
|
Adam Tkac |
354aa5d |
- rem = rcmd(&host, sp->s_port, pw->pw_name, user, term, 0);
|
|
Adam Tkac |
354aa5d |
+ rem = rcmd_af(&host, sp->s_port, pw->pw_name, user, term, 0, AF_UNSPEC);
|
|
Adam Tkac |
354aa5d |
|
|
Adam Tkac |
354aa5d |
if (rem < 0) exit(1);
|
|
Adam Tkac |
354aa5d |
|
|
Adam Tkac |
354aa5d |
diff -up netkit-rsh-0.17/rshd/rshd.c.ipv6 netkit-rsh-0.17/rshd/rshd.c
|
|
Adam Tkac |
354aa5d |
--- netkit-rsh-0.17/rshd/rshd.c.ipv6 2008-10-03 12:44:22.000000000 +0200
|
|
Adam Tkac |
354aa5d |
+++ netkit-rsh-0.17/rshd/rshd.c 2008-10-03 12:53:08.000000000 +0200
|
|
Adam Tkac |
354aa5d |
@@ -109,7 +109,7 @@ char *envinit[] =
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
extern char **environ;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
static void error(const char *fmt, ...);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
-static void doit(struct sockaddr_in *fromp);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+static void doit(struct sockaddr_storage *fromp, socklen_t fromlen);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
static void getstr(char *buf, int cnt, const char *err);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
extern int _check_rhosts_file;
|
|
Adam Tkac |
354aa5d |
@@ -284,19 +284,37 @@ static struct passwd *doauth(const char
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
#endif
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
-static const char *findhostname(struct sockaddr_in *fromp,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+static const char *findhostname(struct sockaddr *fromp,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ socklen_t fromlen,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
const char *remuser, const char *locuser,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
const char *cmdbuf)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
{
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- struct hostent *hp;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
const char *hostname;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ char remote_address[INET6_ADDRSTRLEN];
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ char remote_hostname[NI_MAXHOST];
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct addrinfo hints;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct addrinfo *res0, *res;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (! inet_ntop(fromp->sa_family,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ (( fromp->sa_family == AF_INET6 )
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ? ( &((struct sockaddr_in6 *)fromp)->sin6_addr )
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ : ( &((struct sockaddr_in *)fromp)->sin_addr )),
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ remote_address, sizeof(remote_address))) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ syslog(LOG_NOTICE|LOG_AUTH,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ "Failed to retrieve the socket remote address");
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hp = gethostbyaddr((char *)&fromp->sin_addr, sizeof (struct in_addr),
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- fromp->sin_family);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (getnameinfo(fromp, fromlen, remote_hostname, NI_MAXHOST,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ NULL, 0, 0)) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ syslog(LOG_NOTICE|LOG_AUTH,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ "Failed to retrieve the hostname information for %s",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ remote_address);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
errno = ENOMEM; /* malloc (thus strdup) may not set it */
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (hp) hostname = strdup(hp->h_name);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- else hostname = strdup(inet_ntoa(fromp->sin_addr));
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hostname = strdup(remote_hostname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (hostname==NULL) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
/* out of memory? */
|
|
Adam Tkac |
354aa5d |
@@ -307,31 +325,43 @@ static const char *findhostname(struct s
|
|
Adam Tkac |
354aa5d |
/*
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
* Attempt to confirm the DNS.
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
*/
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
-#ifdef RES_DNSRCH
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- _res.options &= ~RES_DNSRCH;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
-#endif
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hp = gethostbyname(hostname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (hp == NULL) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- syslog(LOG_INFO, "Couldn't look up address for %s", hostname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ memset(&hints, 0, sizeof(hints));
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hints.ai_family = PF_UNSPEC;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (getaddrinfo(hostname, NULL, &hints, &res)) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ syslog(LOG_INFO, "Couldn't look up address for %s/%s",
|
|
Adam Tkac |
354aa5d |
+ hostname, remote_address);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
fail("Couldn't get address for your host (%s)\n",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- remuser, inet_ntoa(fromp->sin_addr), locuser, cmdbuf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- }
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- while (hp->h_addr_list[0] != NULL) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (!memcmp(hp->h_addr_list[0], &fromp->sin_addr,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- sizeof(fromp->sin_addr))) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- return hostname;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ remuser, hostname, locuser, cmdbuf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ res0 = res;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ while (res) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct sockaddr *sa;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ char res_address[INET6_ADDRSTRLEN];
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ sa = res->ai_addr;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (inet_ntop(sa->sa_family,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ (( sa->sa_family == AF_INET6 )
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ? ( &((struct sockaddr_in6 *)sa)->sin6_addr )
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ : ( &((struct sockaddr_in *)sa)->sin_addr )),
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ res_address, sizeof(res_address))
|
|
Adam Tkac |
354aa5d |
+ && strcmp(remote_address, res_address) == 0) {
|
|
Adam Tkac |
354aa5d |
+ freeaddrinfo(res0);
|
|
Adam Tkac |
354aa5d |
+ return hostname;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hp->h_addr_list++;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ res = res->ai_next;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ freeaddrinfo(res0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_NOTICE, "Host addr %s not listed for host %s",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- inet_ntoa(fromp->sin_addr), hp->h_name);
|
|
Adam Tkac |
354aa5d |
+ remote_address, hostname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
fail("Host address mismatch for %s\n",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- remuser, inet_ntoa(fromp->sin_addr), locuser, cmdbuf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ remuser, hostname, locuser, cmdbuf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
return NULL; /* not reachable */
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
static void
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
-doit(struct sockaddr_in *fromp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+doit(struct sockaddr_storage *fromp, socklen_t fromlen)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
{
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
char cmdbuf[ARG_MAX+1];
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
const char *theshell, *shellname;
|
|
Adam Tkac |
354aa5d |
@@ -351,8 +381,12 @@ doit(struct sockaddr_in *fromp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
alarm(0);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (port != 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct sockaddr_storage second_connect;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
int lport = IPPORT_RESERVED - 1;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- sock = rresvport(&lport);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ memcpy((void *)&second_connect, (void *)fromp, fromlen);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ sock = rresvport_af(&lport,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ((struct sockaddr *)&second_connect)->sa_family);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (sock < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_ERR, "can't get stderr port: %m");
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|
|
Adam Tkac |
354aa5d |
@@ -361,10 +395,15 @@ doit(struct sockaddr_in *fromp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_ERR, "2nd port not reserved\n");
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- fromp->sin_port = htons(port);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (connect(sock, (struct sockaddr *)fromp,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- sizeof(*fromp)) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- syslog(LOG_INFO, "connect second port: %m");
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (((struct sockaddr *)&second_connect)->sa_family == AF_INET6)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ((struct sockaddr_in6 *)&second_connect)->sin6_port
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ = htons(port);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ else
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ ((struct sockaddr_in *)&second_connect)->sin_port
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ = htons(port);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (connect(sock, (struct sockaddr *)&second_connect,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ fromlen) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ syslog(LOG_INFO, "connect second port %d: %m", port);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
Adam Tkac |
354aa5d |
@@ -381,7 +420,8 @@ doit(struct sockaddr_in *fromp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
getstr(cmdbuf, sizeof(cmdbuf), "command");
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (!strcmp(locuser, "root")) paranoid = 1;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- hostname = findhostname(fromp, remuser, locuser, cmdbuf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hostname = findhostname((struct sockaddr *)fromp, fromlen,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ remuser, locuser, cmdbuf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
setpwent();
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
pwd = doauth(remuser, hostname, locuser);
|
|
Adam Tkac |
354aa5d |
@@ -496,15 +536,19 @@ doit(struct sockaddr_in *fromp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
-static void network_init(int fd, struct sockaddr_in *fromp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+static void network_init(int fd,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct sockaddr_storage *fromp, socklen_t *fromlenp)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
{
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
struct linger linger;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- socklen_t fromlen;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ char hostname[NI_MAXHOST];
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ char portname[NI_MAXSERV];
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ sa_family_t family;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ int error;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
int on=1;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
int port;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- fromlen = sizeof(*fromp);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (getpeername(fd, (struct sockaddr *) fromp, &fromlen) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (getpeername(fd, (struct sockaddr *)fromp, fromlenp) < 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_ERR, "getpeername: %m");
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
_exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
Adam Tkac |
354aa5d |
@@ -518,9 +562,20 @@ static void network_init(int fd, struct
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
sizeof (linger)) < 0)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_WARNING, "setsockopt (SO_LINGER): %m");
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- if (fromp->sin_family != AF_INET) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ family = ((struct sockaddr *)fromp)->sa_family;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (family != AF_INET && family != AF_INET6) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_ERR, "malformed \"from\" address (af %d)\n",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- fromp->sin_family);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ family);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ error = getnameinfo((struct sockaddr *)fromp, *fromlenp,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hostname, sizeof(hostname), portname, sizeof(portname),
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ NI_NUMERICSERV);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (error) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ syslog(LOG_NOTICE|LOG_AUTH,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ "Failed to retrieve address and port of the connection: %s",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ gai_strerror(error));
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
#ifdef IP_OPTIONS
|
|
Adam Tkac |
354aa5d |
@@ -550,7 +605,7 @@ static void network_init(int fd, struct
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_NOTICE,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
"Connection received from %s using IP options"
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
" (ignored): %s",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- inet_ntoa(fromp->sin_addr), lbuf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hostname, lbuf);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (setsockopt(0, ipproto, IP_OPTIONS, NULL, optsize) != 0) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
syslog(LOG_ERR, "setsockopt IP_OPTIONS NULL: %m");
|
|
Adam Tkac |
354aa5d |
@@ -563,10 +618,15 @@ static void network_init(int fd, struct
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
/*
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
* Check originating port for validity.
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
*/
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- port = ntohs(fromp->sin_port);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ port = atoi(portname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ if (! port) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ syslog(LOG_NOTICE|LOG_AUTH, "Unknown port %s", portname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (port >= IPPORT_RESERVED || port < IPPORT_RESERVED/2) {
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- syslog(LOG_NOTICE|LOG_AUTH, "Connection from %s on illegal port",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- inet_ntoa(fromp->sin_addr));
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ syslog(LOG_NOTICE|LOG_AUTH,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ "Connection from %s from illegal port %s",
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ hostname, portname);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
Adam Tkac |
354aa5d |
@@ -575,7 +635,8 @@ int
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
main(int argc, char *argv[])
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
{
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
int ch;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- struct sockaddr_in from;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ struct sockaddr_storage from;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ socklen_t fromlen;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
_check_rhosts_file=1;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
openlog("rshd", LOG_PID | LOG_ODELAY, LOG_DAEMON);
|
|
Adam Tkac |
354aa5d |
@@ -618,8 +679,9 @@ main(int argc, char *argv[])
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
"pam_rhosts_auth in /etc/pam.conf");
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
#endif /* USE_PAM */
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- network_init(0, &from;;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- doit(&from;;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ fromlen = sizeof(from);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ network_init(0, &from, &fromlen);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ doit(&from, fromlen);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
return 0;
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
Adam Tkac |
354aa5d |
diff -up netkit-rsh-0.17/rsh/rsh.c.ipv6 netkit-rsh-0.17/rsh/rsh.c
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
--- netkit-rsh-0.17/rsh/rsh.c.ipv6 2000-07-23 06:16:24.000000000 +0200
|
|
Adam Tkac |
354aa5d |
+++ netkit-rsh-0.17/rsh/rsh.c 2008-10-03 12:44:22.000000000 +0200
|
|
Adam Tkac |
354aa5d |
@@ -163,7 +163,8 @@ main(int argc, char *argv[])
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
}
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
- rem = rcmd(&host, sp->s_port, pw->pw_name, user, args, &rfd2);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ rem = rcmd_af(&host, sp->s_port, pw->pw_name, user, args, &rfd2,
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
+ AF_UNSPEC);
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
if (rem < 0)
|
|
![](https://seccdn.libravatar.org/avatar/0223a372e3c0d9a0bbf0437e6da2c6ed7b009e40d9f2fa1b07daea854a404e15?s=16&d=retro) |
083fc6d |
exit(1);
|