diff options
| author | Joerg Wunsch <joerg@FreeBSD.org> | 1997-01-27 15:39:28 +0000 |
|---|---|---|
| committer | Joerg Wunsch <joerg@FreeBSD.org> | 1997-01-27 15:39:28 +0000 |
| commit | e0dde95954f222f2411af79ded433520dcbb2e46 (patch) | |
| tree | f772f39840a11778ac09c05021e64efd2674d041 /libexec | |
| parent | 0d434c76d3bb71294b682437fc35165d56de48ba (diff) | |
Notes
Diffstat (limited to 'libexec')
| -rw-r--r-- | libexec/rshd/rshd.c | 25 |
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) { |
