From owner-freebsd-bugs Sun Jan 25 08:40:02 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id IAA17872 for freebsd-bugs-outgoing; Sun, 25 Jan 1998 08:40:02 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: (from gnats@localhost) by hub.freebsd.org (8.8.8/8.8.8) id IAA17859; Sun, 25 Jan 1998 08:40:01 -0800 (PST) (envelope-from gnats) Received: from obsidian.noc.dfn.de (obsidian.noc.dfn.de [193.174.247.193]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id IAA16993 for ; Sun, 25 Jan 1998 08:33:20 -0800 (PST) (envelope-from schweikh@obsidian.noc.dfn.de) Received: (from schweikh@localhost) by obsidian.noc.dfn.de (8.8.7/8.8.7) id RAA04636 for FreeBSD-gnats-submit@freebsd.org; Sun, 25 Jan 1998 17:33:14 +0100 (MET) Message-Id: <199801251633.RAA04636@obsidian.noc.dfn.de> Date: Sun, 25 Jan 1998 17:33:13 +0100 (MET) From: Jens Schweikhardt To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: bin/5565: ftp prints garbage Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 5565 >Category: bin >Synopsis: ftp prints garbage >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jan 25 08:40:01 PST 1998 >Last-Modified: >Originator: Jens Schweikhardt >Organization: DFN NOC >Release: FreeBSD 2.2.5-RELEASE i386 >Environment: FreeBSD hal9000.details.de 2.2.5-RELEASE FreeBSD 2.2.5-RELEASE #0: Thu Jan 22 20:05:20 CET 1998 schweikh@hal9000.details.de:/usr/src/sys/compile/HAL9000 i386 >Description: ftp prints garbage when I type Control-D at the login prompt. >How-To-Repeat: hal9000: 0 $ ftp localhost Connected to localhost. 220 hal9000.details.de FTP server (Version 6.00) ready. Name (localhost:schweikh): ^D331 Password required for . The garbage is the stuff after 'Password required for ' >Fix: The bug is that tmp[] is used unitialized when fgets returns NULL. The following patch to usr.bin/ftp/ftp.c makes a Control-D at the login prompt leave ftp -- the same behavior as for telnet. --- ftp.c.orig Sun Jan 25 14:39:14 1998 +++ ftp.c Sun Jan 25 14:51:46 1998 @@ -214,7 +214,8 @@ printf("Name (%s:%s): ", host, myname); else printf("Name (%s): ", host); - (void) fgets(tmp, sizeof(tmp) - 1, stdin); + if (fgets(tmp, sizeof(tmp) - 1, stdin) == NULL) + return 0; tmp[strlen(tmp) - 1] = '\0'; if (*tmp == '\0') user = myname; Regards, Jens -- Jens Schweikhardt http://www.shuttle.de/schweikh/ SIGSIG -- signature too long (core dumped) >Audit-Trail: >Unformatted: From: schweikh@noc.dfn.de Reply-To: schweikh@noc.dfn.de X-send-pr-version: 3.2