From d9a1e5d37ffdf198a137e56ec52939116f0d1e87 Mon Sep 17 00:00:00 2001 From: kamil Date: Thu, 15 Aug 2019 01:15:21 +0000 Subject: [PATCH] telnetd: Stop defining the same variables concurrently in bss and data auth_level and require_secure_login were defined in two places: - global.c that picked it from headers and removed 'extern' - telnetd.c that initialized it to 0 line was defined twice: in global.c and sys_term.c with a non-zero value. Remove the definition and initialization from sys_term.c and initialize the variable early in main(). Detected during the build of telned with Address Sanitizer (MKSANITIZER). Reviewed by --- libexec/telnetd/sys_term.c | 11 ++--------- libexec/telnetd/telnetd.c | 16 ++++++---------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/libexec/telnetd/sys_term.c b/libexec/telnetd/sys_term.c index f4409524b055..ff28a699ac22 100644 --- a/libexec/telnetd/sys_term.c +++ b/libexec/telnetd/sys_term.c @@ -1,4 +1,4 @@ -/* $NetBSD: sys_term.c,v 1.48 2018/12/13 04:29:18 maya Exp $ */ +/* $NetBSD: sys_term.c,v 1.49 2019/08/15 01:15:21 kamil Exp $ */ /* * Copyright (c) 1989, 1993 @@ -34,7 +34,7 @@ #if 0 static char sccsid[] = "@(#)sys_term.c 8.4+1 (Berkeley) 5/30/95"; #else -__RCSID("$NetBSD: sys_term.c,v 1.48 2018/12/13 04:29:18 maya Exp $"); +__RCSID("$NetBSD: sys_term.c,v 1.49 2019/08/15 01:15:21 kamil Exp $"); #endif #endif /* not lint */ @@ -177,13 +177,6 @@ spcset(int func, cc_t *valp, cc_t **valpp) * * Returns the file descriptor of the opened pty. */ -#ifndef __GNUC__ -char *line = NULL16STR; -#else -static char Xline[] = NULL16STR; -char *line = Xline; -#endif - static int ptyslavefd; /* for cleanopen() */ diff --git a/libexec/telnetd/telnetd.c b/libexec/telnetd/telnetd.c index eae43c38cca4..8ca9eac42535 100644 --- a/libexec/telnetd/telnetd.c +++ b/libexec/telnetd/telnetd.c @@ -1,4 +1,4 @@ -/* $NetBSD: telnetd.c,v 1.55 2014/02/27 18:20:21 joerg Exp $ */ +/* $NetBSD: telnetd.c,v 1.56 2019/08/15 01:15:21 kamil Exp $ */ /* * Copyright (C) 1997 and 1998 WIDE Project. @@ -65,7 +65,7 @@ __COPYRIGHT("@(#) Copyright (c) 1989, 1993\ #if 0 static char sccsid[] = "@(#)telnetd.c 8.4 (Berkeley) 5/30/95"; #else -__RCSID("$NetBSD: telnetd.c,v 1.55 2014/02/27 18:20:21 joerg Exp $"); +__RCSID("$NetBSD: telnetd.c,v 1.56 2019/08/15 01:15:21 kamil Exp $"); #endif #endif /* not lint */ @@ -86,18 +86,10 @@ __RCSID("$NetBSD: telnetd.c,v 1.55 2014/02/27 18:20:21 joerg Exp $"); #include #endif -#ifdef AUTHENTICATION -int auth_level = 0; -#endif - #if defined(AUTHENTICATION) || defined(ENCRYPTION) #include #endif -#ifdef SECURELOGIN -int require_secure_login = 0; -#endif - extern int require_hwpreauth; #ifdef KRB5 extern krb5_context telnet_context; @@ -164,6 +156,8 @@ struct sockaddr_storage from; int main(int argc, char *argv[]) { + static char Xline[] = NULL16STR; + socklen_t fromlen; int on = 1; int ch; @@ -171,6 +165,8 @@ main(int argc, char *argv[]) int tos = -1; #endif + line = Xline; + pfrontp = pbackp = ptyobuf; netip = netibuf; nfrontp = nbackp = netobuf;