summaryrefslogtreecommitdiffstats
path: root/libexec/telnetd/telnetd.c
diff options
context:
space:
mode:
authorpst <pst@FreeBSD.org>1997-01-07 19:00:52 +0000
committerpst <pst@FreeBSD.org>1997-01-07 19:00:52 +0000
commitbc821ff35736498a1f5fbea36d9d0e7f94d53900 (patch)
tree8a07ae32e6d529f41b05f497daa2b3bf4fc0150d /libexec/telnetd/telnetd.c
parent4dfbc233a2bd38ba2bbaf687fa8bbc27d8b09782 (diff)
downloadFreeBSD-src-bc821ff35736498a1f5fbea36d9d0e7f94d53900.zip
FreeBSD-src-bc821ff35736498a1f5fbea36d9d0e7f94d53900.tar.gz
Some buffer overrun fixes and removed check for username starting with "-"
(replacied it with a getopt stopper (--) instead, which is more correct). Obtained from: OpenBSD
Diffstat (limited to 'libexec/telnetd/telnetd.c')
-rw-r--r--libexec/telnetd/telnetd.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/libexec/telnetd/telnetd.c b/libexec/telnetd/telnetd.c
index afbced3..1c57eb0 100644
--- a/libexec/telnetd/telnetd.c
+++ b/libexec/telnetd/telnetd.c
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id$
+ * $Id: telnetd.c,v 1.7 1996/09/22 21:55:46 wosch Exp $
*/
#ifndef lint
@@ -668,12 +668,14 @@ getterminaltype(name)
* we have to just go with what we (might) have already gotten.
*/
if (his_state_is_will(TELOPT_TTYPE) && !terminaltypeok(terminaltype)) {
- (void) strncpy(first, terminaltype, sizeof(first));
+ (void) strncpy(first, terminaltype, sizeof(first)-1);
+ first[sizeof(first)-1] = '\0';
for(;;) {
/*
* Save the unknown name, and request the next name.
*/
- (void) strncpy(last, terminaltype, sizeof(last));
+ (void) strncpy(last, terminaltype, sizeof(last)-1);
+ last[sizeof(last)-1] = '\0';
_gettermname();
if (terminaltypeok(terminaltype))
break;
@@ -691,8 +693,10 @@ getterminaltype(name)
* the start of the list.
*/
_gettermname();
- if (strncmp(first, terminaltype, sizeof(first)) != 0)
- (void) strncpy(terminaltype, first, sizeof(first));
+ if (strncmp(first, terminaltype, sizeof(first)) != 0) {
+ (void) strncpy(terminaltype, first, sizeof(terminaltype)-1);
+ terminaltype[sizeof(terminaltype)-1] = '\0';
+ }
break;
}
}
OpenPOWER on IntegriCloud