summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/appl/telnet/telnetd/telnetd.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/appl/telnet/telnetd/telnetd.c')
-rw-r--r--crypto/heimdal/appl/telnet/telnetd/telnetd.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/crypto/heimdal/appl/telnet/telnetd/telnetd.c b/crypto/heimdal/appl/telnet/telnetd/telnetd.c
index 678b508..b788574 100644
--- a/crypto/heimdal/appl/telnet/telnetd/telnetd.c
+++ b/crypto/heimdal/appl/telnet/telnetd/telnetd.c
@@ -33,7 +33,7 @@
#include "telnetd.h"
-RCSID("$Id: telnetd.c,v 1.60 1999/12/05 10:59:52 assar Exp $");
+RCSID("$Id: telnetd.c,v 1.63 2000/10/08 13:32:28 assar Exp $");
#ifdef _SC_CRAY_SECURE_SYS
#include <sys/sysv.h>
@@ -143,7 +143,8 @@ main(int argc, char **argv)
{
struct sockaddr_storage __ss;
struct sockaddr *sa = (struct sockaddr *)&__ss;
- int on = 1, sa_size;
+ int on = 1;
+ socklen_t sa_size;
int ch;
#if defined(IPPROTO_IP) && defined(IP_TOS)
int tos = -1;
@@ -362,9 +363,9 @@ main(int argc, char **argv)
* Get socket's security label
*/
if (secflag) {
- int szss = sizeof(ss);
+ socklen_t szss = sizeof(ss);
int sock_multi;
- int szi = sizeof(int);
+ socklen_t szi = sizeof(int);
memset(&dv, 0, sizeof(dv));
@@ -737,7 +738,7 @@ Please contact your net administrator");
*/
*user_name = 0;
level = getterminaltype(user_name, sizeof(user_name));
- setenv("TERM", terminaltype ? terminaltype : "network", 1);
+ esetenv("TERM", terminaltype ? terminaltype : "network", 1);
#ifdef _SC_CRAY_SECURE_SYS
if (secflag) {
@@ -968,6 +969,11 @@ my_telnet(int f, int p, char *host, int level, char *autoname)
FD_ZERO(&ibits);
FD_ZERO(&obits);
FD_ZERO(&xbits);
+
+ if (f >= FD_SETSIZE
+ || p >= FD_SETSIZE)
+ fatal(net, "fd too large");
+
/*
* Never look for input if there's still
* stuff in the corresponding output buffer
OpenPOWER on IntegriCloud