add -Wundef, fix uncovered bugs
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 17 Nov 2006 20:29:00 +0000 (20:29 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 17 Nov 2006 20:29:00 +0000 (20:29 -0000)
19 files changed:
Makefile.flags
e2fsprogs/blkid/blkid_getsize.c
e2fsprogs/blkid/devname.c
e2fsprogs/blkid/devno.c
e2fsprogs/blkid/resolve.c
e2fsprogs/e2fsck.c
e2fsprogs/e2p/fgetsetflags.c
e2fsprogs/e2p/fgetsetversion.c
e2fsprogs/ext2fs/finddev.c
include/platform.h
networking/ifconfig.c
networking/interface.c
networking/libiproute/ll_proto.c
networking/udhcp/clientpacket.c
networking/udhcp/clientsocket.c
networking/udhcp/packet.c
networking/udhcp/socket.c
procps/renice.c
shell/ash.c

index 12c5d58..ed42c2b 100644 (file)
@@ -11,7 +11,7 @@ CPPFLAGS += \
        -D_GNU_SOURCE -DNDEBUG \
        $(if $(CONFIG_LFS),-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64) \
        -D"BB_VER=KBUILD_STR($(BB_VER))" -DBB_BT=AUTOCONF_TIMESTAMP \
-       -Wall -Wstrict-prototypes -Wshadow -Werror \
+       -Wall -Wstrict-prototypes -Wshadow -Werror -Wundef \
        -funsigned-char -fno-builtin-strlen -finline-limit=0 -static-libgcc \
        -Os -falign-functions=1 -falign-jumps=1 -falign-loops=1 \
        -fomit-frame-pointer -ffunction-sections -fdata-sections
index 3c5ec5b..941efa4 100644 (file)
@@ -15,7 +15,7 @@
 
 #include <stdio.h>
 #include <unistd.h>
-#if HAVE_ERRNO_H
+#ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
 #include <fcntl.h>
index 7606e40..532aeea 100644 (file)
 
 #include <stdio.h>
 #include <string.h>
-#if HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
-#if HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #include <sys/stat.h>
-#if HAVE_ERRNO_H
+#ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
-#if HAVE_SYS_MKDEV_H
+#ifdef HAVE_SYS_MKDEV_H
 #include <sys/mkdev.h>
 #endif
 #include <time.h>
index 4f3dd93..13e7f1a 100644 (file)
 
 #include <stdio.h>
 #include <string.h>
-#if HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include <stdlib.h>
 #include <string.h>
-#if HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
 #include <sys/stat.h>
 #include <dirent.h>
-#if HAVE_ERRNO_H
+#ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
-#if HAVE_SYS_MKDEV_H
+#ifdef HAVE_SYS_MKDEV_H
 #include <sys/mkdev.h>
 #endif
 
index c6f54a2..2bbcaf3 100644 (file)
@@ -12,7 +12,7 @@
  */
 
 #include <stdio.h>
-#if HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include <stdlib.h>
index 88eedea..4920cd0 100644 (file)
@@ -4309,7 +4309,7 @@ static int process_block(ext2_filsys fs,
                         * Should never happen, since only directories
                         * get called with BLOCK_FLAG_HOLE
                         */
-#if DEBUG_E2FSCK
+#ifdef DEBUG_E2FSCK
                        printf("process_block() called with blk == 0, "
                               "blockcnt=%d, inode %lu???\n",
                               blockcnt, p->ino);
index 34e4055..008b798 100644 (file)
  * 93/10/30    - Creation
  */
 
-#if HAVE_ERRNO_H
+#ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
-#if HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include <sys/types.h>
 #include <sys/stat.h>
-#if HAVE_EXT2_IOCTLS
+#ifdef HAVE_EXT2_IOCTLS
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #endif
@@ -39,7 +39,7 @@
 
 int fgetsetflags (const char * name, unsigned long * get_flags, unsigned long set_flags)
 {
-#if HAVE_EXT2_IOCTLS
+#ifdef HAVE_EXT2_IOCTLS
        struct stat buf;
        int fd, r, f, save_errno = 0;
 
index 48cea9d..8d79054 100644 (file)
  * 93/10/30    - Creation
  */
 
-#if HAVE_ERRNO_H
+#ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
-#if HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include <fcntl.h>
@@ -44,7 +44,7 @@
 
 int fgetsetversion (const char * name, unsigned long * get_version, unsigned long set_version)
 {
-#if HAVE_EXT2_IOCTLS
+#ifdef HAVE_EXT2_IOCTLS
        int fd, r, ver, save_errno = 0;
 
        fd = open (name, OPEN_FLAGS);
index 4dda916..5e2cce9 100644 (file)
 
 #include <stdio.h>
 #include <string.h>
-#if HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #include <stdlib.h>
 #include <string.h>
-#if HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
 #endif
-#if HAVE_SYS_STAT_H
+#ifdef HAVE_SYS_STAT_H
 #include <sys/stat.h>
 #endif
 #include <dirent.h>
-#if HAVE_ERRNO_H
+#ifdef HAVE_ERRNO_H
 #include <errno.h>
 #endif
-#if HAVE_SYS_MKDEV_H
+#ifdef HAVE_SYS_MKDEV_H
 #include <sys/mkdev.h>
 #endif
 
index 91f43f3..345e9cb 100644 (file)
@@ -34,7 +34,7 @@
 #endif
 
 #undef inline
-#if __STDC_VERSION__ > 199901L
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ > 199901L
 /* it's a keyword */
 #else
 # if __GNUC_PREREQ (2,7)
index 59b6f0a..371f0fc 100644 (file)
@@ -29,7 +29,7 @@
 #include <net/if.h>
 #include <net/if_arp.h>
 #include <netinet/in.h>
-#if __GLIBC__ >=2 && __GLIBC_MINOR >= 1
+#if __GLIBC__ >=2 && __GLIBC_MINOR__ >= 1
 #include <netpacket/packet.h>
 #include <net/ethernet.h>
 #else
index 6c8e938..8bbde7d 100644 (file)
@@ -738,7 +738,7 @@ static const struct hwtype loop_hwtype = {
 
 #include <net/if_arp.h>
 
-#if (__GLIBC__ >=2 && __GLIBC_MINOR >= 1) || defined(_NEWLIB_VERSION)
+#if (__GLIBC__ >=2 && __GLIBC_MINOR__ >= 1) || defined(_NEWLIB_VERSION)
 #include <net/ethernet.h>
 #else
 #include <linux/if_ether.h>
index f026ab7..a3fe9d3 100644 (file)
@@ -16,7 +16,7 @@
 #include "rt_names.h"
 #include "utils.h"
 
-#if __GLIBC__ >=2 && __GLIBC_MINOR >= 1
+#if __GLIBC__ >=2 && __GLIBC_MINOR__ >= 1
 #include <net/ethernet.h>
 #else
 #include <linux/if_ether.h>
index 58b26c1..4299c2d 100644 (file)
@@ -11,7 +11,7 @@
 #include <string.h>
 #include <sys/socket.h>
 #include <features.h>
-#if (__GLIBC__ >= 2 && __GLIBC_MINOR >= 1) || defined _NEWLIB_VERSION
+#if (__GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1) || defined _NEWLIB_VERSION
 #include <netpacket/packet.h>
 #include <net/ethernet.h>
 #else
index 982aca1..6aa6175 100644 (file)
@@ -26,7 +26,7 @@
 #include <unistd.h>
 #include <netinet/in.h>
 #include <features.h>
-#if (__GLIBC__ >= 2 && __GLIBC_MINOR >= 1) || defined _NEWLIB_VERSION
+#if (__GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1) || defined(_NEWLIB_VERSION)
 #include <netpacket/packet.h>
 #include <net/ethernet.h>
 #else
index f12ecd6..e861b82 100644 (file)
@@ -5,7 +5,7 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <features.h>
-#if (__GLIBC__ >= 2 && __GLIBC_MINOR >= 1) || defined _NEWLIB_VERSION
+#if (__GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1) || defined _NEWLIB_VERSION
 #include <netpacket/packet.h>
 #include <net/ethernet.h>
 #else
index 3f481c3..d1867e9 100644 (file)
@@ -33,7 +33,7 @@
 #include <net/if.h>
 #include <errno.h>
 #include <features.h>
-#if (__GLIBC__ >= 2 && __GLIBC_MINOR >= 1) || defined _NEWLIB_VERSION
+#if (__GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1) || defined _NEWLIB_VERSION
 #include <netpacket/packet.h>
 #include <net/ethernet.h>
 #else
index bcaa94c..65674a4 100644 (file)
  */
 
 #include "busybox.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#include <errno.h>
-#include <unistd.h>
 #include <sys/resource.h>
 
-#if (PRIO_PROCESS < CHAR_MIN) || (PRIO_PROCESS > CHAR_MAX)
-#error Assumption violated : PRIO_PROCESS value
-#endif
-#if (PRIO_PGRP < CHAR_MIN) || (PRIO_PGRP > CHAR_MAX)
-#error Assumption violated : PRIO_PGRP value
-#endif
-#if (PRIO_USER < CHAR_MIN) || (PRIO_USER > CHAR_MAX)
-#error Assumption violated : PRIO_USER value
-#endif
+void BUG_bad_PRIO_PROCESS(void);
+void BUG_bad_PRIO_PGRP(void);
+void BUG_bad_PRIO_USER(void);
 
 int renice_main(int argc, char **argv)
 {
@@ -49,6 +37,14 @@ int renice_main(int argc, char **argv)
        unsigned who;
        char *arg;
 
+       /* Yes, they are not #defines in glibc 2.4! #if won't work */
+       if (PRIO_PROCESS < CHAR_MIN || PRIO_PROCESS > CHAR_MAX)
+               BUG_bad_PRIO_PROCESS();
+       if (PRIO_PGRP < CHAR_MIN || PRIO_PGRP > CHAR_MAX)
+               BUG_bad_PRIO_PGRP();
+       if (PRIO_USER < CHAR_MIN || PRIO_USER > CHAR_MAX)
+               BUG_bad_PRIO_USER();
+
        arg = *++argv;
 
        /* Check if we are using a relative adjustment. */
index a34c871..3c76397 100644 (file)
@@ -42,6 +42,7 @@
  * When debugging is on, debugging info will be written to ./trace and
  * a quit signal will generate a core dump.
  */
+#define DEBUG 0
 
 
 #define IFS_BROKEN
@@ -50,7 +51,7 @@
 
 #include "busybox.h"
 
-#ifdef DEBUG
+#if DEBUG
 #define _GNU_SOURCE
 #endif
 
@@ -104,7 +105,7 @@ static int *dash_errno;
 #error "Do not even bother, ash will not run on uClinux"
 #endif
 
-#ifdef DEBUG
+#if DEBUG
 #define _DIAGASSERT(assert_expr) assert(assert_expr)
 #else
 #define _DIAGASSERT(assert_expr)
@@ -582,7 +583,7 @@ static const char dolatstr[] = { CTLVAR, VSNORMAL|VSQUOTE, '@', '=', '\0' };
 static const char illnum[] = "Illegal number: %s";
 static const char homestr[] = "HOME";
 
-#ifdef DEBUG
+#if DEBUG
 #define TRACE(param)    trace param
 #define TRACEV(param)   tracev param
 #else
@@ -1937,7 +1938,7 @@ struct shparam {
 #define uflag optlist[12]
 #define viflag optlist[13]
 
-#ifdef DEBUG
+#if DEBUG
 #define nolog optlist[14]
 #define debug optlist[15]
 #endif
@@ -1964,7 +1965,7 @@ static const char *const optletters_optnames[] = {
        "b"   "notify",
        "u"   "nounset",
        "\0"  "vi",
-#ifdef DEBUG
+#if DEBUG
        "\0"  "nolog",
        "\0"  "debug",
 #endif
@@ -2011,7 +2012,7 @@ static int redirectsafe(union node *, int);
 /*      show.h     */
 
 
-#ifdef DEBUG
+#if DEBUG
 static void showtree(union node *);
 static void trace(const char *, ...);
 static void tracev(const char *, va_list);
@@ -2536,7 +2537,7 @@ static void exverror(int, const char *, va_list)
 static void
 exraise(int e)
 {
-#ifdef DEBUG
+#if DEBUG
        if (handler == NULL)
                abort();
 #endif
@@ -2596,7 +2597,7 @@ exvwarning(const char *msg, va_list ap)
 static void
 exverror(int cond, const char *msg, va_list ap)
 {
-#ifdef DEBUG
+#if DEBUG
        if (msg) {
                TRACE(("exverror(%d, \"", cond));
                TRACEV((msg, ap));
@@ -2785,7 +2786,7 @@ evaltree(union node *n, int flags)
            getpid(), n, n->type, flags));
        switch (n->type) {
        default:
-#ifdef DEBUG
+#if DEBUG
                out1fmt("Node type = %d\n", n->type);
                fflush(stdout);
                break;
@@ -4481,7 +4482,7 @@ commandcmd(int argc, char **argv)
                        verify |= VERIFY_VERBOSE;
                else if (c == 'v')
                        verify |= VERIFY_BRIEF;
-#ifdef DEBUG
+#if DEBUG
                else if (c != 'p')
                        abort();
 #endif
@@ -4907,7 +4908,7 @@ expari(int quotes)
 
                while (*p != CTLARI) {
                        p--;
-#ifdef DEBUG
+#if DEBUG
                        if (p < start) {
                                sh_error("missing CTLARI (shouldn't happen)");
                        }
@@ -5100,7 +5101,7 @@ subevalvar(char *p, char *str, int strloc, int subtype, int startloc, int varfla
        }
 
        subtype -= VSTRIMRIGHT;
-#ifdef DEBUG
+#if DEBUG
        if (subtype < 0 || subtype > 3)
                abort();
 #endif
@@ -5223,7 +5224,7 @@ record:
                goto end;
        }
 
-#ifdef DEBUG
+#if DEBUG
        switch (subtype) {
        case VSTRIMLEFT:
        case VSTRIMLEFTMAX:
@@ -6460,7 +6461,7 @@ set_curjob(struct job *jp, unsigned mode)
        jpp = curp;
        switch (mode) {
        default:
-#ifdef DEBUG
+#if DEBUG
                abort();
 #endif
        case CUR_DELETE:
@@ -6581,7 +6582,7 @@ usage:
                        while ((c = nextopt("ls:")) != '\0')
                                switch (c) {
                                default:
-#ifdef DEBUG
+#if DEBUG
                                        abort();
 #endif
                                case 'l':
@@ -6647,7 +6648,7 @@ usage:
 }
 #endif /* JOBS */
 
-#if defined(JOBS) || defined(DEBUG)
+#if defined(JOBS) || DEBUG
 static int
 jobno(const struct job *jp)
 {
@@ -7827,7 +7828,7 @@ chkmail(void)
                if (*p == '\0')
                        continue;
                for (q = p ; *q ; q++);
-#ifdef DEBUG
+#if DEBUG
                if (q[-1] != '/')
                        abort();
 #endif
@@ -7921,7 +7922,7 @@ ash_main(int argc, char **argv)
                        goto state4;
        }
        handler = &jmploc;
-#ifdef DEBUG
+#if DEBUG
        opentrace();
        trputs("Shell args:  ");  trargs(argv);
 #endif
@@ -7988,7 +7989,7 @@ state4: /* XXX ??? - why isn't this before the "if" statement */
 #if PROFILE
        monitor(0);
 #endif
-#if GPROF
+#ifdef GPROF
        {
                extern void _mcleanup(void);
                _mcleanup();
@@ -8266,7 +8267,7 @@ stalloc(size_t nbytes)
 void
 stunalloc(pointer p)
 {
-#ifdef DEBUG
+#if DEBUG
        if (!p || (stacknxt < (char *)p) || ((char *)p < stackp->space)) {
                write(2, "stunalloc\n", 10);
                abort();
@@ -8844,7 +8845,7 @@ setarg0:
 void
 optschanged(void)
 {
-#ifdef DEBUG
+#if DEBUG
        opentrace();
 #endif
        setinteractive(iflag);
@@ -9913,7 +9914,7 @@ static int
 readtoken(void)
 {
        int t;
-#ifdef DEBUG
+#if DEBUG
        int alreadyseen = tokpushback;
 #endif
 
@@ -9963,7 +9964,7 @@ top:
        }
 out:
        checkkwd = 0;
-#ifdef DEBUG
+#if DEBUG
        if (!alreadyseen)
            TRACE(("token %s %s\n", tokname(t), t == TWORD ? wordtext : ""));
        else
@@ -11053,7 +11054,7 @@ openredirect(union node *redir)
                        goto ecreate;
                break;
        default:
-#ifdef DEBUG
+#if DEBUG
                abort();
 #endif
                /* Fall through to eliminate warning. */
@@ -11255,7 +11256,7 @@ redirectsafe(union node *redir, int flags)
 
 /*      show.c    */
 
-#ifdef DEBUG
+#if DEBUG
 static void shtree(union node *, int, char *, FILE*);
 static void shcmd(union node *, FILE *);
 static void sharg(union node *, FILE *);
@@ -11714,7 +11715,7 @@ setsignal(int signo)
                                action = S_CATCH;
                        break;
                case SIGQUIT:
-#ifdef DEBUG
+#if DEBUG
                        if (debug)
                                break;
 #endif
@@ -13659,7 +13660,7 @@ static arith_t arith (const char *expr, int *perrcode)
 #endif /* CONFIG_ASH_MATH_SUPPORT */
 
 
-#ifdef DEBUG
+#if DEBUG
 const char *applet_name = "debug stuff usage";
 int main(int argc, char **argv)
 {