Hi,

Enable gcc warnings for arp, rarpd, ndp and fix findings.

ok?

bluhm

Index: usr.sbin/arp/Makefile
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/arp/Makefile,v
retrieving revision 1.3
diff -u -p -u -p -r1.3 Makefile
--- usr.sbin/arp/Makefile       29 Mar 2005 23:56:30 -0000      1.3
+++ usr.sbin/arp/Makefile       19 Jul 2013 22:35:30 -0000
@@ -2,6 +2,7 @@
 
 PROG=  arp
 MAN=   arp.4 arp.8
-CFLAGS+= -Wall
+
+WARNINGS= Yes
 
 .include <bsd.prog.mk>
Index: usr.sbin/arp/arp.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/arp/arp.c,v
retrieving revision 1.52
diff -u -p -u -p -r1.52 arp.c
--- usr.sbin/arp/arp.c  21 Mar 2013 04:43:17 -0000      1.52
+++ usr.sbin/arp/arp.c  19 Jul 2013 22:35:30 -0000
@@ -82,7 +82,7 @@ static pid_t pid;
 static int replace;    /* replace entries when adding */
 static int nflag;      /* no reverse dns lookups */
 static int aflag;      /* do it for all entries */
-static int s = -1;
+static int rsock = -1;
 static int rdomain = 0;
 
 extern int h_errno;
@@ -238,11 +238,11 @@ file(char *name)
 void
 getsocket(void)
 {
-       if (s >= 0)
+       if (rsock >= 0)
                return;
-       s = socket(PF_ROUTE, SOCK_RAW, 0);
-       if (s < 0)
-               err(1, "socket");
+       rsock = socket(PF_ROUTE, SOCK_RAW, 0);
+       if (rsock < 0)
+               err(1, "routing socket");
 }
 
 struct sockaddr_in     so_mask = { 8, 0, 0, { 0xffffffff } };
@@ -285,10 +285,10 @@ set(int argc, char *argv[])
        doing_proxy = flags = export_only = expire_time = 0;
        while (argc-- > 0) {
                if (strncmp(argv[0], "temp", 4) == 0) {
-                       struct timeval time;
+                       struct timeval now;
 
-                       gettimeofday(&time, 0);
-                       expire_time = time.tv_sec + 20 * 60;
+                       gettimeofday(&now, 0);
+                       expire_time = now.tv_sec + 20 * 60;
                        if (flags & RTF_PERMANENT_ARP) {
                                /* temp or permanent, not both */
                                usage();
@@ -622,14 +622,14 @@ doit:
        l = rtm->rtm_msglen;
        rtm->rtm_seq = ++seq;
        rtm->rtm_type = cmd;
-       if (write(s, (char *)&m_rtmsg, l) < 0)
+       if (write(rsock, (char *)&m_rtmsg, l) < 0)
                if (errno != ESRCH || cmd != RTM_DELETE) {
                        warn("writing to routing socket");
                        return (-1);
                }
 
        do {
-               l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg));
+               l = read(rsock, (char *)&m_rtmsg, sizeof(m_rtmsg));
        } while (l > 0 && (rtm->rtm_version != RTM_VERSION ||
            rtm->rtm_seq != seq || rtm->rtm_pid != pid));
 
Index: usr.sbin/ndp/Makefile
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/ndp/Makefile,v
retrieving revision 1.2
diff -u -p -u -p -r1.2 Makefile
--- usr.sbin/ndp/Makefile       25 Jan 2004 20:45:13 -0000      1.2
+++ usr.sbin/ndp/Makefile       19 Jul 2013 22:28:57 -0000
@@ -6,4 +6,6 @@ MAN=    ndp.8 # ndp.4
 
 CPPFLAGS+=-DINET6 -I${.CURDIR}
 
+WARNINGS= Yes
+
 .include <bsd.prog.mk>
Index: usr.sbin/ndp/ndp.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/ndp/ndp.c,v
retrieving revision 1.48
diff -u -p -u -p -r1.48 ndp.c
--- usr.sbin/ndp/ndp.c  19 Jul 2013 09:12:51 -0000      1.48
+++ usr.sbin/ndp/ndp.c  19 Jul 2013 22:22:26 -0000
@@ -116,7 +116,7 @@ static pid_t pid;
 static int nflag;
 static int tflag;
 static int32_t thiszone;       /* time difference with gmt */
-static int s = -1;
+static int rsock = -1;
 static int repeat = 0;
 
 char ntop_buf[INET6_ADDRSTRLEN];       /* inet_ntop() */
@@ -154,12 +154,11 @@ static char *rtpref_str[] = {
 };
 #endif
 
-int mode = 0;
-char *arg = NULL;
-
 int
 main(int argc, char *argv[])
 {
+       char *arg = NULL;
+       int mode = 0;
        int ch;
 
        pid = getpid();
@@ -323,13 +322,11 @@ file(char *name)
 void
 getsocket(void)
 {
-       if (s < 0) {
-               s = socket(PF_ROUTE, SOCK_RAW, 0);
-               if (s < 0) {
-                       err(1, "socket");
-                       /* NOTREACHED */
-               }
-       }
+       if (rsock >= 0)
+               return;
+       rsock = socket(PF_ROUTE, SOCK_RAW, 0);
+       if (rsock < 0)
+               err(1, "routing socket");
 }
 
 struct sockaddr_in6 so_mask = {sizeof(so_mask), AF_INET6 };
@@ -384,10 +381,10 @@ set(int argc, char **argv)
        flags = 0;
        while (argc-- > 0) {
                if (strncmp(argv[0], "temp", 4) == 0) {
-                       struct timeval time;
+                       struct timeval now;
 
-                       gettimeofday(&time, 0);
-                       expire_time = time.tv_sec + 20 * 60;
+                       gettimeofday(&now, 0);
+                       expire_time = now.tv_sec + 20 * 60;
                } else if (strncmp(argv[0], "proxy", 5) == 0)
                        flags |= RTF_ANNOUNCE;
                argv++;
@@ -546,12 +543,12 @@ dump(struct in6_addr *addr, int cflag)
 {
        int mib[6];
        size_t needed;
-       char *lim, *buf = NULL, *next;
+       char *lim = NULL, *buf = NULL, *next;
        struct rt_msghdr *rtm;
        struct sockaddr_in6 *sin;
        struct sockaddr_dl *sdl;
        struct in6_nbrinfo *nbi;
-       struct timeval time;
+       struct timeval now;
        int addrwidth;
        int llwidth;
        int ifwidth;
@@ -645,9 +642,9 @@ again:;
 #endif
                        continue;
                }
-               gettimeofday(&time, 0);
+               gettimeofday(&now, 0);
                if (tflag)
-                       ts_print(&time);
+                       ts_print(&now);
 
                addrwidth = strlen(host_buf);
                if (addrwidth < W_ADDR)
@@ -668,9 +665,9 @@ again:;
                /* Print neighbor discovery specific informations */
                nbi = getnbrinfo(&sin->sin6_addr, sdl->sdl_index, 1);
                if (nbi) {
-                       if (nbi->expire > time.tv_sec) {
+                       if (nbi->expire > now.tv_sec) {
                                printf(" %-9.9s",
-                                   sec2str(nbi->expire - time.tv_sec));
+                                   sec2str(nbi->expire - now.tv_sec));
                        } else if (nbi->expire == 0)
                                printf(" %-9.9s", "permanent");
                        else
@@ -871,14 +868,14 @@ doit:
        l = rtm->rtm_msglen;
        rtm->rtm_seq = ++seq;
        rtm->rtm_type = cmd;
-       if ((rlen = write(s, (char *)&m_rtmsg, l)) < 0) {
+       if ((rlen = write(rsock, (char *)&m_rtmsg, l)) < 0) {
                if (errno != ESRCH || cmd != RTM_DELETE) {
                        err(1, "writing to routing socket");
                        /* NOTREACHED */
                }
        }
        do {
-               l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg));
+               l = read(rsock, (char *)&m_rtmsg, sizeof(m_rtmsg));
        } while (l > 0 && (rtm->rtm_version != RTM_VERSION ||
            rtm->rtm_seq != seq || rtm->rtm_pid != pid));
        if (l < 0)
@@ -1011,7 +1008,7 @@ rtrlist(void)
        char *buf;
        struct in6_defrouter *p, *ep;
        size_t l;
-       struct timeval time;
+       struct timeval now;
 
        if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), NULL, &l, NULL, 0) < 0) {
                err(1, "sysctl(ICMPV6CTL_ND6_DRLIST)");
@@ -1046,18 +1043,18 @@ rtrlist(void)
                rtpref = ((p->flags & ND_RA_FLAG_RTPREF_MASK) >> 3) & 0xff;
                printf(", pref=%s", rtpref_str[rtpref]);
 
-               gettimeofday(&time, 0);
+               gettimeofday(&now, 0);
                if (p->expire == 0)
                        printf(", expire=Never\n");
                else
                        printf(", expire=%s\n",
-                           sec2str(p->expire - time.tv_sec));
+                           sec2str(p->expire - now.tv_sec));
        }
        free(buf);
 #else
        struct in6_drlist dr;
        int s, i;
-       struct timeval time;
+       struct timeval now;
 
        if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
                err(1, "socket");
@@ -1086,12 +1083,12 @@ rtrlist(void)
                printf(", flags=%s%s",
                    DR.flags & ND_RA_FLAG_MANAGED ? "M" : "",
                    DR.flags & ND_RA_FLAG_OTHER   ? "O" : "");
-               gettimeofday(&time, 0);
+               gettimeofday(&now, 0);
                if (DR.expire == 0)
                        printf(", expire=Never\n");
                else
                        printf(", expire=%s\n",
-                           sec2str(DR.expire - time.tv_sec));
+                           sec2str(DR.expire - now.tv_sec));
        }
 #undef DR
        close(s);
@@ -1107,7 +1104,7 @@ plist(void)
        struct in6_prefix *p, *ep, *n;
        struct sockaddr_in6 *advrtr;
        size_t l;
-       struct timeval time;
+       struct timeval now;
        const int niflags = NI_NUMERICHOST;
        int ninflags = nflag ? NI_NUMERICHOST : 0;
        char namebuf[NI_MAXHOST];
@@ -1138,7 +1135,7 @@ plist(void)
                printf("%s/%d if=%s\n", namebuf, p->prefixlen,
                    if_indextoname(p->if_index, ifix_buf));
 
-               gettimeofday(&time, 0);
+               gettimeofday(&now, 0);
                /*
                 * meaning of fields, especially flags, is very different
                 * by origin.  notify the difference to the users.
@@ -1164,9 +1161,9 @@ plist(void)
                        printf(", pltime=%lu", (unsigned long)p->pltime);
                if (p->expire == 0)
                        printf(", expire=Never");
-               else if (p->expire >= time.tv_sec)
+               else if (p->expire >= now.tv_sec)
                        printf(", expire=%s",
-                           sec2str(p->expire - time.tv_sec));
+                           sec2str(p->expire - now.tv_sec));
                else
                        printf(", expired");
                printf(", ref=%d", p->refcnt);
@@ -1214,9 +1211,9 @@ plist(void)
 #else
        struct in6_prlist pr;
        int s, i;
-       struct timeval time;
+       struct timeval now;
 
-       gettimeofday(&time, 0);
+       gettimeofday(&now, 0);
 
        if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) {
                err(1, "socket");
@@ -1268,7 +1265,7 @@ plist(void)
                printf("%s/%d if=%s\n", namebuf, PR.prefixlen,
                    if_indextoname(PR.if_index, ifix_buf));
 
-               gettimeofday(&time, 0);
+               gettimeofday(&now, 0);
                /*
                 * meaning of fields, especially flags, is very different
                 * by origin.  notify the difference to the users.
@@ -1304,9 +1301,9 @@ plist(void)
                        printf(", pltime=%lu", PR.pltime);
                if (PR.expire == 0)
                        printf(", expire=Never");
-               else if (PR.expire >= time.tv_sec)
+               else if (PR.expire >= now.tv_sec)
                        printf(", expire=%s",
-                           sec2str(PR.expire - time.tv_sec));
+                           sec2str(PR.expire - now.tv_sec));
                else
                        printf(", expired");
 #ifdef NDPRF_ONLINK
Index: usr.sbin/rarpd/Makefile
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/rarpd/Makefile,v
retrieving revision 1.6
diff -u -p -u -p -r1.6 Makefile
--- usr.sbin/rarpd/Makefile     15 May 2003 14:52:12 -0000      1.6
+++ usr.sbin/rarpd/Makefile     19 Jul 2013 22:28:37 -0000
@@ -10,4 +10,6 @@ DPADD+=       ${LIBUTIL}
 # to exist for a rarp reply to be sent.
 # CFLAGS+=-DREQUIRE_TFTPBOOT
 
+WARNINGS= Yes
+
 .include <bsd.prog.mk>
Index: usr.sbin/rarpd/arptab.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/rarpd/arptab.c,v
retrieving revision 1.18
diff -u -p -u -p -r1.18 arptab.c
--- usr.sbin/rarpd/arptab.c     27 Oct 2009 23:59:54 -0000      1.18
+++ usr.sbin/rarpd/arptab.c     19 Jul 2013 22:24:03 -0000
@@ -61,15 +61,7 @@
 #include <err.h>
 
 static pid_t pid;
-static int s = -1;
-
-void
-getsocket(void)
-{
-       s = socket(PF_ROUTE, SOCK_RAW, 0);
-       if (s < 0)
-               err(1, "arp: socket");
-}
+static int rsock = -1;
 
 struct sockaddr_in so_mask = {8, 0, 0, { 0xffffffff}};
 struct sockaddr_inarp blank_sin = {sizeof(blank_sin), AF_INET }, sin_m;
@@ -81,9 +73,20 @@ struct       {
        char    m_space[512];
 } m_rtmsg;
 
+void   getsocket(void);
 int    arptab_set(u_char *, u_int32_t);
 int    rtmsg(int);
 
+void
+getsocket(void)
+{
+       if (rsock >= 0)
+               return;
+       rsock = socket(PF_ROUTE, SOCK_RAW, 0);
+       if (rsock < 0)
+               err(1, "routing socket");
+}
+
 /*
  * Set an individual arp entry
  */
@@ -93,7 +96,7 @@ arptab_set(u_char *eaddr, u_int32_t host
        struct sockaddr_inarp *sin = &sin_m;
        struct rt_msghdr *rtm = &(m_rtmsg.m_rtm);
        struct sockaddr_dl *sdl;
-       struct timeval time;
+       struct timeval now;
        int rt;
 
        getsocket();
@@ -105,14 +108,14 @@ arptab_set(u_char *eaddr, u_int32_t host
        memcpy((u_char *)LLADDR(&sdl_m), (char *)eaddr, 6);
        sdl_m.sdl_alen = 6;
        doing_proxy = flags = export_only = expire_time = 0;
-       gettimeofday(&time, 0);
-       expire_time = time.tv_sec + 20 * 60;
+       gettimeofday(&now, 0);
+       expire_time = now.tv_sec + 20 * 60;
 
 tryagain:
        if (rtmsg(RTM_GET) < 0) {
                syslog(LOG_ERR,"%s: %m", inet_ntoa(sin->sin_addr));
-               close(s);
-               s = -1;
+               close(rsock);
+               rsock = -1;
                return (1);
        }
        sin = (struct sockaddr_inarp *)((char *)rtm + rtm->rtm_hdrlen);
@@ -134,15 +137,15 @@ tryagain:
                if (doing_proxy == 0) {
                        syslog(LOG_ERR, "arptab_set: can only proxy for %s",
                            inet_ntoa(sin->sin_addr));
-                       close(s);
-                       s = -1;
+                       close(rsock);
+                       rsock = -1;
                        return (1);
                }
                if (sin_m.sin_other & SIN_PROXY) {
                        syslog(LOG_ERR,
                            "arptab_set: proxy entry exists for non 802 
device");
-                       close(s);
-                       s = -1;
+                       close(rsock);
+                       rsock = -1;
                        return(1);
                }
                sin_m.sin_other = SIN_PROXY;
@@ -154,15 +157,15 @@ overwrite:
                syslog(LOG_ERR,
                    "arptab_set: cannot intuit interface index and type for %s",
                    inet_ntoa(sin->sin_addr));
-               close(s);
-               s = -1;
+               close(rsock);
+               rsock = -1;
                return (1);
        }
        sdl_m.sdl_type = sdl->sdl_type;
        sdl_m.sdl_index = sdl->sdl_index;
        rt = rtmsg(RTM_ADD);
-       close(s);
-       s = -1;
+       close(rsock);
+       rsock = -1;
        return (rt);
 }
 
@@ -218,14 +221,14 @@ doit:
        l = rtm->rtm_msglen;
        rtm->rtm_seq = ++seq;
        rtm->rtm_type = cmd;
-       if (write(s, (char *)&m_rtmsg, l) < 0) {
+       if (write(rsock, (char *)&m_rtmsg, l) < 0) {
                if (errno != ESRCH && errno != EEXIST) {
                        syslog(LOG_ERR, "writing to routing socket: %m");
                        return (-1);
                }
        }
        do {
-               l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg));
+               l = read(rsock, (char *)&m_rtmsg, sizeof(m_rtmsg));
        } while (l > 0 && (rtm->rtm_version != RTM_VERSION ||
            rtm->rtm_seq != seq || rtm->rtm_pid != pid));
        if (l < 0)
Index: usr.sbin/rarpd/rarpd.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/usr.sbin/rarpd/rarpd.c,v
retrieving revision 1.53
diff -u -p -u -p -r1.53 rarpd.c
--- usr.sbin/rarpd/rarpd.c      6 Apr 2012 18:03:52 -0000       1.53
+++ usr.sbin/rarpd/rarpd.c      19 Jul 2013 21:46:51 -0000
@@ -353,7 +353,7 @@ rarp_check(u_char *p, int len)
 
        (void) debug("got a packet");
 
-       if (len < sizeof(*ep) + sizeof(*ap)) {
+       if (len < (int)sizeof(*ep) + (int)sizeof(*ap)) {
                error(NONFATAL, "truncated request");
                return 0;
        }
@@ -763,6 +763,7 @@ ipaddrtonetmask(u_int32_t addr)
                return IN_CLASSC_NET;
        error(FATAL, "unknown IP address class: %08X", addr);
        /* NOTREACHED */
+       exit(1);  /* silence gcc warning */
 }
 
 void

Reply via email to