From dan@obluda.cz  Sun Sep 12 02:38:44 2004
Return-Path: <dan@obluda.cz>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id A9C0C16A4CE
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 12 Sep 2004 02:38:44 +0000 (GMT)
Received: from kulesh.obluda.cz (kulesh.obluda.cz [193.179.22.243])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 883D543D41
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 12 Sep 2004 02:38:43 +0000 (GMT)
	(envelope-from dan@obluda.cz)
Received: from kulesh.obluda.cz (localhost.eunet.cz [127.0.0.1])
	by kulesh.obluda.cz (8.13.1/8.13.1) with ESMTP id i8C2cfcY007123
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 12 Sep 2004 04:38:42 +0200 (CEST)
	(envelope-from dan@obluda.cz)
Received: (from root@localhost)
	by kulesh.obluda.cz (8.13.1/8.13.1/Submit) id i8C2cfV6007122
	for FreeBSD-gnats-submit@freebsd.org; Sun, 12 Sep 2004 04:38:41 +0200 (CEST)
	(envelope-from dan@obluda.cz)
Message-Id: <200409120238.i8C2cfV6007122@kulesh.obluda.cz>
Date: Sun, 12 Sep 2004 04:38:41 +0200 (CEST)
From: Dan Lukes <dan@obluda.cz>
Reply-To: Dan Lukes <dan@obluda.cz>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [PATCH] cleanup of the usr.sbin/pppctl code
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         71631
>Category:       bin
>Synopsis:       [patch] cleanup of the usr.sbin/pppctl code
>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:   Sun Sep 12 02:40:30 GMT 2004
>Closed-Date:    
>Last-Modified:  Mon Dec 29 18:01:35 UTC 2008
>Originator:     Dan Lukes
>Release:        FreeBSD 5.3-BETA3 i386
>Organization:
Obludarium
>Environment:
System: FreeBSD kulesh.obluda.cz 5.3-BETA3 FreeBSD 5.3-BETA3 #8: Sun Sep 5 07:06:40 CEST 2004 dan@kulesh.obluda.cz:/usr/obj/usr/src/sys/Dan i386
usr.sbin/pppctl/pppctl.c,v 1.32 2003/12/07 08:39:29 tjr

>Description:
	There are more than 5000 warnings issued during "make buildworld".
Some of them are false positives, but some of them are sign of true errors.

	Nobody is upset by warnings due it's amount, so some errors remain
uncorrected.

	I want to cleanup the code-base from warnings, so warnings will
become "attention mark" again.

usr.sbin/pppctl/pppctl.c:368: warning: 'fd' might be used uninitialized in this function
'fd' is initialized with no exception, so turn-off warning only

>How-To-Repeat:
	N/A
>Fix:
*** usr.sbin/pppctl/pppctl.c.ORIG	Sun Dec  7 23:02:31 2003
--- usr.sbin/pppctl/pppctl.c	Sat Sep 11 13:42:01 2004
***************
*** 365,371 ****
  main(int argc, char **argv)
  {
      struct sockaddr_un ifsun;
!     int n, arg, fd, len, verbose, save_errno, hide1, hide1off, hide2;
      unsigned TimeoutVal;
      char *DoneWord = "x", *next, *start;
      struct sigaction act, oact;
--- 365,372 ----
  main(int argc, char **argv)
  {
      struct sockaddr_un ifsun;
!     int n, arg, len, verbose, save_errno, hide1, hide1off, hide2;
!     int fd = fd;	/* init to avoid "might be used unitialized" warning 8/
      unsigned TimeoutVal;
      char *DoneWord = "x", *next, *start;
      struct sigaction act, oact;
>Release-Note:
>Audit-Trail:

From: Giorgos Keramidas <keramida@freebsd.org>
To: Dan Lukes <dan@obluda.cz>
Cc: bug-followup@freebsd.org
Subject: Re: bin/71631: [PATCH] cleanup of the usr.sbin/pppctl code
Date: Sun, 12 Sep 2004 22:50:50 +0300

 On 2004-09-12 04:38, Dan Lukes <dan@obluda.cz> wrote:
 > usr.sbin/pppctl/pppctl.c:368: warning: 'fd' might be used uninitialized in this function
 > 'fd' is initialized with no exception, so turn-off warning only
 
 It can't really.  But this is not a good fix for the warning:
 
 > -     int n, arg, fd, len, verbose, save_errno, hide1, hide1off, hide2;
 > +     int n, arg, len, verbose, save_errno, hide1, hide1off, hide2;
 > +     int fd = fd;	/* init to avoid "might be used unitialized" warning 8/
 
 fd = -1; would be a better initialization, since no valid descriptor can
 ever be negative and this will expose any bugs that using fd before a
 proper initialization can trigger.
 
 The following patch fixes a few other warnings too, and allows me to build
 pppctl with WARNS?=6 in today's 6.0-CURRENT:
 
 %%%
 Index: pppctl.c
 ===================================================================
 RCS file: /home/ncvs/src/usr.sbin/pppctl/pppctl.c,v
 retrieving revision 1.32
 diff -u -r1.32 pppctl.c
 --- pppctl.c	7 Dec 2003 08:39:29 -0000	1.32
 +++ pppctl.c	12 Sep 2004 19:47:32 -0000
 @@ -77,7 +77,7 @@
   * How to use pppctl...
   */
  static int
 -usage()
 +usage(void)
  {
      fprintf(stderr, "usage: pppctl [-v] [-t n] [-p passwd] "
              "Port|LocalSock [command[;command]...]\n");
 @@ -93,7 +93,7 @@
   * Handle the SIGALRM received due to a connect() timeout.
   */
  static void
 -Timeout(int Sig)
 +Timeout(int Sig __unused)
  {
      TimedOut = 1;
  }
 @@ -103,10 +103,12 @@
   * All the work is done in Receive() below.
   */
  static char *
 -GetPrompt(EditLine *e)
 +GetPrompt(EditLine *e __unused)
  {
 +    static char empty_prompt[] = "";
 +
      if (prompt == NULL)
 -        prompt = "";
 +        prompt = empty_prompt;
      return prompt;
  }
  
 @@ -119,6 +121,7 @@
  Receive(int fd, int display)
  {
      static char Buffer[LINELEN];
 +    static char empty_prompt[] = "";
      struct timeval t;
      int Result;
      char *last;
 @@ -173,7 +176,7 @@
                  Result = 0;
              break;
          } else
 -            prompt = "";
 +            prompt = empty_prompt;
          if (len == sizeof Buffer - 1) {
              int flush;
              if ((last = strrchr(Buffer, '\n')) == NULL)
 @@ -202,7 +205,7 @@
   * Note, this is a signal handler - be careful of what we do !
   */
  static void
 -InputHandler(int sig)
 +InputHandler(int sig __unused)
  {
      static char buf[LINELEN];
      struct timeval t;
 @@ -365,9 +368,11 @@
  main(int argc, char **argv)
  {
      struct sockaddr_un ifsun;
 -    int n, arg, fd, len, verbose, save_errno, hide1, hide1off, hide2;
 +    int fd = -1;
 +    int n, arg, len, verbose, save_errno, hide1, hide1off, hide2;
      unsigned TimeoutVal;
 -    char *DoneWord = "x", *next, *start;
 +    char DoneWord[] = "x";
 +    char *next, *start;
      struct sigaction act, oact;
      void *thread_ret;
      pthread_t mon;
 @@ -431,7 +436,7 @@
                              hide1off, argv[harg]);
            else
              n = 0;
 -          if (n < 0 || n >= sizeof title - pos)
 +          if (n < 0 || (size_t)n >= sizeof title - pos)
              break;
            pos += n;
          }
 @@ -553,7 +558,7 @@
      len = 0;
      Command[sizeof(Command)-1] = '\0';
      for (arg++; arg < argc; arg++) {
 -        if (len && len < sizeof(Command)-1)
 +        if (len && (size_t) len < sizeof(Command)-1)
              strcpy(Command+len++, " ");
          strncpy(Command+len, argv[arg], sizeof(Command)-len-1);
          len += strlen(Command+len);
 %%%

From: Dan Lukes <dan@obluda.cz>
To: Giorgos Keramidas <keramida@freebsd.org>
Cc: bug-followup@freebsd.org
Subject: Re: bin/71631: [PATCH] cleanup of the usr.sbin/pppctl code
Date: Mon, 13 Sep 2004 03:11:47 +0200 (CEST)

 On Sun, 12 Sep 2004, Giorgos Keramidas wrote:
 
 >> -     int n, arg, fd, len, verbose, save_errno, hide1, hide1off, hide2;
 >> +     int n, arg, len, verbose, save_errno, hide1, hide1off, hide2;
 >> +     int fd = fd;	/* init to avoid "might be used unitialized" warning 8/
 >
 > fd = -1; would be a better initialization, since no valid descriptor can
 > ever be negative and this will expose any bugs that using fd before a
 > proper initialization can trigger.
 
  	But unnecesarry over-initialisation is waste of resources.
 
  	It's about decision ...
 
  	I have no opinion which is better (generally).

From: Giorgos Keramidas <keramida@freebsd.org>
To: Dan Lukes <dan@obluda.cz>
Cc: bug-followup@freebsd.org
Subject: Re: bin/71631: [PATCH] cleanup of the usr.sbin/pppctl code
Date: Mon, 13 Sep 2004 08:56:42 +0300

 On 2004-09-13 03:11, Dan Lukes <dan@obluda.cz> wrote:
 > On Sun, 12 Sep 2004, Giorgos Keramidas wrote:
 > >>-     int n, arg, fd, len, verbose, save_errno, hide1, hide1off, hide2;
 > >>+     int n, arg, len, verbose, save_errno, hide1, hide1off, hide2;
 > >>+     int fd = fd;	/* init to avoid "might be used unitialized" warning 8/
 > >
 > >fd = -1; would be a better initialization, since no valid descriptor can
 > >ever be negative and this will expose any bugs that using fd before a
 > >proper initialization can trigger.
 >
 > 	But unnecesarry over-initialisation is waste of resources.
 > 	It's about decision ...
 
 Setting `int fd = fd' is also an initialiation that is a waste of
 resources.  I see no reason why it's better than an initialization
 that also buys us some safety.

From: Dan Lukes <dan@obluda.cz>
To: Giorgos Keramidas <keramida@freebsd.org>
Cc: bug-followup@freebsd.org
Subject: Re: bin/71631: [PATCH] cleanup of the usr.sbin/pppctl code
Date: Mon, 13 Sep 2004 08:37:55 +0200

 > Setting `int fd = fd' is also an initialiation that is a waste of
 > resources.  
 
 	Not true as it's optimized-out despite of O level. It's
 hack/information for compiler, not real assignment statement.
 
 > I see no reason why it's better than an initialization
 > that also buys us some safety.
 
 	Agree. Lets initialise fd to -1
 
 Dan
>Unformatted:
