From owner-freebsd-bugs@freebsd.org Fri Jun 24 22:12:54 2016 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 92D8BB80752 for ; Fri, 24 Jun 2016 22:12:54 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 694A81A55 for ; Fri, 24 Jun 2016 22:12:54 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id u5OMCs15084238 for ; Fri, 24 Jun 2016 22:12:54 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 210543] tip & cu busyloop when stdin is /dev/null Date: Fri, 24 Jun 2016 22:12:54 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 10.2-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Many People X-Bugzilla-Who: heikki@suonsivu.net X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Jun 2016 22:12:54 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D210543 Bug ID: 210543 Summary: tip & cu busyloop when stdin is /dev/null Product: Base System Version: 10.2-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: bin Assignee: freebsd-bugs@FreeBSD.org Reporter: heikki@suonsivu.net This is likely present in 10.2 and earlier. tip/cu busyloops when stdin is redirected to /dev/null. Using cu this way = is a simple way of logging data from serial ports, so this is not completely uncommon thing to do. The problem seems to be that this has never been written in, just a comment which says: "XXX does not check for EOF" tipin function is not intended to exit, however, by a quick glance, it does= not seem to be that there is any harm done doing so. As there is no input for commands, the tipout will not exit until killed or until it encounters some sort of error, so simply exiting from tipin seems workable solution. It wi= ll simply return to main function and exit normally, and the tipout will conti= nue to run. The other alternative could be waiting for tipout, but I have not figured out any reason to do that, as the input process is useless without input. A quick patch: --- tip.c.orig 2015-08-12 17:22:33.000000000 +0300 +++ tip.c 2016-06-25 00:49:36.812976000 +0300 @@ -400,8 +400,11 @@ } while (1) { - gch =3D getchar()&STRIP_PAR; - /* XXX does not check for EOF */ + gch =3D getchar(); + if (gch =3D=3D EOF) + break; + + gch =3D gch&STRIP_PAR; if ((gch =3D=3D character(value(ESCAPE))) && bol) { if (!noesc) { if (!(gch =3D escape())) --=20 You are receiving this mail because: You are the assignee for the bug.=