preparatory patch for -Wwrite-strings #4
No binary (build failed)
—
(log yok)
| @@ -497,7 +497,7 @@ static action*** parse_params(char **argv) | |
| } | |
| ap = ALLOC_ACTION(paren); | |
| ap->subexpr = parse_params(argv + 1); | |
| - | *endarg = ")"; /* restore NULLed parameter */ |
| + | *endarg = (char*) ")"; /* restore NULLed parameter */ |
| argv = endarg; | |
| } | |
| else if (strcmp(arg, "-prune") == 0) { | |
| @@ -537,7 +537,7 @@ int find_main(int argc, char **argv) | |
| #endif | |
| } | |
| if (firstopt == 1) { | |
| - | argv[0] = "."; |
| + | argv[0] = (char*)"."; |
| argv--; | |
| firstopt++; | |
| } | |
| @@ -553,7 +553,7 @@ int find_main(int argc, char **argv) | |
| while ((arg = argp[0])) { | |
| if (strcmp(arg, "-follow") == 0) { | |
| dereference = TRUE; | |
| - | argp[0] = "-a"; |
| + | argp[0] = (char*)"-a"; |
| } | |
| #if ENABLE_FEATURE_FIND_XDEV | |
| else if (strcmp(arg, "-xdev") == 0) { | |
| @@ -569,7 +569,7 @@ int find_main(int argc, char **argv) | |
| xdev_dev[i-1] = stbuf.st_dev; | |
| } | |
| } | |
| - | argp[0] = "-a"; |
| + | argp[0] = (char*)"-a"; |
| } | |
| #endif | |
| argp++; | |
| @@ -81,8 +81,8 @@ static int num_ok_lines = 1; | |
| #endif | |
| #if ENABLE_FEATURE_GETUSERNAME_AND_HOMEDIR | |
| - | static char *user_buf = ""; |
| - | static char *home_pwd_buf = ""; |
| + | static char *user_buf = (char*)""; |
| + | static char *home_pwd_buf = (char*)""; |
| #endif | |
| #if ENABLE_FEATURE_TAB_COMPLETION | |
| @@ -422,7 +422,7 @@ static void exe_n_cwd_tab_completion(char *command, int type) | |
| char *pfind = strrchr(command, '/'); | |
| npaths = 1; | |
| - | path1[0] = "."; |
| + | path1[0] = (char*)"."; |
| if (pfind == NULL) { | |
| /* no dir, if flags==EXE_ONLY - get paths, else "." */ | |
| @@ -447,7 +447,7 @@ static void exe_n_cwd_tab_completion(char *command, int type) | |
| while ((next = readdir(dir)) != NULL) { | |
| int len1; | |
| - | char *str_found = next->d_name; |
| + | const char *str_found = next->d_name; |
| /* matched? */ | |
| if (strncmp(str_found, pfind, strlen(pfind))) | |
| @@ -2540,7 +2540,7 @@ new_process_module_arguments(struct obj_file *f, int argc, char **argv) | |
| } else { | |
| /* last string */ | |
| str = q; | |
| - | q = ""; |
| + | q = (char*)""; |
| } | |
| } | |
| @@ -46,7 +46,7 @@ static const struct aftype *ap; /* current address family */ | |
| static const struct hwtype *hw; /* current hardware type */ | |
| static int sockfd; /* active socket descriptor */ | |
| static smallint hw_set; /* flag if hw-type was set (-H) */ | |
| - | static char *device = ""; /* current device */ |
| + | static const char *device = ""; /* current device */ |
| static const char *const options[] = { | |
| "pub", | |
| @@ -317,7 +317,7 @@ static int arp_set(char **args) | |
| /* Print the contents of an ARP request block. */ | |
| static void | |
| - | arp_disp(char *name, char *ip, int type, int arp_flags, |
| + | arp_disp(const char *name, char *ip, int type, int arp_flags, |
| char *hwa, char *mask, char *dev) | |
| { | |
| const struct hwtype *xhw; | |
| @@ -371,7 +371,7 @@ static int arp_show(char *name) | |
| char dev[100]; | |
| int type, flags; | |
| FILE *fp; | |
| - | char *hostname; |
| + | const char *hostname; |
| int num; | |
| unsigned entries = 0, shown = 0; | |
| @@ -653,17 +653,16 @@ static char *encodeString(const char *string) | |
| /* take the simple route and encode everything */ | |
| /* could possibly scan once to get length. */ | |
| int len = strlen(string); | |
| - | char *out = malloc(len * 6 + 1); |
| + | char *out = xmalloc(len * 6 + 1); |
| char *p = out; | |
| char ch; | |
| - | if (!out) return ""; |
| while ((ch = *string++)) { | |
| // very simple check for what to encode | |
| if (isalnum(ch)) *p++ = ch; | |
| else p += sprintf(p, "&#%d;", (unsigned char) ch); | |
| } | |
| - | *p = 0; |
| + | *p = '\0'; |
| return out; | |
| } | |
| #endif /* FEATURE_HTTPD_ENCODE_URL_STR */ | |
| @@ -1051,15 +1050,15 @@ static int sendCgi(const char *url, | |
| /* (Older versions of bbox seem to do some decoding) */ | |
| setenv1("QUERY_STRING", config->query); | |
| setenv1("SERVER_SOFTWARE", httpdVersion); | |
| - | putenv("SERVER_PROTOCOL=HTTP/1.0"); |
| - | putenv("GATEWAY_INTERFACE=CGI/1.1"); |
| + | putenv((char*)"SERVER_PROTOCOL=HTTP/1.0"); |
| + | putenv((char*)"GATEWAY_INTERFACE=CGI/1.1"); |
| /* Having _separate_ variables for IP and port defeats | |
| * the purpose of having socket abstraction. Which "port" | |
| * are you using on Unix domain socket? | |
| * IOW - REMOTE_PEER="1.2.3.4:56" makes much more sense. | |
| * Oh well... */ | |
| { | |
| - | char *p = config->rmt_ip_str ? : ""; |
| + | char *p = config->rmt_ip_str ? : (char*)""; |
| char *cp = strrchr(p, ':'); | |
| if (ENABLE_FEATURE_IPV6 && cp && strchr(cp, ']')) | |
| cp = NULL; | |
| @@ -1078,7 +1077,7 @@ static int sendCgi(const char *url, | |
| #if ENABLE_FEATURE_HTTPD_BASIC_AUTH | |
| if (config->remoteuser) { | |
| setenv1("REMOTE_USER", config->remoteuser); | |
| - | putenv("AUTH_TYPE=Basic"); |
| + | putenv((char*)"AUTH_TYPE=Basic"); |
| } | |
| #endif | |
| if (config->referer) | |
| @@ -842,7 +842,7 @@ static struct interfaces_file_t *read_interfaces(const char *filename) | |
| return defn; | |
| } | |
| - | static char *setlocalenv(char *format, const char *name, const char *value) |
| + | static char *setlocalenv(const char *format, const char *name, const char *value) |
| { | |
| char *result; | |
| char *here; | |
| @@ -85,7 +85,7 @@ static char *do_ioctl_get_ifname(int idx) | |
| - | static int do_get_ioctl(char *basedev, struct ip_tunnel_parm *p) |
| + | static int do_get_ioctl(const char *basedev, struct ip_tunnel_parm *p) |
| { | |
| struct ifreq ifr; | |
| int fd; | |
| @@ -102,7 +102,7 @@ static int do_get_ioctl(char *basedev, struct ip_tunnel_parm *p) | |
| return err; | |
| } | |
| - | static int do_add_ioctl(int cmd, char *basedev, struct ip_tunnel_parm *p) |
| + | static int do_add_ioctl(int cmd, const char *basedev, struct ip_tunnel_parm *p) |
| { | |
| struct ifreq ifr; | |
| int fd; | |
| @@ -123,7 +123,7 @@ static int do_add_ioctl(int cmd, char *basedev, struct ip_tunnel_parm *p) | |
| return err; | |
| } | |
| - | static int do_del_ioctl(char *basedev, struct ip_tunnel_parm *p) |
| + | static int do_del_ioctl(const char *basedev, struct ip_tunnel_parm *p) |
| { | |
| struct ifreq ifr; | |
| int fd; | |
| @@ -13,7 +13,7 @@ | |
| #include "libbb.h" | |
| #include "rt_names.h" | |
| - | static void rtnl_tab_initialize(char *file, const char **tab, int size) |
| + | static void rtnl_tab_initialize(const char *file, const char **tab, int size) |
| { | |
| char buf[512]; | |
| FILE *fp; | |
| @@ -30,10 +30,11 @@ static void rtnl_tab_initialize(char *file, const char **tab, int size) | |
| p++; | |
| if (*p == '#' || *p == '\n' || *p == 0) | |
| continue; | |
| - | if (sscanf(p, "0x%x %s\n", &id, namebuf) != 2 && |
| - | sscanf(p, "0x%x %s #", &id, namebuf) != 2 && |
| - | sscanf(p, "%d %s\n", &id, namebuf) != 2 && |
| - | sscanf(p, "%d %s #", &id, namebuf) != 2) { |
| + | if (sscanf(p, "0x%x %s\n", &id, namebuf) != 2 |
| + | && sscanf(p, "0x%x %s #", &id, namebuf) != 2 |
| + | && sscanf(p, "%d %s\n", &id, namebuf) != 2 |
| + | && sscanf(p, "%d %s #", &id, namebuf) != 2 |
| + | ) { |
| bb_error_msg("database %s is corrupted at %s", | |
| file, p); | |
| return; | |
| @@ -178,7 +178,7 @@ int get_prefix_1(inet_prefix * dst, char *arg, int family) | |
| slash = strchr(arg, '/'); | |
| if (slash) | |
| - | *slash = 0; |
| + | *slash = '\0'; |
| err = get_addr_1(dst, arg, family); | |
| if (err == 0) { | |
| switch (dst->family) { | |
| @@ -237,26 +237,22 @@ uint32_t get_addr32(char *name) | |
| void incomplete_command(void) | |
| { | |
| - | bb_error_msg("command line is not complete, try option \"help\""); |
| - | exit(-1); |
| + | bb_error_msg_and_die("command line is not complete, try option \"help\""); |
| } | |
| - | void invarg(const char * const arg, const char * const opt) |
| + | void invarg(const char *arg, const char *opt) |
| { | |
| - | bb_error_msg(bb_msg_invalid_arg, arg, opt); |
| - | exit(-1); |
| + | bb_error_msg_and_die(bb_msg_invalid_arg, arg, opt); |
| } | |
| - | void duparg(char *key, char *arg) |
| + | void duparg(const char *key, const char *arg) |
| { | |
| - | bb_error_msg("duplicate \"%s\": \"%s\" is the second value", key, arg); |
| - | exit(-1); |
| + | bb_error_msg_and_die("duplicate \"%s\": \"%s\" is the second value", key, arg); |
| } | |
| - | void duparg2(char *key, char *arg) |
| + | void duparg2(const char *key, const char *arg) |
| { | |
| - | bb_error_msg("either \"%s\" is duplicate, or \"%s\" is garbage", key, arg); |
| - | exit(-1); |
| + | bb_error_msg_and_die("either \"%s\" is duplicate, or \"%s\" is garbage", key, arg); |
| } | |
| int matches(const char *cmd, const char *pattern) | |
| @@ -75,9 +75,9 @@ extern int get_s8(int8_t *val, char *arg, int base); | |
| extern const char *format_host(int af, int len, void *addr, char *buf, int buflen); | |
| extern const char *rt_addr_n2a(int af, int len, void *addr, char *buf, int buflen); | |
| - | void invarg(const char * const, const char * const) ATTRIBUTE_NORETURN; |
| - | void duparg(char *, char *) ATTRIBUTE_NORETURN; |
| - | void duparg2(char *, char *) ATTRIBUTE_NORETURN; |
| + | void invarg(const char *, const char *) ATTRIBUTE_NORETURN; |
| + | void duparg(const char *, const char *) ATTRIBUTE_NORETURN; |
| + | void duparg2(const char *, const char *) ATTRIBUTE_NORETURN; |
| int matches(const char *arg, const char *pattern); | |
| extern int inet_addr_match(inet_prefix *a, inet_prefix *b, int bits); | |
| @@ -42,26 +42,26 @@ static char *dir; | |
| #define usage() bb_show_usage() | |
| - | static void fatal2_cannot(char *m1, char *m2) |
| + | static void fatal2_cannot(const char *m1, const char *m2) |
| { | |
| bb_perror_msg_and_die("%s: fatal: cannot %s%s", dir, m1, m2); | |
| /* was exiting 111 */ | |
| } | |
| - | static void fatal_cannot(char *m) |
| + | static void fatal_cannot(const char *m) |
| { | |
| fatal2_cannot(m, ""); | |
| /* was exiting 111 */ | |
| } | |
| - | static void fatal2x_cannot(char *m1, char *m2) |
| + | static void fatal2x_cannot(const char *m1, const char *m2) |
| { | |
| bb_error_msg_and_die("%s: fatal: cannot %s%s", dir, m1, m2); | |
| /* was exiting 111 */ | |
| } | |
| - | static void warn_cannot(char *m) |
| + | static void warn_cannot(const char *m) |
| { | |
| bb_perror_msg("%s: warning: cannot %s", dir, m); | |
| } | |
| - | static void warnx_cannot(char *m) |
| + | static void warnx_cannot(const char *m) |
| { | |
| bb_error_msg("%s: warning: cannot %s", dir, m); | |
| } | |
| @@ -280,12 +280,12 @@ static void startservice(struct svdir *s) | |
| char *run[2]; | |
| if (s->state == S_FINISH) | |
| - | run[0] = "./finish"; |
| + | run[0] = (char*)"./finish"; |
| else { | |
| - | run[0] = "./run"; |
| + | run[0] = (char*)"./run"; |
| custom(s, 'u'); | |
| } | |
| - | run[1] = 0; |
| + | run[1] = NULL; |
| if (s->pid != 0) stopservice(s); /* should never happen */ | |
| while ((p = fork()) == -1) { | |
| @@ -28,20 +28,20 @@ static int exitsoon; | |
| static int pgrp; | |
| #define usage() bb_show_usage() | |
| - | static void fatal2_cannot(char *m1, char *m2) |
| + | static void fatal2_cannot(const char *m1, const char *m2) |
| { | |
| bb_perror_msg_and_die("%s: fatal: cannot %s%s", svdir, m1, m2); | |
| /* was exiting 100 */ | |
| } | |
| - | static void warn3x(char *m1, char *m2, char *m3) |
| + | static void warn3x(const char *m1, const char *m2, const char *m3) |
| { | |
| bb_error_msg("%s: warning: %s%s%s", svdir, m1, m2, m3); | |
| } | |
| - | static void warn2_cannot(char *m1, char *m2) |
| + | static void warn2_cannot(const char *m1, const char *m2) |
| { | |
| warn3x("cannot ", m1, m2); | |
| } | |
| - | static void warnx(char *m1) |
| + | static void warnx(const char *m1) |
| { | |
| warn3x(m1, "", ""); | |
| } | |
| @@ -55,7 +55,7 @@ static void s_hangup(int sig_no) | |
| exitsoon = 2; | |
| } | |
| - | static void runsv(int no, char *name) |
| + | static void runsv(int no, const char *name) |
| { | |
| int pid = fork(); | |
| @@ -67,8 +67,8 @@ static void runsv(int no, char *name) | |
| /* child */ | |
| char *prog[3]; | |
| - | prog[0] = "runsv"; |
| - | prog[1] = name; |
| + | prog[0] = (char*)"runsv"; |
| + | prog[1] = (char*)name; |
| prog[2] = NULL; | |
| sig_uncatch(SIGHUP); | |
| sig_uncatch(SIGTERM); | |
| @@ -75,7 +75,7 @@ static struct logdir { | |
| char match; | |
| char matcherr; | |
| } *dir; | |
| - | static unsigned dirn = 0; |
| + | static unsigned dirn; |
| #define FATAL "fatal: " | |
| #define WARNING "warning: " | |
| @@ -83,18 +83,18 @@ static unsigned dirn = 0; | |
| #define INFO "info: " | |
| #define usage() bb_show_usage() | |
| - | static void fatalx(char *m0) |
| + | static void fatalx(const char *m0) |
| { | |
| bb_error_msg_and_die(FATAL"%s", m0); | |
| } | |
| - | static void warn(char *m0) { |
| + | static void warn(const char *m0) { |
| bb_perror_msg(WARNING"%s", m0); | |
| } | |
| - | static void warn2(char *m0, char *m1) |
| + | static void warn2(const char *m0, const char *m1) |
| { | |
| bb_perror_msg(WARNING"%s: %s", m0, m1); | |
| } | |
| - | static void warnx(char *m0, char *m1) |
| + | static void warnx(const char *m0, const char *m1) |
| { | |
| bb_error_msg(WARNING"%s: %s", m0, m1); | |
| } | |
| @@ -103,12 +103,12 @@ static void pause_nomem(void) | |
| bb_error_msg(PAUSE"out of memory"); | |
| sleep(3); | |
| } | |
| - | static void pause1cannot(char *m0) |
| + | static void pause1cannot(const char *m0) |
| { | |
| bb_perror_msg(PAUSE"cannot %s", m0); | |
| sleep(3); | |
| } | |
| - | static void pause2cannot(char *m0, char *m1) |
| + | static void pause2cannot(const char *m0, const char *m1) |
| { | |
| bb_perror_msg(PAUSE"cannot %s %s", m0, m1); | |
| sleep(3); | |
| @@ -168,8 +168,8 @@ static unsigned processorstart(struct logdir *ld) | |
| bb_perror_msg_and_die(FATAL"cannot %s processor %s", "move filedescriptor for", ld->name); | |
| // getenv("SHELL")? | |
| - | prog[0] = "sh"; |
| - | prog[1] = "-c"; |
| + | prog[0] = (char*)"sh"; |
| + | prog[1] = (char*)"-c"; |
| prog[2] = ld->processor; | |
| prog[3] = '\0'; | |
| execve("/bin/sh", prog, environ); | |
| @@ -25,7 +25,7 @@ | |
| #define DEBUG 0 | |
| /* Path to the unix socket */ | |
| - | static char *dev_log_name; |
| + | static const char *dev_log_name; |
| /* Path for the file where all log messages are written */ | |
| static const char *logFilePath = "/var/log/messages"; | |
| @@ -444,7 +444,7 @@ static void split_escape_and_log(char *tmpbuf, int len) | |
| static void quit_signal(int sig) | |
| { | |
| - | timestamp_and_log(LOG_SYSLOG | LOG_INFO, "syslogd exiting", 0); |
| + | timestamp_and_log(LOG_SYSLOG | LOG_INFO, (char*)"syslogd exiting", 0); |
| puts("syslogd exiting"); | |
| unlink(dev_log_name); | |
| if (ENABLE_FEATURE_IPC_SYSLOG) | |
| @@ -455,7 +455,7 @@ static void quit_signal(int sig) | |
| static void do_mark(int sig) | |
| { | |
| if (markInterval) { | |
| - | timestamp_and_log(LOG_SYSLOG | LOG_INFO, "-- MARK --", 0); |
| + | timestamp_and_log(LOG_SYSLOG | LOG_INFO, (char*)"-- MARK --", 0); |
| alarm(markInterval); | |
| } | |
| } | |
| @@ -501,7 +501,8 @@ static void do_syslogd(void) | |
| ipcsyslog_init(); | |
| } | |
| - | timestamp_and_log(LOG_SYSLOG | LOG_INFO, "syslogd started: BusyBox v" BB_VER, 0); |
| + | timestamp_and_log(LOG_SYSLOG | LOG_INFO, |
| + | (char*)"syslogd started: BusyBox v" BB_VER, 0); |
| for (;;) { | |
| FD_ZERO(&fds); | |