summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorJoerg Wunsch <joerg@FreeBSD.org>1997-01-27 15:39:28 +0000
committerJoerg Wunsch <joerg@FreeBSD.org>1997-01-27 15:39:28 +0000
commite0dde95954f222f2411af79ded433520dcbb2e46 (patch)
treef772f39840a11778ac09c05021e64efd2674d041 /libexec
parent0d434c76d3bb71294b682437fc35165d56de48ba (diff)
Notes
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rshd/rshd.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/libexec/rshd/rshd.c b/libexec/rshd/rshd.c
index ceb186dc7a52..55cdd17e7c10 100644
--- a/libexec/rshd/rshd.c
+++ b/libexec/rshd/rshd.c
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: rshd.c,v 1.8 1996/09/22 21:55:08 wosch Exp $
+ * $Id: rshd.c,v 1.9 1996/10/22 21:11:49 scrappy Exp $
*/
#ifndef lint
@@ -202,6 +202,7 @@ doit(fromp)
char *cp, sig, buf[BUFSIZ];
char cmdbuf[NCARGS+1], locuser[16], remuser[16];
char remotehost[2 * MAXHOSTNAMELEN + 1];
+ char fromhost[2 * MAXHOSTNAMELEN + 1];
#ifdef KERBEROS
AUTH_DAT *kdata = (AUTH_DAT *) NULL;
@@ -333,7 +334,9 @@ doit(fromp)
* in a remote net; look up the name and check that this
* address corresponds to the name.
*/
- hostname = hp->h_name;
+ strncpy(fromhost, hp->h_name, sizeof(fromhost) - 1);
+ fromhost[sizeof(fromhost) - 1] = 0;
+ hostname = fromhost;
#ifdef KERBEROS
if (!use_kerberos)
#endif
@@ -348,7 +351,10 @@ doit(fromp)
remotehost);
errorstr =
"Couldn't look up address for your host (%s)\n";
- hostname = inet_ntoa(fromp->sin_addr);
+ strncpy(fromhost, inet_ntoa(fromp->sin_addr),
+ sizeof(fromhost) - 1);
+ fromhost[sizeof(fromhost) - 1] = 0;
+ hostname = fromhost;
} else for (; ; hp->h_addr_list++) {
if (hp->h_addr_list[0] == NULL) {
syslog(LOG_NOTICE,
@@ -357,7 +363,10 @@ doit(fromp)
hp->h_name);
errorstr =
"Host address mismatch for %s\n";
- hostname = inet_ntoa(fromp->sin_addr);
+ strncpy(fromhost, inet_ntoa(fromp->sin_addr),
+ sizeof(fromhost) - 1);
+ fromhost[sizeof(fromhost) - 1] = 0;
+ hostname = fromhost;
break;
}
if (!bcmp(hp->h_addr_list[0],
@@ -368,8 +377,12 @@ doit(fromp)
}
}
}
- } else
- errorhost = hostname = inet_ntoa(fromp->sin_addr);
+ } else {
+ strncpy(fromhost, inet_ntoa(fromp->sin_addr),
+ sizeof(fromhost) - 1);
+ fromhost[sizeof(fromhost) - 1] = 0;
+ errorhost = hostname = fromhost;
+ }
#ifdef KERBEROS
if (use_kerberos) {