From owner-freebsd-bugs@FreeBSD.ORG Mon Jul 6 16:20:01 2009 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8EA41065676 for ; Mon, 6 Jul 2009 16:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 89ACA8FC15 for ; Mon, 6 Jul 2009 16:20:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n66GK15G052355 for ; Mon, 6 Jul 2009 16:20:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n66GK1FH052354; Mon, 6 Jul 2009 16:20:01 GMT (envelope-from gnats) Resent-Date: Mon, 6 Jul 2009 16:20:01 GMT Resent-Message-Id: <200907061620.n66GK1FH052354@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Ulrich Spoerlein Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1FAF106566C for ; Mon, 6 Jul 2009 16:16:51 +0000 (UTC) (envelope-from uspoerlein@gmail.com) Received: from acme.spoerlein.net (cl-43.dus-01.de.sixxs.net [IPv6:2a01:198:200:2a::2]) by mx1.freebsd.org (Postfix) with ESMTP id 5F0848FC08 for ; Mon, 6 Jul 2009 16:16:51 +0000 (UTC) (envelope-from uspoerlein@gmail.com) Received: from roadrunner.spoerlein.net (e180171219.adsl.alicedsl.de [85.180.171.219]) by acme.spoerlein.net (8.14.3/8.14.3) with ESMTP id n66GGlB6052287 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 6 Jul 2009 18:16:49 +0200 (CEST) (envelope-from uspoerlein@gmail.com) Received: from roadrunner.spoerlein.net (localhost [127.0.0.1]) by roadrunner.spoerlein.net (8.14.3/8.14.3) with ESMTP id n66GGhDm005384 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 6 Jul 2009 18:16:43 +0200 (CEST) (envelope-from uqs@roadrunner.spoerlein.net) Received: (from uqs@localhost) by roadrunner.spoerlein.net (8.14.3/8.14.3/Submit) id n66GGhZF005383; Mon, 6 Jul 2009 18:16:43 +0200 (CEST) (envelope-from uqs) Message-Id: <200907061616.n66GGhZF005383@roadrunner.spoerlein.net> Date: Mon, 6 Jul 2009 18:16:43 +0200 (CEST) From: Ulrich Spoerlein To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/136383: [PATCH] usr.bin/jot fix usage of uninitialized values X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jul 2009 16:20:04 -0000 >Number: 136383 >Category: bin >Synopsis: [PATCH] usr.bin/jot fix usage of uninitialized values >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jul 06 16:20:01 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Ulrich Spörlein >Release: FreeBSD 7.2-STABLE i386 >Organization: >Environment: >Description: A run of clang's static analyzer found that jot(1) has a bug regarding the use of uninitialized variables. https://www.spoerlein.net/scan-build/2009-07-04-1/report-BcTTXG.html#EndPath The repetitions, start, end and step values are not preset. When defaults are given, it will use "random" values for these. >How-To-Repeat: % jot - 0 0 % jot - - 0 0 0 % jot - - - 0 0 0 0 % jot - - - - 0 0 0 0 0 >Fix: Simply pre-set all four variables to their defaults to match behaviour claimed in manpage. Also add regression test for this case. --- jot.diff begins here --- Index: tools/regression/usr.bin/jot/regress.sh =================================================================== --- tools/regression/usr.bin/jot/regress.sh (revision 193930) +++ tools/regression/usr.bin/jot/regress.sh (working copy) @@ -1,6 +1,6 @@ # $FreeBSD$ -echo 1..56 +echo 1..57 REGRESSION_START($1) @@ -20,6 +20,7 @@ REGRESSION_TEST(`ddhh', `jot - - 120 2') REGRESSION_TEST(`ddhd', `jot - - 120 -') REGRESSION_TEST(`dddh', `jot - - - 2') +REGRESSION_TEST(`dddd', `jot - - - -') REGRESSION_TEST(`hhhh2', `jot 30 20 160 2') REGRESSION_TEST(`hhhd2', `jot 30 20 160 -') REGRESSION_TEST(`hhdh2', `jot 30 20 - 2') Index: tools/regression/usr.bin/jot/regress.dddd.out =================================================================== --- tools/regression/usr.bin/jot/regress.dddd.out (revision 0) +++ tools/regression/usr.bin/jot/regress.dddd.out (revision 0) @@ -0,0 +1,100 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 Index: usr.bin/jot/jot.c =================================================================== --- usr.bin/jot/jot.c (revision 193930) +++ usr.bin/jot/jot.c (working copy) @@ -101,13 +101,13 @@ int ch; int mask = 0; int n = 0; - double begin; + double begin = BEGIN_DEF; double divisor; - double ender; - double s; + double ender = ENDER_DEF; + double s = STEP_DEF; double x, y; long i; - long reps; + long reps = REPS_DEF; while ((ch = getopt(argc, argv, "b:cnp:rs:w:")) != -1) switch (ch) { --- jot.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: