bin/71631: [PATCH] cleanup of the usr.sbin/pppctl code
Giorgos Keramidas
keramida at freebsd.org
Sun Sep 12 13:10:36 PDT 2004
The following reply was made to PR bin/71631; it has been noted by GNATS.
From: Giorgos Keramidas <keramida at freebsd.org>
To: Dan Lukes <dan at obluda.cz>
Cc: bug-followup at 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 at 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);
%%%
More information about the freebsd-bugs
mailing list