aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--applets/applets.c4
-rw-r--r--archival/bzip2.c2
-rw-r--r--archival/gzip.c4
-rw-r--r--console-tools/reset.c2
-rw-r--r--coreutils/stat.c21
-rw-r--r--findutils/find.c5
-rw-r--r--include/busybox.h4
-rw-r--r--include/libbb.h3
-rw-r--r--include/usage.h1
-rw-r--r--init/halt.c2
-rw-r--r--libbb/appletlib.c2
-rw-r--r--libbb/getpty.c6
-rw-r--r--libbb/lineedit.c5
-rw-r--r--loginutils/login.c4
-rw-r--r--miscutils/bbconfig.c2
-rw-r--r--miscutils/chat.c5
-rw-r--r--modutils/insmod.c3
-rw-r--r--modutils/lsmod.c2
-rw-r--r--networking/Kbuild2
-rw-r--r--networking/ether-wake.c2
-rw-r--r--networking/httpd.c13
-rw-r--r--networking/ifupdown.c22
-rw-r--r--networking/inetd.c22
-rw-r--r--networking/nc.c2
-rw-r--r--networking/sendmail.c4
-rw-r--r--networking/telnetd.c4
-rw-r--r--networking/traceroute.c4
-rw-r--r--networking/udhcp/clientsocket.c2
-rw-r--r--networking/wget.c2
-rw-r--r--procps/ps.c2
-rw-r--r--shell/ash.c20
-rw-r--r--shell/cttyhack.c2
-rw-r--r--util-linux/fbset.c10
-rw-r--r--util-linux/fdisk.c12
-rw-r--r--util-linux/script.c4
-rw-r--r--util-linux/volume_id/get_devname.c8
36 files changed, 156 insertions, 58 deletions
diff --git a/applets/applets.c b/applets/applets.c
index 40c482408..fbe766623 100644
--- a/applets/applets.c
+++ b/applets/applets.c
@@ -11,8 +11,8 @@
#include "busybox.h"
#if ENABLE_BUILD_LIBBUSYBOX
-int main(int argc, char **argv)
+int main(int argc ATTRIBUTE_UNUSED, char **argv)
{
- return lbb_main(argc, argv);
+ return lbb_main(argv);
}
#endif
diff --git a/archival/bzip2.c b/archival/bzip2.c
index 76963365f..eb570c434 100644
--- a/archival/bzip2.c
+++ b/archival/bzip2.c
@@ -141,7 +141,7 @@ char* make_new_name_bzip2(char *filename)
}
int bzip2_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int bzip2_main(int argc, char **argv)
+int bzip2_main(int argc ATTRIBUTE_UNUSED, char **argv)
{
unsigned opt;
diff --git a/archival/gzip.c b/archival/gzip.c
index 36502faf7..a96d02911 100644
--- a/archival/gzip.c
+++ b/archival/gzip.c
@@ -2026,7 +2026,11 @@ USE_DESKTOP(long long) int pack_gzip(void)
}
int gzip_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+#if ENABLE_GUNZIP
int gzip_main(int argc, char **argv)
+#else
+int gzip_main(int argc ATTRIBUTE_UNUSED, char **argv)
+#endif
{
unsigned opt;
diff --git a/console-tools/reset.c b/console-tools/reset.c
index f36ef544c..a2bf44d9f 100644
--- a/console-tools/reset.c
+++ b/console-tools/reset.c
@@ -40,7 +40,7 @@ int reset_main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
#if ENABLE_STTY
return stty_main(2, (char**)args);
#else
- execvp("stty", args);
+ execvp("stty", (char**)args);
#endif
}
return EXIT_SUCCESS;
diff --git a/coreutils/stat.c b/coreutils/stat.c
index 5996268ef..b2b1913a9 100644
--- a/coreutils/stat.c
+++ b/coreutils/stat.c
@@ -21,6 +21,12 @@
#define OPT_DEREFERENCE (1 << 2)
#define OPT_SELINUX (1 << 3)
+#if ENABLE_FEATURE_STAT_FORMAT
+typedef bool (*statfunc_ptr)(const char *, const char *);
+#else
+typedef bool (*statfunc_ptr)(const char *);
+#endif
+
static const char *file_type(const struct stat *st)
{
/* See POSIX 1003.1-2001 XCU Table 4-8 lines 17093-17107
@@ -338,8 +344,14 @@ static void print_it(const char *masterformat, const char *filename,
#endif
/* Stat the file system and print what we find. */
+#if !ENABLE_FEATURE_STAT_FORMAT
+#define do_statfs(filename, format) do_statfs(filename)
+#endif
static bool do_statfs(const char *filename, const char *format)
{
+#if !ENABLE_FEATURE_STAT_FORMAT
+ const char *format;
+#endif
struct statfs statfsbuf;
#if ENABLE_SELINUX
security_context_t scontext = NULL;
@@ -447,6 +459,9 @@ static bool do_statfs(const char *filename, const char *format)
}
/* stat the file and print what we find */
+#if !ENABLE_FEATURE_STAT_FORMAT
+#define do_stat(filename, format) do_stat(filename)
+#endif
static bool do_stat(const char *filename, const char *format)
{
struct stat statbuf;
@@ -612,10 +627,10 @@ static bool do_stat(const char *filename, const char *format)
int stat_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int stat_main(int argc, char **argv)
{
- char *format = NULL;
+ USE_FEATURE_STAT_FORMAT(char *format = NULL;)
int i;
int ok = 1;
- bool (*statfunc)(const char *, const char *) = do_stat;
+ statfunc_ptr statfunc = do_stat;
getopt32(argv, "ftL"
USE_SELINUX("Z")
@@ -633,7 +648,7 @@ int stat_main(int argc, char **argv)
}
#endif /* ENABLE_SELINUX */
for (i = optind; i < argc; ++i)
- ok &= statfunc(argv[i], format);
+ ok &= statfunc(argv[i] USE_FEATURE_STAT_FORMAT(, format));
return (ok ? EXIT_SUCCESS : EXIT_FAILURE);
}
diff --git a/findutils/find.c b/findutils/find.c
index 50c790161..634fbd189 100644
--- a/findutils/find.c
+++ b/findutils/find.c
@@ -374,7 +374,10 @@ ACTF(context)
#endif
-static int fileAction(const char *fileName, struct stat *statbuf, void *userData, int depth)
+static int fileAction(const char *fileName,
+ struct stat *statbuf,
+ void *userData SKIP_FEATURE_FIND_MAXDEPTH(ATTRIBUTE_UNUSED),
+ int depth SKIP_FEATURE_FIND_MAXDEPTH(ATTRIBUTE_UNUSED))
{
int i;
#if ENABLE_FEATURE_FIND_MAXDEPTH
diff --git a/include/busybox.h b/include/busybox.h
index 52720244b..cad45ac00 100644
--- a/include/busybox.h
+++ b/include/busybox.h
@@ -64,9 +64,9 @@ void lbb_prepare(const char *applet
) MAIN_EXTERNALLY_VISIBLE;
#if ENABLE_BUILD_LIBBUSYBOX
#if ENABLE_FEATURE_SHARED_BUSYBOX
-int lbb_main(int argc, char **argv) EXTERNALLY_VISIBLE;
+int lbb_main(char **argv) EXTERNALLY_VISIBLE;
#else
-int lbb_main(int argc, char **argv);
+int lbb_main(char **argv);
#endif
#endif
diff --git a/include/libbb.h b/include/libbb.h
index df8b0ecdb..c6c2be244 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -237,7 +237,8 @@ extern int recursive_action(const char *fileName, unsigned flags,
int (*dirAction) (const char *fileName, struct stat* statbuf, void* userData, int depth),
void* userData, unsigned depth);
extern int device_open(const char *device, int mode);
-extern int getpty(char *line, int size);
+enum { GETPTY_BUFSIZE = 16 }; /* more than enough for "/dev/ttyXXX" */
+extern int getpty(char *line);
extern int get_console_fd(void);
extern char *find_block_device(const char *path);
/* bb_copyfd_XX print read/write errors and return -1 if they occur */
diff --git a/include/usage.h b/include/usage.h
index f94fa2f62..507a52dab 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -989,6 +989,7 @@
""
#define false_full_usage \
"Return an exit code of FALSE (1)"
+
#define false_example_usage \
"$ false\n" \
"$ echo $?\n" \
diff --git a/init/halt.c b/init/halt.c
index c50d8af63..1f0fae302 100644
--- a/init/halt.c
+++ b/init/halt.c
@@ -16,7 +16,7 @@
#endif
int halt_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int halt_main(int argc, char **argv)
+int halt_main(int argc ATTRIBUTE_UNUSED, char **argv)
{
static const int magic[] = {
#ifdef RB_HALT_SYSTEM
diff --git a/libbb/appletlib.c b/libbb/appletlib.c
index de27dd80e..aade9046a 100644
--- a/libbb/appletlib.c
+++ b/libbb/appletlib.c
@@ -661,7 +661,7 @@ void run_applet_and_exit(const char *name, char **argv)
#if ENABLE_BUILD_LIBBUSYBOX
-int lbb_main(int argc, char **argv)
+int lbb_main(char **argv)
#else
int main(int argc ATTRIBUTE_UNUSED, char **argv)
#endif
diff --git a/libbb/getpty.c b/libbb/getpty.c
index c006e34f5..36b3c6842 100644
--- a/libbb/getpty.c
+++ b/libbb/getpty.c
@@ -10,7 +10,9 @@
#define DEBUG 0
-int getpty(char *line, int size)
+#define DEBUG 0
+
+int getpty(char *line)
{
int p;
#if ENABLE_FEATURE_DEVPTS
@@ -24,7 +26,7 @@ int getpty(char *line, int size)
bb_perror_msg("ptsname error (is /dev/pts mounted?)");
return -1;
}
- safe_strncpy(line, name, size);
+ safe_strncpy(line, name, GETPTY_BUFSIZE);
return p;
}
#else
diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index 7e408207c..b25386bc0 100644
--- a/libbb/lineedit.c
+++ b/libbb/lineedit.c
@@ -294,7 +294,12 @@ static void redraw(int y, int back_cursor)
/* Delete the char in front of the cursor, optionally saving it
* for later putback */
+#if !ENABLE_FEATURE_EDITING_VI
+static void input_delete(void)
+#define input_delete(save) input_delete()
+#else
static void input_delete(int save)
+#endif
{
int j = cursor;
diff --git a/loginutils/login.c b/loginutils/login.c
index 79e7494bf..d7eb8d35b 100644
--- a/loginutils/login.c
+++ b/loginutils/login.c
@@ -130,9 +130,7 @@ static void die_if_nologin(void)
fclose(fp);
} else
puts("\r\nSystem closed for routine maintenance\r");
- if (!amroot)
- exit(1);
- puts("\r\n[Disconnect bypassed -- root login allowed]\r");
+ exit(1);
}
#else
static ALWAYS_INLINE void die_if_nologin(void) {}
diff --git a/miscutils/bbconfig.c b/miscutils/bbconfig.c
index ee566788b..f3aef42e3 100644
--- a/miscutils/bbconfig.c
+++ b/miscutils/bbconfig.c
@@ -5,7 +5,7 @@
#include "bbconfigopts.h"
int bbconfig_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int bbconfig_main(int argc, char **argv)
+int bbconfig_main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
{
printf(bbconfig_config);
return 0;
diff --git a/miscutils/chat.c b/miscutils/chat.c
index 50c5ad976..64d4ba4fd 100644
--- a/miscutils/chat.c
+++ b/miscutils/chat.c
@@ -233,7 +233,8 @@ int chat_main(int argc ATTRIBUTE_UNUSED, char **argv)
//-----------------------
// do expect
//-----------------------
- size_t expect_len, buf_len = 0;
+ int expect_len;
+ size_t buf_len = 0;
size_t max_len = max_abort_len;
struct pollfd pfd;
@@ -315,7 +316,7 @@ int chat_main(int argc ATTRIBUTE_UNUSED, char **argv)
exitcode = ERR_OK;
// expected reply received? -> goto next command
- delta = buf_len-expect_len;
+ delta = buf_len - expect_len;
if (delta >= 0 && !memcmp(buf+delta, expect, expect_len))
goto expect_done;
#undef buf
diff --git a/modutils/insmod.c b/modutils/insmod.c
index 079de6940..6274a8d15 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -3680,6 +3680,9 @@ static void check_tainted_module(struct obj_file *f, char *m_name)
* start of some sections. this info is used by ksymoops to do better
* debugging.
*/
+#if !ENABLE_FEATURE_INSMOD_VERSION_CHECKING
+#define get_module_version(f, str) get_module_version(str)
+#endif
static int
get_module_version(struct obj_file *f, char str[STRVERSIONLEN])
{
diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index baf0e2a9d..da8663acb 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -75,7 +75,7 @@ enum {
};
int lsmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int lsmod_main(int argc, char **argv)
+int lsmod_main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
{
struct module_info info;
char *module_names, *mn, *deps, *dn;
diff --git a/networking/Kbuild b/networking/Kbuild
index e06a12462..44258e9b0 100644
--- a/networking/Kbuild
+++ b/networking/Kbuild
@@ -17,7 +17,7 @@ lib-$(CONFIG_FTPPUT) += ftpgetput.o
lib-$(CONFIG_HOSTNAME) += hostname.o
lib-$(CONFIG_HTTPD) += httpd.o
lib-$(CONFIG_IFCONFIG) += ifconfig.o interface.o
-lib-$(CONFIG_IFENSLAVE) += ifenslave.o
+lib-$(CONFIG_IFENSLAVE) += ifenslave.o interface.o
lib-$(CONFIG_IFUPDOWN) += ifupdown.o
lib-$(CONFIG_INETD) += inetd.o
lib-$(CONFIG_IP) += ip.o
diff --git a/networking/ether-wake.c b/networking/ether-wake.c
index b752152e1..fcd7dd2bc 100644
--- a/networking/ether-wake.c
+++ b/networking/ether-wake.c
@@ -179,7 +179,7 @@ static int get_wol_pw(const char *ethoptarg, unsigned char *wol_passwd)
}
int ether_wake_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int ether_wake_main(int argc, char **argv)
+int ether_wake_main(int argc ATTRIBUTE_UNUSED, char **argv)
{
const char *ifname = "eth0";
char *pass;
diff --git a/networking/httpd.c b/networking/httpd.c
index 54f288c7a..522e7eec0 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -1972,7 +1972,11 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
/* Try and do our best to parse more lines */
if ((STRNCASECMP(iobuf, "Content-length:") == 0)) {
/* extra read only for POST */
- if (prequest != request_GET && prequest != request_HEAD) {
+ if (prequest != request_GET
+#if ENABLE_FEATURE_HTTPD_CGI
+ && prequest != request_HEAD
+#endif
+ ) {
tptr = iobuf + sizeof("Content-length:") - 1;
if (!tptr[0])
send_headers_and_exit(HTTP_BAD_REQUEST);
@@ -2129,7 +2133,12 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
*/
send_file_and_exit(tptr,
- (prequest != request_HEAD ? SEND_HEADERS_AND_BODY : SEND_HEADERS));
+#if ENABLE_FEATURE_HTTPD_CGI
+ (prequest != request_HEAD ? SEND_HEADERS_AND_BODY : SEND_HEADERS)
+#else
+ SEND_HEADERS_AND_BODY
+#endif
+ );
}
/*
diff --git a/networking/ifupdown.c b/networking/ifupdown.c
index 6aa929a30..586c3db63 100644
--- a/networking/ifupdown.c
+++ b/networking/ifupdown.c
@@ -483,9 +483,9 @@ static const struct dhcp_client_t ext_dhcp_clients[] = {
};
#endif /* ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCPC */
+#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
{
-#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
int i;
#if ENABLE_FEATURE_IFUPDOWN_IP
/* ip doesn't up iface when it configures it (unlike ifconfig) */
@@ -498,7 +498,10 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
}
bb_error_msg("no dhcp clients found");
return 0;
+}
#elif ENABLE_APP_UDHCPC
+static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
+{
#if ENABLE_FEATURE_IFUPDOWN_IP
/* ip doesn't up iface when it configures it (unlike ifconfig) */
if (!execute("ip link set %iface% up", ifd, exec))
@@ -507,14 +510,18 @@ static int dhcp_up(struct interface_defn_t *ifd, execfn *exec)
return execute("udhcpc -R -n -p /var/run/udhcpc.%iface%.pid "
"-i %iface%[[ -H %hostname%]][[ -c %clientid%]][[ -s %script%]]",
ifd, exec);
+}
#else
+static int dhcp_up(struct interface_defn_t *ifd ATTRIBUTE_UNUSED,
+ execfn *exec ATTRIBUTE_UNUSED)
+{
return 0; /* no dhcp support */
-#endif
}
+#endif
+#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
{
-#if ENABLE_FEATURE_IFUPDOWN_EXTERNAL_DHCP
int i;
for (i = 0; i < ARRAY_SIZE(ext_dhcp_clients); i++) {
if (exists_execable(ext_dhcp_clients[i].name))
@@ -522,13 +529,20 @@ static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
}
bb_error_msg("no dhcp clients found, using static interface shutdown");
return static_down(ifd, exec);
+}
#elif ENABLE_APP_UDHCPC
+static int dhcp_down(struct interface_defn_t *ifd, execfn *exec)
+{
return execute("kill "
"`cat /var/run/udhcpc.%iface%.pid` 2>/dev/null", ifd, exec);
+}
#else
+static int dhcp_down(struct interface_defn_t *ifd ATTRIBUTE_UNUSED,
+ execfn *exec ATTRIBUTE_UNUSED)
+{
return 0; /* no dhcp support */
-#endif
}
+#endif
static int manual_up_down(struct interface_defn_t *ifd ATTRIBUTE_UNUSED, execfn *exec ATTRIBUTE_UNUSED)
{
diff --git a/networking/inetd.c b/networking/inetd.c
index 0ddfa6b45..b931aa1e0 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -1331,10 +1331,10 @@ int inetd_main(int argc ATTRIBUTE_UNUSED, char **argv)
continue; /* -> check next fd in fd set */
}
- /* we are either child or didn't fork at all */
+ /* we are either child or didn't vfork at all */
#ifdef INETD_BUILTINS_ENABLED
if (sep->se_builtin) {
- if (pid) { /* "pid" is -1: we did fork */
+ if (pid) { /* "pid" is -1: we did vfork */
close(sep->se_fd); /* listening socket */
logmode = 0; /* make xwrite etc silent */
}
@@ -1343,8 +1343,8 @@ int inetd_main(int argc ATTRIBUTE_UNUSED, char **argv)
sep->se_builtin->bi_stream_fn(ctrl, sep);
else
sep->se_builtin->bi_dgram_fn(ctrl, sep);
- if (pid) /* we did fork */
- _exit(0);
+ if (pid) /* we did vfork */
+ _exit(1);
maybe_close(accepted_fd);
continue; /* -> check next fd in fd set */
}
@@ -1430,11 +1430,15 @@ static void echo_stream(int s, servtab_t *sep ATTRIBUTE_UNUSED)
xwrite(s, line, sz);
}
#else
+ /* We are after vfork here! */
static const char *const args[] = { "cat", NULL };
- /* no error messages */
+ /* move network socket to stdin */
+ xmove_fd(s, STDIN_FILENO);
+ xdup2(STDIN_FILENO, STDOUT_FILENO);
+ /* no error messages please... */
xmove_fd(xopen("/dev/null", O_WRONLY), STDERR_FILENO);
BB_EXECVP("cat", (char**)args);
- _exit(1);
+ /* on failure we return to main, which does exit(1) */
#endif
}
static void echo_dg(int s, servtab_t *sep)
@@ -1463,11 +1467,15 @@ static void discard_stream(int s, servtab_t *sep ATTRIBUTE_UNUSED)
while (safe_read(s, line, LINE_SIZE) > 0)
continue;
#else
+ /* We are after vfork here! */
static const char *const args[] = { "dd", "of=/dev/null", NULL };
+ /* move network socket to stdin */
+ xmove_fd(s, STDIN_FILENO);
+ xdup2(STDIN_FILENO, STDOUT_FILENO);
/* no error messages */
xmove_fd(xopen("/dev/null", O_WRONLY), STDERR_FILENO);
BB_EXECVP("dd", (char**)args);
- _exit(1);
+ /* on failure we return to main, which does exit(1) */
#endif
}
/* ARGSUSED */
diff --git a/networking/nc.c b/networking/nc.c
index 7c2aafaf6..7d4a6e047 100644
--- a/networking/nc.c
+++ b/networking/nc.c
@@ -17,7 +17,7 @@
* when compared to "standard" nc
*/
-static void timeout(int signum)
+static void timeout(int signum ATTRIBUTE_UNUSED)
{
bb_error_msg_and_die("timed out");
}
diff --git a/networking/sendmail.c b/networking/sendmail.c
index 241028b92..2eb01dc94 100644
--- a/networking/sendmail.c
+++ b/networking/sendmail.c
@@ -551,11 +551,11 @@ int sendgetmail_main(int argc ATTRIBUTE_UNUSED, char **argv)
int rc;
// retrieve message in ./tmp/
- pop3_check(retr, (const char *)nmsg);
+ pop3_check(retr, (const char *)(ptrdiff_t)nmsg);
pop3_message(filename);
// delete message from server
if (opts & OPTF_z)
- pop3_check("DELE %u", (const char*)nmsg);
+ pop3_check("DELE %u", (const char*)(ptrdiff_t)nmsg);
// run postprocessing program
if (*fargs) {
diff --git a/networking/telnetd.c b/networking/telnetd.c
index 20c57925f..2ed3b74bc 100644
--- a/networking/telnetd.c
+++ b/networking/telnetd.c
@@ -161,14 +161,14 @@ make_new_session(
const char *login_argv[2];
struct termios termbuf;
int fd, pid;
- char tty_name[32];
+ char tty_name[GETPTY_BUFSIZE];
struct tsession *ts = xzalloc(sizeof(struct tsession) + BUFSIZE * 2);
/*ts->buf1 = (char *)(ts + 1);*/
/*ts->buf2 = ts->buf1 + BUFSIZE;*/
/* Got a new connection, set up a tty. */
- fd = getpty(tty_name, 32);
+ fd = getpty(tty_name);
if (fd < 0) {
bb_error_msg("can't create pty");
return NULL;
diff --git a/networking/traceroute.c b/networking/traceroute.c
index 582840af6..c0b4a3fd2 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -729,6 +729,10 @@ pr_type(unsigned char t)
}
#endif
+#if !ENABLE_FEATURE_TRACEROUTE_VERBOSE
+#define packet_ok(buf, cc, from, seq) \
+ packet_ok(buf, cc, seq)
+#endif
static int
packet_ok(unsigned char *buf, int cc, struct sockaddr_in *from, int seq)
{
diff --git a/networking/udhcp/clientsocket.c b/networking/udhcp/clientsocket.c
index b5534f83e..0be661d4f 100644
--- a/networking/udhcp/clientsocket.c
+++ b/networking/udhcp/clientsocket.c
@@ -76,7 +76,7 @@ int raw_socket(int ifindex)
BPF_STMT(BPF_LD|BPF_W|BPF_IND, 0),
BPF_JUMP(BPF_JMP|BPF_JEQ|BPF_K, SERVER_AND_CLIENT_PORTS, 0, 1), /* L3, L4 */
/* returns */
- BPF_STMT(BPF_RET|BPF_K, ~0UL), /* L3: pass */
+ BPF_STMT(BPF_RET|BPF_K, (~(uint32_t)0) ), /* L3: pass */
BPF_STMT(BPF_RET|BPF_K, 0), /* L4: reject */
};
static const struct sock_fprog filter_prog = {
diff --git a/networking/wget.c b/networking/wget.c
index dc1dc2ad9..f8adcd700 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -189,7 +189,7 @@ static void progressmeter(int flag)
*/
#else /* FEATURE_WGET_STATUSBAR */
-static ALWAYS_INLINE void progressmeter(int flag) { }
+static ALWAYS_INLINE void progressmeter(int flag ATTRIBUTE_UNUSED) { }
#endif
diff --git a/procps/ps.c b/procps/ps.c
index 647e03fc4..aeb8cecb4 100644
--- a/procps/ps.c
+++ b/procps/ps.c
@@ -484,7 +484,7 @@ int ps_main(int argc ATTRIBUTE_UNUSED, char **argv)
int ps_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int ps_main(int argc, char **argv)
+int ps_main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED)
{
procps_status_t *p = NULL;
int len;
diff --git a/shell/ash.c b/shell/ash.c
index 580918ceb..d9ce202fd 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -3247,6 +3247,9 @@ static pid_t backgndpid; /* pid of last background process */
static smallint job_warning; /* user was warned about stopped jobs (can be 2, 1 or 0). */
static struct job *makejob(/*union node *,*/ int);
+#if !JOBS
+#define forkshell(job, node, mode) forkshell(job, mode)
+#endif
static int forkshell(struct job *, union node *, int);
static int waitforjob(struct job *);
@@ -3424,6 +3427,9 @@ jobno(const struct job *jp)
/*
* Convert a job name to a job structure.
*/
+#if !JOBS
+#define getjob(name, getctl) getjob(name)
+#endif
static struct job *
getjob(const char *name, int getctl)
{
@@ -4533,6 +4539,9 @@ forkchild(struct job *jp, /*union node *n,*/ int mode)
}
/* Called after fork(), in parent */
+#if !JOBS
+#define forkparent(jp, n, mode, pid) forkparent(jp, mode, pid)
+#endif
static void
forkparent(struct job *jp, union node *n, int mode, pid_t pid)
{
@@ -8674,8 +8683,8 @@ preadfd(void)
char *buf = parsefile->buf;
parsenextc = buf;
- retry:
#if ENABLE_FEATURE_EDITING
+ retry:
if (!iflag || parsefile->fd)
nr = nonblock_safe_read(parsefile->fd, buf, BUFSIZ - 1);
else {
@@ -8876,8 +8885,11 @@ pungetc(void)
* Push a string back onto the input at this current parsefile level.
* We handle aliases this way.
*/
+#if !ENABLE_ASH_ALIAS
+#define pushstring(s, ap) pushstring(s)
+#endif
static void
-pushstring(char *s, void *ap)
+pushstring(char *s, struct alias *ap)
{
struct strpush *sp;
size_t len;
@@ -8894,9 +8906,9 @@ pushstring(char *s, void *ap)
sp->prevstring = parsenextc;
sp->prevnleft = parsenleft;
#if ENABLE_ASH_ALIAS
- sp->ap = (struct alias *)ap;
+ sp->ap = ap;
if (ap) {
- ((struct alias *)ap)->flag |= ALIASINUSE;
+ ap->flag |= ALIASINUSE;
sp->string = s;
}
#endif
diff --git a/shell/cttyhack.c b/shell/cttyhack.c
index 404181720..bbe514933 100644
--- a/shell/cttyhack.c
+++ b/shell/cttyhack.c
@@ -38,7 +38,7 @@ struct serial_struct {
};
int cttyhack_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
-int cttyhack_main(int argc, char **argv)
+int cttyhack_main(int argc ATTRIBUTE_UNUSED, char **argv)
{
int fd;
char console[sizeof(int)*3 + 16];
diff --git a/util-linux/fbset.c b/util-linux/fbset.c
index d616abd36..ab7770d4f 100644
--- a/util-linux/fbset.c
+++ b/util-linux/fbset.c
@@ -170,10 +170,10 @@ enum {
};
#endif
+#if ENABLE_FEATURE_FBSET_READMODE
static int readmode(struct fb_var_screeninfo *base, const char *fn,
const char *mode)
{
-#if ENABLE_FEATURE_FBSET_READMODE
FILE *f;
char buf[256];
char *p = buf;
@@ -257,11 +257,9 @@ static int readmode(struct fb_var_screeninfo *base, const char *fn,
return 1;
}
}
-#else
- bb_error_msg("mode reading not compiled in");
-#endif
return 0;
}
+#endif
static inline void setmode(struct fb_var_screeninfo *base,
struct fb_var_screeninfo *set)
@@ -389,9 +387,13 @@ int fbset_main(int argc, char **argv)
fh = xopen(fbdev, O_RDONLY);
xioctl(fh, FBIOGET_VSCREENINFO, &var);
if (g_options & OPT_READMODE) {
+#if !ENABLE_FEATURE_FBSET_READMODE
+ bb_show_usage();
+#else
if (!readmode(&var, modefile, mode)) {
bb_error_msg_and_die("unknown video mode '%s'", mode);
}
+#endif
}
setmode(&var, &varset);
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index a75b4f817..dcfae96f5 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -128,7 +128,11 @@ static unsigned read_int(unsigned low, unsigned dflt, unsigned high, unsigned ba
#endif
static const char *partition_type(unsigned char type);
static void get_geometry(void);
+#if ENABLE_FEATURE_SUN_LABEL || ENABLE_FEATURE_FDISK_WRITABLE
static int get_boot(enum action what);
+#else
+static int get_boot(void);
+#endif
#define PLURAL 0
#define SINGULAR 1
@@ -1237,8 +1241,12 @@ get_geometry(void)
* 0: found or created label
* 1: I/O error
*/
-static int
-get_boot(enum action what)
+#if ENABLE_FEATURE_SUN_LABEL || ENABLE_FEATURE_FDISK_WRITABLE
+static int get_boot(enum action what)
+#else
+static int get_boot(void)
+#define get_boot(what) get_boot()
+#endif
{
int i;
diff --git a/util-linux/script.c b/util-linux/script.c
index c37fd9d61..1c95ea550 100644
--- a/util-linux/script.c
+++ b/util-linux/script.c
@@ -29,7 +29,7 @@ int script_main(int argc ATTRIBUTE_UNUSED, char **argv)
int attr_ok; /* NB: 0: ok */
int winsz_ok;
int pty;
- char pty_line[32];
+ char pty_line[GETPTY_BUFSIZE];
struct termios tt, rtt;
struct winsize win;
const char *fname = "typescript";
@@ -69,7 +69,7 @@ int script_main(int argc ATTRIBUTE_UNUSED, char **argv)
shell = DEFAULT_SHELL;
}
- pty = getpty(pty_line, sizeof(pty_line));
+ pty = getpty(pty_line);
if (pty < 0) {
bb_perror_msg_and_die("can't get pty");
}
diff --git a/util-linux/volume_id/get_devname.c b/util-linux/volume_id/get_devname.c
index 75060b0d8..af03d07a3 100644
--- a/util-linux/volume_id/get_devname.c
+++ b/util-linux/volume_id/get_devname.c
@@ -26,6 +26,10 @@ static struct uuidCache_s {
} *uuidCache;
/* for now, only ext2, ext3 and xfs are supported */
+#if !ENABLE_FEATURE_VOLUMEID_ISO9660
+#define get_label_uuid(device, label, uuid, iso_only) \
+ get_label_uuid(device, label, uuid)
+#endif
static int
get_label_uuid(const char *device, char **label, char **uuid, int iso_only)
{
@@ -83,6 +87,10 @@ uuidcache_addentry(char * device, int major, int minor, char *label, char *uuid)
memcpy(last->uuid, uuid, sizeof(last->uuid));
}
+#if !ENABLE_FEATURE_VOLUMEID_ISO9660
+#define uuidcache_check_device(device_name, ma, mi, iso_only) \
+ uuidcache_check_device(device_name, ma, mi)
+#endif
static void
uuidcache_check_device(const char *device_name, int ma, int mi, int iso_only)
{