add -Wundef, fix uncovered bugs
This commit is contained in:
parent
04c6386c45
commit
a7189f01a4
@ -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
|
||||
|
@ -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>
|
||||
|
@ -14,20 +14,20 @@
|
||||
|
||||
#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>
|
||||
|
@ -13,20 +13,20 @@
|
||||
|
||||
#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
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#if HAVE_UNISTD_H
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#include <stdlib.h>
|
||||
|
@ -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);
|
||||
|
@ -16,15 +16,15 @@
|
||||
* 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;
|
||||
|
||||
|
@ -17,10 +17,10 @@
|
||||
* 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);
|
||||
|
@ -13,22 +13,22 @@
|
||||
|
||||
#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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -20,23 +20,11 @@
|
||||
*/
|
||||
|
||||
#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. */
|
||||
|
55
shell/ash.c
55
shell/ash.c
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user