Module Name: src Committed By: dholland Date: Fri Aug 26 19:30:44 UTC 2022
Modified Files: src/libexec/telnetd: telnetd.c Log Message: telnetd: fix the crash that's been talked about the past couple days. (Move initialization of the slc table earlier so it doesn't get accessed before that happens.) Calling the crash a DoS or security problem is a bit overwrought; it's just a bug. To generate a diff of this commit: cvs rdiff -u -r1.57 -r1.58 src/libexec/telnetd/telnetd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/libexec/telnetd/telnetd.c diff -u src/libexec/telnetd/telnetd.c:1.57 src/libexec/telnetd/telnetd.c:1.58 --- src/libexec/telnetd/telnetd.c:1.57 Wed Dec 8 20:21:09 2021 +++ src/libexec/telnetd/telnetd.c Fri Aug 26 19:30:44 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: telnetd.c,v 1.57 2021/12/08 20:21:09 andvar Exp $ */ +/* $NetBSD: telnetd.c,v 1.58 2022/08/26 19:30:44 dholland Exp $ */ /* * Copyright (C) 1997 and 1998 WIDE Project. @@ -65,7 +65,7 @@ __COPYRIGHT("@(#) Copyright (c) 1989, 19 #if 0 static char sccsid[] = "@(#)telnetd.c 8.4 (Berkeley) 5/30/95"; #else -__RCSID("$NetBSD: telnetd.c,v 1.57 2021/12/08 20:21:09 andvar Exp $"); +__RCSID("$NetBSD: telnetd.c,v 1.58 2022/08/26 19:30:44 dholland Exp $"); #endif #endif /* not lint */ @@ -678,6 +678,11 @@ doit(struct sockaddr *who) char user_name[256]; /* + * Initialize the slc mapping table. + */ + get_slc_defaults(); + + /* * Find an available pty to use. */ pty = getpty(&ptynum); @@ -744,11 +749,6 @@ telnet(int f, int p) struct pollfd set[2]; /* - * Initialize the slc mapping table. - */ - get_slc_defaults(); - - /* * Do some tests where it is desirable to wait for a response. * Rather than doing them slowly, one at a time, do them all * at once.