Module Name:    src
Committed By:   christos
Date:           Mon Jan  9 15:25:34 UTC 2012

Modified Files:
        src/lib/libtelnet: Makefile auth.c enc-proto.h enc_des.c encrypt.c
            encrypt.h genget.c kerberos5.c misc.h sra.c

Log Message:
PR/45805: Borodin Oleg: telnet/telnetd with -DAUTHENTICATION -DENCRYPTION
(rfc2941)
- minimal fixes to compile with WARNS=4
- separate kerberos (USE_KERBEROS) from encryption (MKCRYPTO)


To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/lib/libtelnet/Makefile
cvs rdiff -u -r1.19 -r1.20 src/lib/libtelnet/auth.c
cvs rdiff -u -r1.8 -r1.9 src/lib/libtelnet/enc-proto.h \
    src/lib/libtelnet/encrypt.h src/lib/libtelnet/misc.h
cvs rdiff -u -r1.14 -r1.15 src/lib/libtelnet/enc_des.c
cvs rdiff -u -r1.15 -r1.16 src/lib/libtelnet/encrypt.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libtelnet/genget.c
cvs rdiff -u -r1.18 -r1.19 src/lib/libtelnet/kerberos5.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libtelnet/sra.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libtelnet/Makefile
diff -u src/lib/libtelnet/Makefile:1.33 src/lib/libtelnet/Makefile:1.34
--- src/lib/libtelnet/Makefile:1.33	Mon Jun 20 03:43:58 2011
+++ src/lib/libtelnet/Makefile	Mon Jan  9 10:25:33 2012
@@ -1,5 +1,5 @@
 #	from: @(#)Makefile	8.2 (Berkeley) 12/15/93
-#	$NetBSD: Makefile,v 1.33 2011/06/20 07:43:58 mrg Exp $
+#	$NetBSD: Makefile,v 1.34 2012/01/09 15:25:33 christos Exp $
 
 USE_FORT?= yes	# network protocol library
 
@@ -7,7 +7,7 @@ LIBISPRIVATE=	yes
 
 .include <bsd.own.mk>
 
-WARNS?=	1
+WARNS?=	4
 
 LIB=	telnet
 SRCS=	auth.c encrypt.c genget.c getent.c misc.c
@@ -15,11 +15,13 @@ SRCS=	auth.c encrypt.c genget.c getent.c
 CPPFLAGS+= -DHAS_CGETENT
 CPPFLAGS+= -I${.CURDIR}
 
-.if (${USE_KERBEROS} != "no")
+.if ${MKCRYPTO} != "no"
 SRCS+=	enc_des.c
 CPPFLAGS+= -DENCRYPTION -DAUTHENTICATION
 CPPFLAGS+= -DDES_ENCRYPTION
+.endif
 
+.if ${USE_KERBEROS} != "no"
 SRCS+=	kerberos5.c
 CPPFLAGS+= -DKRB5
 .endif

Index: src/lib/libtelnet/auth.c
diff -u src/lib/libtelnet/auth.c:1.19 src/lib/libtelnet/auth.c:1.20
--- src/lib/libtelnet/auth.c:1.19	Sun Mar 19 23:03:22 2006
+++ src/lib/libtelnet/auth.c	Mon Jan  9 10:25:33 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: auth.c,v 1.19 2006/03/20 04:03:22 christos Exp $	*/
+/*	$NetBSD: auth.c,v 1.20 2012/01/09 15:25:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)auth.c	8.3 (Berkeley) 5/30/95"
 #else
-__RCSID("$NetBSD: auth.c,v 1.19 2006/03/20 04:03:22 christos Exp $");
+__RCSID("$NetBSD: auth.c,v 1.20 2012/01/09 15:25:33 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -162,7 +162,7 @@ Authenticator authenticators[] = {
 	{ 0, 0, 0, 0, 0, 0, 0, 0 },
 };
 
-static Authenticator NoAuth = { 0 };
+static Authenticator NoAuth = { .type = 0 };
 
 static int	i_support = 0;
 static int	i_wont_support = 0;
@@ -395,10 +395,10 @@ auth_send(data, cnt)
 	 */
 	if (data < _auth_send_data ||
 	    data > _auth_send_data + sizeof(_auth_send_data)) {
-		auth_send_cnt = cnt > sizeof(_auth_send_data)
+		auth_send_cnt = (size_t)cnt > sizeof(_auth_send_data)
 					? sizeof(_auth_send_data)
-					: cnt;
-		memmove((void *)_auth_send_data, (void *)data, auth_send_cnt);
+					: (size_t)cnt;
+		memmove(_auth_send_data, data, auth_send_cnt);
 		auth_send_data = _auth_send_data;
 	} else {
 		/*
@@ -517,7 +517,7 @@ auth_name(data, cnt)
 			printf(">>>%s: Empty name in NAME\r\n", Name);
 		return;
 	}
-	if (cnt > sizeof(savename) - 1) {
+	if ((size_t)cnt > sizeof(savename) - 1) {
 		if (auth_debug_mode)
 			printf(">>>%s: Name in NAME (%d) exceeds %ld length\r\n",
 					Name, cnt, (long)sizeof(savename)-1);

Index: src/lib/libtelnet/enc-proto.h
diff -u src/lib/libtelnet/enc-proto.h:1.8 src/lib/libtelnet/enc-proto.h:1.9
--- src/lib/libtelnet/enc-proto.h:1.8	Sun Feb  6 13:00:30 2005
+++ src/lib/libtelnet/enc-proto.h	Mon Jan  9 10:25:33 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: enc-proto.h,v 1.8 2005/02/06 18:00:30 agc Exp $	*/
+/*	$NetBSD: enc-proto.h,v 1.9 2012/01/09 15:25:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -85,7 +85,7 @@ void encrypt_enc_keyid(unsigned char *, 
 void encrypt_dec_keyid(unsigned char *, int);
 struct key_info;
 void encrypt_keyid(struct key_info *, unsigned char *, int);
-void encrypt_send_keyid(int, unsigned char *, int, int);
+void encrypt_send_keyid(int, const unsigned char *, int, int);
 void encrypt_auto(int);
 void decrypt_auto(int);
 void encrypt_start_output(int);
@@ -134,7 +134,7 @@ void ofb64_session(Session_Key *, int);
 int ofb64_keyid(int, unsigned char *, int *);
 void ofb64_printsub(unsigned char *, int, unsigned char *, int);
 
-void fb64_printsub(unsigned char *, int, unsigned char *, int,
-    unsigned char *);
+void fb64_printsub(const unsigned char *, int, unsigned char *, int,
+    const unsigned char *);
 
 #endif	/* ENCRYPTION */
Index: src/lib/libtelnet/encrypt.h
diff -u src/lib/libtelnet/encrypt.h:1.8 src/lib/libtelnet/encrypt.h:1.9
--- src/lib/libtelnet/encrypt.h:1.8	Sun Feb  6 00:53:07 2005
+++ src/lib/libtelnet/encrypt.h	Mon Jan  9 10:25:33 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: encrypt.h,v 1.8 2005/02/06 05:53:07 perry Exp $	*/
+/*	$NetBSD: encrypt.h,v 1.9 2012/01/09 15:25:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -77,7 +77,7 @@ typedef	struct {
 
 
 typedef struct {
-	char	*name;
+	const char	*name;
 	int	type;
 	void	(*output)(unsigned char *, int);
 	int	(*input)(int);
Index: src/lib/libtelnet/misc.h
diff -u src/lib/libtelnet/misc.h:1.8 src/lib/libtelnet/misc.h:1.9
--- src/lib/libtelnet/misc.h:1.8	Sun Feb  6 00:53:07 2005
+++ src/lib/libtelnet/misc.h	Mon Jan  9 10:25:34 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: misc.h,v 1.8 2005/02/06 05:53:07 perry Exp $	*/
+/*	$NetBSD: misc.h,v 1.9 2012/01/09 15:25:34 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -38,7 +38,7 @@ extern const char *RemoteHostName;
 extern int ConnectedCount;
 extern int ReservedPort;
 
-int isprefix(char *, char *);
+int isprefix(char *, const char *);
 char **genget(char *, char **, int);
 int Ambiguous(void *);
 __END_DECLS

Index: src/lib/libtelnet/enc_des.c
diff -u src/lib/libtelnet/enc_des.c:1.14 src/lib/libtelnet/enc_des.c:1.15
--- src/lib/libtelnet/enc_des.c:1.14	Sun Jul 24 03:18:17 2011
+++ src/lib/libtelnet/enc_des.c	Mon Jan  9 10:25:33 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: enc_des.c,v 1.14 2011/07/24 07:18:17 mbalmer Exp $	*/
+/*	$NetBSD: enc_des.c,v 1.15 2012/01/09 15:25:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)enc_des.c	8.3 (Berkeley) 5/30/95"; */
 #else
-__RCSID("$NetBSD: enc_des.c,v 1.14 2011/07/24 07:18:17 mbalmer Exp $");
+__RCSID("$NetBSD: enc_des.c,v 1.15 2012/01/09 15:25:33 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -85,7 +85,7 @@ struct fb {
 static struct fb fb[2];
 
 struct keyidlist {
-	char	*keyid;
+	const char	*keyid;
 	int	keyidlen;
 	char	*key;
 	int	keylen;
@@ -181,7 +181,7 @@ fb64_start(fbp, dir, server)
 	int dir;
 	int server;
 {
-	int x;
+	size_t x;
 	unsigned char *p;
 	register int state;
 
@@ -365,7 +365,7 @@ fb64_reply(data, cnt, fbp)
 		if (state == FAILED)
 			state = IN_PROGRESS;
 		state &= ~NO_RECV_IV;
-		encrypt_send_keyid(DIR_ENCRYPT, (unsigned char *)"\0", 1, 1);
+		encrypt_send_keyid(DIR_ENCRYPT, (const unsigned char *)"\0", 1, 1);
 		break;
 
 	case FB64_IV_BAD:
@@ -479,9 +479,8 @@ fb64_keyid(dir, kp, lenp, fbp)
 }
 
 	void
-fb64_printsub(data, cnt, buf, buflen, type)
-	unsigned char *data, *buf, *type;
-	int cnt, buflen;
+fb64_printsub(const unsigned char *data, int cnt, unsigned char *buf,
+    int buflen, const unsigned char *type)
 {
 	char lbuf[32];
 	register int i;

Index: src/lib/libtelnet/encrypt.c
diff -u src/lib/libtelnet/encrypt.c:1.15 src/lib/libtelnet/encrypt.c:1.16
--- src/lib/libtelnet/encrypt.c:1.15	Fri Dec 23 11:48:16 2011
+++ src/lib/libtelnet/encrypt.c	Mon Jan  9 10:25:33 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: encrypt.c,v 1.15 2011/12/23 16:48:16 christos Exp $	*/
+/*	$NetBSD: encrypt.c,v 1.16 2012/01/09 15:25:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -33,7 +33,7 @@
 #if 0
 static char sccsid[] = "@(#)encrypt.c	8.2 (Berkeley) 5/30/95";
 #else
-__RCSID("$NetBSD: encrypt.c,v 1.15 2011/12/23 16:48:16 christos Exp $");
+__RCSID("$NetBSD: encrypt.c,v 1.16 2012/01/09 15:25:33 christos Exp $");
 #endif /* not lint */
 
 /*
@@ -126,7 +126,7 @@ static Encryptions encryptions[] = {
 			ofb64_keyid,
 			ofb64_printsub },
 #endif	/* DES_ENCRYPTION */
-    { 0, },
+    { .name = 0 },
 };
 
 static unsigned char str_send[64] = { IAC, SB, TELOPT_ENCRYPT,
@@ -765,7 +765,7 @@ encrypt_keyid(kp, keyid, len)
 		if (ep->keyid)
 			(void)(*ep->keyid)(dir, kp->keyid, &kp->keylen);
 
-	} else if (len > sizeof(kp->keyid)) {
+	} else if ((size_t)len > sizeof(kp->keyid)) {
 		return;
 	} else if ((len != kp->keylen) ||
 		   (memcmp(keyid, kp->keyid, len) != 0)) {
@@ -788,11 +788,7 @@ encrypt_keyid(kp, keyid, len)
 }
 
 	void
-encrypt_send_keyid(dir, keyid, keylen, saveit)
-	int dir;
-	unsigned char *keyid;
-	int keylen;
-	int saveit;
+encrypt_send_keyid(int dir, const unsigned char *keyid, int keylen, int saveit)
 {
 	unsigned char *strp;
 

Index: src/lib/libtelnet/genget.c
diff -u src/lib/libtelnet/genget.c:1.11 src/lib/libtelnet/genget.c:1.12
--- src/lib/libtelnet/genget.c:1.11	Thu Oct 28 17:14:52 2004
+++ src/lib/libtelnet/genget.c	Mon Jan  9 10:25:33 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: genget.c,v 1.11 2004/10/28 21:14:52 dsl Exp $	*/
+/*	$NetBSD: genget.c,v 1.12 2012/01/09 15:25:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)genget.c	8.2 (Berkeley) 5/30/95";
 #else
-__RCSID("$NetBSD: genget.c,v 1.11 2004/10/28 21:14:52 dsl Exp $");
+__RCSID("$NetBSD: genget.c,v 1.12 2012/01/09 15:25:33 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -50,11 +50,10 @@ __RCSID("$NetBSD: genget.c,v 1.11 2004/1
  * the length of *s1 is returned.
  */
 	int
-isprefix(s1, s2)
-	register char *s1, *s2;
+isprefix(char *s1, const char *s2)
 {
 	char *os1;
-	register char c1, c2;
+	char c1, c2;
 
 	if (*s1 == '\0')
 		return(-1);

Index: src/lib/libtelnet/kerberos5.c
diff -u src/lib/libtelnet/kerberos5.c:1.18 src/lib/libtelnet/kerberos5.c:1.19
--- src/lib/libtelnet/kerberos5.c:1.18	Sun Apr 24 15:00:31 2011
+++ src/lib/libtelnet/kerberos5.c	Mon Jan  9 10:25:33 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: kerberos5.c,v 1.18 2011/04/24 19:00:31 elric Exp $	*/
+/*	$NetBSD: kerberos5.c,v 1.19 2012/01/09 15:25:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -96,10 +96,10 @@ krb5_context telnet_context;
 static krb5_auth_context auth_context;
 
 static int
-Data(Authenticator *ap, int type, void *d, int c)
+Data(Authenticator *ap, int type, const void *d, int c)
 {
 	unsigned char *p = str_data + 4;
-	unsigned char *cd = (unsigned char *) d;
+	const unsigned char *cd = (const unsigned char *) d;
 
 	if (c == -1)
 		c = strlen(cd);

Index: src/lib/libtelnet/sra.c
diff -u src/lib/libtelnet/sra.c:1.10 src/lib/libtelnet/sra.c:1.11
--- src/lib/libtelnet/sra.c:1.10	Fri Jul  1 11:09:28 2011
+++ src/lib/libtelnet/sra.c	Mon Jan  9 10:25:34 2012
@@ -32,7 +32,7 @@
 #ifdef notdef
 __FBSDID("$FreeBSD: src/contrib/telnet/libtelnet/sra.c,v 1.16 2002/05/06 09:48:02 markm Exp $");
 #else
-__RCSID("$NetBSD: sra.c,v 1.10 2011/07/01 15:09:28 christos Exp $");
+__RCSID("$NetBSD: sra.c,v 1.11 2012/01/09 15:25:34 christos Exp $");
 #endif
 
 #ifdef	SRA
@@ -82,7 +82,7 @@ static unsigned char str_data[1024] = { 
 #define SRA_ACCEPT 4
 #define SRA_REJECT 5
 
-static int check_user(char *, char *);
+static int check_user(char *, const char *);
 
 /* support routine to send out authentication message */
 static int
@@ -466,7 +466,7 @@ rootterm(const char *ttyname)
 }
 
 static int
-check_user(char *name, char *cred)
+check_user(char *name, const char *cred)
 {
 	struct passwd pws, *pw;
 	char pwbuf[1024];
@@ -554,7 +554,7 @@ auth_conv(int num_msg, const struct pam_
  * The PAM version as a side effect may put a new username in *name.
  */
 static int
-check_user(char *name, char *cred)
+check_user(char *name, const char *cred)
 {
 	pam_handle_t *pamh = NULL;
 	const void *item;

Reply via email to