libiproute: rename invarg(a,b) to invarg_1_to_2(a,b)
authorDenys Vlasenko <vda.linux@googlemail.com>
Wed, 14 Oct 2015 11:21:01 +0000 (13:21 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Wed, 14 Oct 2015 11:21:01 +0000 (13:21 +0200)
invarg(a,b) - "invalid argument", but how a and b enter the message?

invarg_1_to_2(a,b) is somewhat easier to read: "invalid argument 'a' to 'b'"

Audit of usage revealed a number of bad uses, with too long messages.

   text    data     bss     dec     hex filename
 938848     932   17448  957228   e9b2c busybox_old
 938788     932   17448  957168   e9af0 busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
16 files changed:
coreutils/dd.c
findutils/find.c
include/libbb.h
libbb/messages.c
networking/brctl.c
networking/libiproute/ip_parse_common_args.c
networking/libiproute/ipaddress.c
networking/libiproute/iplink.c
networking/libiproute/ipneigh.c
networking/libiproute/iproute.c
networking/libiproute/iprule.c
networking/libiproute/iptunnel.c
networking/libiproute/utils.c
networking/libiproute/utils.h
networking/slattach.c
networking/tc.c

index 53a843ca0c90091021da812d050e54dec4ecd12c..6a5288da17754b97718d4873006a07ac5556f786 100644 (file)
@@ -326,7 +326,7 @@ int dd_main(int argc UNUSED_PARAM, char **argv)
                                        *arg = '\0';
                                n = index_in_strings(conv_words, val);
                                if (n < 0)
-                                       bb_error_msg_and_die(bb_msg_invalid_arg, val, "conv");
+                                       bb_error_msg_and_die(bb_msg_invalid_arg_to, val, "conv");
                                G.flags |= (1 << n);
                                if (!arg) /* no ',' left, so this was the last specifier */
                                        break;
@@ -368,7 +368,7 @@ int dd_main(int argc UNUSED_PARAM, char **argv)
                        int n;
                        n = index_in_strings(status_words, val);
                        if (n < 0)
-                               bb_error_msg_and_die(bb_msg_invalid_arg, val, "status");
+                               bb_error_msg_and_die(bb_msg_invalid_arg_to, val, "status");
                        G.flags |= FLAG_STATUS << n;
                        /*continue;*/
                }
index 5bd75353676668aabfdbb4d1260466b78d183e65..a0d4853defb730e86f384210239b871a15eb0864 100644 (file)
@@ -882,7 +882,7 @@ static int find_type(const char *type)
                mask = S_IFSOCK;
 
        if (mask == 0 || type[1] != '\0')
-               bb_error_msg_and_die(bb_msg_invalid_arg, type, "-type");
+               bb_error_msg_and_die(bb_msg_invalid_arg_to, type, "-type");
 
        return mask;
 }
index 5a270cdca8d408bf9f21ce4fe39256e1f0514698..f04f555c0d86cb780e4801ff8d9fd53c0f1dffe4 100644 (file)
@@ -1786,7 +1786,7 @@ extern const char bb_msg_can_not_create_raw_socket[] ALIGN1;
 extern const char bb_msg_perm_denied_are_you_root[] ALIGN1;
 extern const char bb_msg_you_must_be_root[] ALIGN1;
 extern const char bb_msg_requires_arg[] ALIGN1;
-extern const char bb_msg_invalid_arg[] ALIGN1;
+extern const char bb_msg_invalid_arg_to[] ALIGN1;
 extern const char bb_msg_standard_input[] ALIGN1;
 extern const char bb_msg_standard_output[] ALIGN1;
 
index c1b7ba25220c4ae5aea49c9bd4ad41b160fa38bb..23e440bcdf0ef81e81524a41714fce1499b29014 100644 (file)
@@ -29,7 +29,7 @@ const char bb_msg_can_not_create_raw_socket[] ALIGN1 = "can't create raw socket"
 const char bb_msg_perm_denied_are_you_root[] ALIGN1 = "permission denied (are you root?)";
 const char bb_msg_you_must_be_root[] ALIGN1 = "you must be root";
 const char bb_msg_requires_arg[] ALIGN1 = "%s requires an argument";
-const char bb_msg_invalid_arg[] ALIGN1 = "invalid argument '%s' to '%s'";
+const char bb_msg_invalid_arg_to[] ALIGN1 = "invalid argument '%s' to '%s'";
 const char bb_msg_standard_input[] ALIGN1 = "standard input";
 const char bb_msg_standard_output[] ALIGN1 = "standard output";
 
index c01a86998c71e56c0d9a7a14cad2245bd1ce2c26..b7320966a8cba4799449f11560a7146f61b045f0 100644 (file)
@@ -128,7 +128,7 @@ static ALWAYS_INLINE void bb_strtotimeval(struct timeval *tv,
 # else
        if (sscanf(time_str, "%lf", &secs) != 1)
 # endif
-               bb_error_msg_and_die(bb_msg_invalid_arg, time_str, "timespec");
+               bb_error_msg_and_die(bb_msg_invalid_arg_to, time_str, "timespec");
        tv->tv_sec = secs;
        tv->tv_usec = 1000000 * (secs - tv->tv_sec);
 }
@@ -205,7 +205,7 @@ int brctl_main(int argc UNUSED_PARAM, char **argv)
 
                key = index_in_strings(keywords, *argv);
                if (key == -1) /* no match found in keywords array, bail out. */
-                       bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
+                       bb_error_msg_and_die(bb_msg_invalid_arg_to, *argv, applet_name);
                argv++;
                fd = xsocket(AF_INET, SOCK_STREAM, 0);
 
@@ -299,7 +299,7 @@ int brctl_main(int argc UNUSED_PARAM, char **argv)
                                "1\0" "on\0"  "y\0" "yes\0"; /* 4 .. 7 */
                        int onoff = index_in_strings(no_yes, *argv);
                        if (onoff < 0)
-                               bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
+                               bb_error_msg_and_die(bb_msg_invalid_arg_to, *argv, applet_name);
                        onoff = (unsigned)onoff / 4;
                        arm_ioctl(args, BRCTL_SET_BRIDGE_STP_STATE, onoff, 0);
                        goto fire;
@@ -332,7 +332,7 @@ int brctl_main(int argc UNUSED_PARAM, char **argv)
 
                                port = if_nametoindex(*argv++);
                                if (!port)
-                                       bb_error_msg_and_die(bb_msg_invalid_arg, *argv, "port");
+                                       bb_error_msg_and_die(bb_msg_invalid_arg_to, *argv, "port");
                                memset(ifidx, 0, sizeof ifidx);
                                arm_ioctl(args, BRCTL_GET_PORT_LIST, (unsigned long)ifidx,
                                                MAX_PORTS);
index 59c759b239553703cb22e61d04137f4eb1193132..1a298f738082a198be03e641c15771db56805ebc 100644 (file)
@@ -67,7 +67,7 @@ char** FAST_FUNC ip_parse_common_args(char **argv)
                                bb_show_usage();
                        arg = index_in_strings(families, *argv);
                        if (arg < 0)
-                               invarg(*argv, "protocol family");
+                               invarg_1_to_2(*argv, "family");
                        /* now arg == 0, 1 or 2 */
                } else {
                        arg -= ARG_IPv4;
index 8845cab917c94b8f9597b5907f13607183efd408..c0f27c70ded11b1671206e0c29e2e10b759eecb4 100644 (file)
@@ -455,7 +455,7 @@ int FAST_FUNC ipaddr_list_or_flush(char **argv, int flush)
                        G_filter.scopemask = -1;
                        if (rtnl_rtscope_a2n(&scope, *argv)) {
                                if (strcmp(*argv, "all") != 0) {
-                                       invarg(*argv, "scope");
+                                       invarg_1_to_2(*argv, "scope");
                                }
                                scope = RT_SCOPE_NOWHERE;
                                G_filter.scopemask = 0;
@@ -669,7 +669,7 @@ static int ipaddr_modify(int cmd, int flags, char **argv)
                } else if (arg == 5) { /* scope */
                        uint32_t scope = 0;
                        if (rtnl_rtscope_a2n(&scope, *argv)) {
-                               invarg(*argv, "scope");
+                               invarg_1_to_2(*argv, "scope");
                        }
                        req.ifa.ifa_scope = scope;
                        scoped = 1;
@@ -751,7 +751,7 @@ int FAST_FUNC do_ipaddr(char **argv)
        if (*argv) {
                cmd = index_in_substrings(commands, *argv);
                if (cmd < 0)
-                       invarg(*argv, applet_name);
+                       invarg_1_to_2(*argv, applet_name);
                argv++;
                if (cmd <= 4) {
                        return ipaddr_modify(
index 5c27c2de365d8a3a8348ec937be0bf09b4d35803..ae3ef0ceb2cc7f630da1093c385975027086f9c4 100644 (file)
@@ -349,7 +349,7 @@ static void vlan_parse_opt(char **argv, struct nlmsghdr *n, unsigned int size)
        while (*argv) {
                arg = index_in_substrings(keywords, *argv);
                if (arg < 0)
-                       invarg(*argv, "type vlan");
+                       invarg_1_to_2(*argv, "type vlan");
 
                NEXT_ARG();
                if (arg == ARG_id) {
@@ -512,7 +512,7 @@ static int do_add_or_delete(char **argv, const unsigned rtm)
        if (name_str) {
                const size_t name_len = strlen(name_str) + 1;
                if (name_len < 2 || name_len > IFNAMSIZ)
-                       invarg(name_str, "name");
+                       invarg_1_to_2(name_str, "name");
                addattr_l(&req.n, sizeof(req), IFLA_IFNAME, name_str, name_len);
        }
        if (rtnl_talk(&rth, &req.n, 0, 0, NULL, NULL, NULL) < 0)
@@ -536,14 +536,14 @@ static int do_add_or_delete(char **argv, const unsigned rtm)
                        if (qlen != -1)
                                duparg("txqueuelen", *argv);
                        if (get_integer(&qlen,  *argv, 0))
-                               invarg("Invalid \"txqueuelen\" value\n", *argv);
+                               invarg_1_to_2(*argv, "txqueuelen");
                        addattr_l(&req->n, sizeof(*req), IFLA_TXQLEN, &qlen, 4);
                } else if (strcmp(*argv, "mtu") == 0) {
                        NEXT_ARG();
                        if (mtu != -1)
                                duparg("mtu", *argv);
                        if (get_integer(&mtu, *argv, 0))
-                               invarg("Invalid \"mtu\" value\n", *argv);
+                               invarg_1_to_2(*argv, "mtu");
                        addattr_l(&req->n, sizeof(*req), IFLA_MTU, &mtu, 4);
                 } else if (strcmp(*argv, "netns") == 0) {
                         NEXT_ARG();
@@ -554,7 +554,7 @@ static int do_add_or_delete(char **argv, const unsigned rtm)
                        else if (get_integer(&netns, *argv, 0) == 0)
                                addattr_l(&req->n, sizeof(*req), IFLA_NET_NS_PID, &netns, 4);
                        else
-                                invarg("Invalid \"netns\" value\n", *argv);
+                                invarg_1_to_2(*argv, "netns");
                } else if (strcmp(*argv, "multicast") == 0) {
                        NEXT_ARG();
                        req->i.ifi_change |= IFF_MULTICAST;
@@ -604,7 +604,7 @@ static int do_add_or_delete(char **argv, const unsigned rtm)
                        struct rtattr *vflist;
                        NEXT_ARG();
                        if (get_integer(&vf,  *argv, 0)) {
-                               invarg("Invalid \"vf\" value\n", *argv);
+                               invarg_1_to_2(*argv, "vf");
                        }
                        vflist = addattr_nest(&req->n, sizeof(*req),
                                              IFLA_VFINFO_LIST);
@@ -617,7 +617,7 @@ static int do_add_or_delete(char **argv, const unsigned rtm)
                        NEXT_ARG();
                        ifindex = ll_name_to_index(*argv);
                        if (!ifindex)
-                               invarg("Device does not exist\n", *argv);
+                               invarg_1_to_2(*argv, "master");
                        addattr_l(&req->n, sizeof(*req), IFLA_MASTER,
                                  &ifindex, 4);
                } else if (matches(*argv, "nomaster") == 0) {
@@ -644,28 +644,27 @@ static int do_add_or_delete(char **argv, const unsigned rtm)
                        if (*group != -1)
                                duparg("group", *argv);
                        if (rtnl_group_a2n(group, *argv))
-                               invarg("Invalid \"group\" value\n", *argv);
+                               invarg_1_to_2(*argv, "group");
                } else if (strcmp(*argv, "mode") == 0) {
                        int mode;
                        NEXT_ARG();
                        mode = get_link_mode(*argv);
                        if (mode < 0)
-                               invarg("Invalid link mode\n", *argv);
+                               invarg_1_to_2(*argv, "mode");
                        addattr8(&req->n, sizeof(*req), IFLA_LINKMODE, mode);
                } else if (strcmp(*argv, "state") == 0) {
                        int state;
                        NEXT_ARG();
                        state = get_operstate(*argv);
                        if (state < 0)
-                               invarg("Invalid operstate\n", *argv);
-
+                               invarg_1_to_2(*argv, "state");
                        addattr8(&req->n, sizeof(*req), IFLA_OPERSTATE, state);
                } else if (matches(*argv, "numtxqueues") == 0) {
                        NEXT_ARG();
                        if (numtxqueues != -1)
                                duparg("numtxqueues", *argv);
                        if (get_integer(&numtxqueues, *argv, 0))
-                               invarg("Invalid \"numtxqueues\" value\n", *argv);
+                               invarg_1_to_2(*argv, "numtxqueues");
                        addattr_l(&req->n, sizeof(*req), IFLA_NUM_TX_QUEUES,
                                  &numtxqueues, 4);
                } else if (matches(*argv, "numrxqueues") == 0) {
@@ -673,7 +672,7 @@ static int do_add_or_delete(char **argv, const unsigned rtm)
                        if (numrxqueues != -1)
                                duparg("numrxqueues", *argv);
                        if (get_integer(&numrxqueues, *argv, 0))
-                               invarg("Invalid \"numrxqueues\" value\n", *argv);
+                               invarg_1_to_2(*argv, "numrxqueues");
                        addattr_l(&req->n, sizeof(*req), IFLA_NUM_RX_QUEUES,
                                  &numrxqueues, 4);
                }
@@ -687,7 +686,7 @@ int FAST_FUNC do_iplink(char **argv)
        if (*argv) {
                int key = index_in_substrings(keywords, *argv);
                if (key < 0) /* invalid argument */
-                       invarg(*argv, applet_name);
+                       invarg_1_to_2(*argv, applet_name);
                argv++;
                if (key <= 1) /* add/delete */
                        return do_add_or_delete(argv, key ? RTM_DELLINK : RTM_NEWLINK);
index 03a15d84516006bbc25330b2acee2a2746057fb1..6588c12f1a09a0ba648eed0019416f7f4258414e 100644 (file)
@@ -75,7 +75,7 @@ static unsigned nud_state_a2n(char *arg)
 
        id = index_in_substrings(keywords, arg);
        if (id < 0)
-               bb_error_msg_and_die(bb_msg_invalid_arg, arg, "nud state");
+               bb_error_msg_and_die(bb_msg_invalid_arg_to, arg, "nud state");
        return nuds[id];
 }
 
@@ -281,9 +281,9 @@ static int FAST_FUNC ipneigh_list_or_flush(char **argv, int flush)
        ll_init_map(&rth);
 
        if (filter_dev)  {
-               if ((G_filter.index = xll_name_to_index(filter_dev)) == 0) {
-                       bb_error_msg_and_die(bb_msg_invalid_arg,
-                                            filter_dev, "Cannot find device");
+               G_filter.index = xll_name_to_index(filter_dev);
+               if (G_filter.index == 0) {
+                       bb_error_msg_and_die("can't find device '%s'", filter_dev);
                }
        }
 
@@ -349,6 +349,6 @@ int FAST_FUNC do_ipneigh(char **argv)
                case 1: /* flush */
                        return ipneigh_list_or_flush(argv + 1, 1);
        }
-       invarg(*argv, applet_name);
+       invarg_1_to_2(*argv, applet_name);
        return 1;
 }
index f7209b126616cdf6464cc90bb1bb29c1dc12bd87..0d291440547dfb5e30ec7b5f4137bef98e511abd 100644 (file)
@@ -403,7 +403,7 @@ IF_FEATURE_IP_RULE(ARG_table,)
                        uint32_t prot;
                        NEXT_ARG();
                        if (rtnl_rtprot_a2n(&prot, *argv))
-                               invarg(*argv, "protocol");
+                               invarg_1_to_2(*argv, "protocol");
                        req.r.rtm_protocol = prot;
                        ok |= proto_ok;
 #if ENABLE_FEATURE_IP_RULE
@@ -411,7 +411,7 @@ IF_FEATURE_IP_RULE(ARG_table,)
                        uint32_t tid;
                        NEXT_ARG();
                        if (rtnl_rttable_a2n(&tid, *argv))
-                               invarg(*argv, "table");
+                               invarg_1_to_2(*argv, "table");
                        req.r.rtm_table = tid;
 #endif
                } else if (arg == ARG_dev || arg == ARG_oif) {
@@ -597,7 +597,7 @@ static int iproute_list_or_flush(char **argv, int flush)
                        //G_filter.protocolmask = -1;
                        if (rtnl_rtprot_a2n(&prot, *argv)) {
                                if (index_in_strings(keywords, *argv) != KW_all)
-                                       invarg(*argv, "protocol");
+                                       invarg_1_to_2(*argv, "protocol");
                                prot = 0;
                                //G_filter.protocolmask = 0;
                        }
@@ -622,10 +622,10 @@ static int iproute_list_or_flush(char **argv, int flush)
 #if ENABLE_FEATURE_IP_RULE
                                uint32_t tid;
                                if (rtnl_rttable_a2n(&tid, *argv))
-                                       invarg(*argv, "table");
+                                       invarg_1_to_2(*argv, "table");
                                G_filter.tb = tid;
 #else
-                               invarg(*argv, "table");
+                               invarg_1_to_2(*argv, "table");
 #endif
                        }
                } else if (arg == KW_cache) {
@@ -932,7 +932,7 @@ int FAST_FUNC do_iproute(char **argv)
                case 11: /* flush */
                        return iproute_list_or_flush(argv+1, 1);
                default:
-                       invarg(*argv, applet_name);
+                       invarg_1_to_2(*argv, applet_name);
        }
 
        return iproute_modify(cmd, flags, argv+1);
index 774a3e220700ad964a52eb3589dd7ce6899be35f..c3b2109829d52080757ed9016b7126f57065c0d2 100644 (file)
@@ -214,7 +214,7 @@ static int iprule_modify(int cmd, char **argv)
        while (*argv) {
                key = index_in_substrings(keywords, *argv) + 1;
                if (key == 0) /* no match found in keywords array, bail out. */
-                       invarg(*argv, applet_name);
+                       invarg_1_to_2(*argv, applet_name);
                if (key == ARG_from) {
                        inet_prefix dst;
                        NEXT_ARG();
@@ -239,7 +239,7 @@ static int iprule_modify(int cmd, char **argv)
                        uint32_t tos;
                        NEXT_ARG();
                        if (rtnl_dsfield_a2n(&tos, *argv))
-                               invarg(*argv, "TOS");
+                               invarg_1_to_2(*argv, "TOS");
                        req.r.rtm_tos = tos;
                } else if (key == ARG_fwmark) {
                        uint32_t fwmark;
@@ -250,7 +250,7 @@ static int iprule_modify(int cmd, char **argv)
                        uint32_t realm;
                        NEXT_ARG();
                        if (get_rt_realms(&realm, *argv))
-                               invarg(*argv, "realms");
+                               invarg_1_to_2(*argv, "realms");
                        addattr32(&req.n, sizeof(req), RTA_FLOW, realm);
                } else if (key == ARG_table ||
                           key == ARG_lookup
@@ -258,7 +258,7 @@ static int iprule_modify(int cmd, char **argv)
                        uint32_t tid;
                        NEXT_ARG();
                        if (rtnl_rttable_a2n(&tid, *argv))
-                               invarg(*argv, "table ID");
+                               invarg_1_to_2(*argv, "table ID");
                        req.r.rtm_table = tid;
                        table_ok = 1;
                } else if (key == ARG_dev ||
@@ -281,7 +281,7 @@ static int iprule_modify(int cmd, char **argv)
                        if (key == ARG_help)
                                bb_show_usage();
                        if (rtnl_rtntype_a2n(&type, *argv))
-                               invarg(*argv, "type");
+                               invarg_1_to_2(*argv, "type");
                        req.r.rtm_type = type;
                }
                argv++;
@@ -309,7 +309,7 @@ int FAST_FUNC do_iprule(char **argv)
        if (*argv) {
                int cmd = index_in_substrings(ip_rule_commands, *argv);
                if (cmd < 0)
-                       invarg(*argv, applet_name);
+                       invarg_1_to_2(*argv, applet_name);
                argv++;
                if (cmd < 2)
                        return iprule_modify((cmd == 0) ? RTM_NEWRULE : RTM_DELRULE, argv);
index a65d5e579d94cba856771d71385cea6c6a1b5c6c..b88c3a40137a03e9ad247b7109aa9c76fc26322d 100644 (file)
@@ -294,7 +294,7 @@ static void parse_args(char **argv, int cmd, struct ip_tunnel_parm *p)
                        if (key != ARG_inherit) {
                                uval = get_unsigned(*argv, "TTL");
                                if (uval > 255)
-                                       invarg(*argv, "TTL must be <=255");
+                                       invarg_1_to_2(*argv, "TTL");
                                p->iph.ttl = uval;
                        }
                } else if (key == ARG_tos ||
@@ -305,7 +305,7 @@ static void parse_args(char **argv, int cmd, struct ip_tunnel_parm *p)
                        key = index_in_strings(keywords, *argv);
                        if (key != ARG_inherit) {
                                if (rtnl_dsfield_a2n(&uval, *argv))
-                                       invarg(*argv, "TOS");
+                                       invarg_1_to_2(*argv, "TOS");
                                p->iph.tos = uval;
                        } else
                                p->iph.tos = 1;
@@ -562,7 +562,7 @@ int FAST_FUNC do_iptunnel(char **argv)
        if (*argv) {
                int key = index_in_substrings(keywords, *argv);
                if (key < 0)
-                       invarg(*argv, applet_name);
+                       invarg_1_to_2(*argv, applet_name);
                argv++;
                if (key == ARG_add)
                        return do_add(SIOCADDTUNNEL, argv);
index 37b5311f0a6d7f4f97ba934a975a223d8f218f7a..7f7cb420320ef631a696f3398fd8d2a9cfb05a59 100644 (file)
@@ -47,7 +47,7 @@ unsigned get_unsigned(char *arg, const char *errmsg)
                        return res;
                }
        }
-       invarg(arg, errmsg); /* does not return */
+       invarg_1_to_2(arg, errmsg); /* does not return */
 }
 
 uint32_t get_u32(char *arg, const char *errmsg)
@@ -62,7 +62,7 @@ uint32_t get_u32(char *arg, const char *errmsg)
                        return res;
                }
        }
-       invarg(arg, errmsg); /* does not return */
+       invarg_1_to_2(arg, errmsg); /* does not return */
 }
 
 uint16_t get_u16(char *arg, const char *errmsg)
@@ -77,7 +77,7 @@ uint16_t get_u16(char *arg, const char *errmsg)
                        return res;
                }
        }
-       invarg(arg, errmsg); /* does not return */
+       invarg_1_to_2(arg, errmsg); /* does not return */
 }
 
 int get_addr_1(inet_prefix *addr, char *name, int family)
@@ -230,12 +230,12 @@ uint32_t get_addr32(char *name)
 
 void incomplete_command(void)
 {
-       bb_error_msg_and_die("command line is not complete, try option \"help\"");
+       bb_error_msg_and_die("command line is not complete, try \"help\"");
 }
 
-void invarg(const char *arg, const char *opt)
+void invarg_1_to_2(const char *arg, const char *opt)
 {
-       bb_error_msg_and_die(bb_msg_invalid_arg, arg, opt);
+       bb_error_msg_and_die(bb_msg_invalid_arg_to, arg, opt);
 }
 
 void duparg(const char *key, const char *arg)
index cd15b706be681e9d99d8a89dd7a0dc8e42c0cefe..9bbed6481df1f711f33d54d7027946e91bfe2381 100644 (file)
@@ -74,7 +74,7 @@ extern const char *format_host(int af, int len, void *addr, char *buf, int bufle
        rt_addr_n2a(af, addr, buf, buflen)
 #endif
 
-void invarg(const char *, const char *) NORETURN;
+void invarg_1_to_2(const char *, const char *) NORETURN;
 void duparg(const char *, const char *) NORETURN;
 void duparg2(const char *, const char *) NORETURN;
 int inet_addr_match(const inet_prefix *a, const inet_prefix *b, int bits);
index a500da6d061735df93f2a1bf337563c687d0034b..14e0c1941361ef66b811913271a30d386f21c929 100644 (file)
@@ -27,7 +27,7 @@
 //usage:     "\n       -F      Disable RTS/CTS flow control"
 
 #include "libbb.h"
-#include "libiproute/utils.h" /* invarg() */
+#include "libiproute/utils.h" /* invarg_1_to_2() */
 
 struct globals {
        int handle;
@@ -175,7 +175,7 @@ int slattach_main(int argc UNUSED_PARAM, char **argv)
        encap = index_in_strings(proto_names, proto);
 
        if (encap < 0)
-               invarg(proto, "protocol");
+               invarg_1_to_2(proto, "protocol");
        if (encap > 3)
                encap = 8;
 
@@ -183,7 +183,7 @@ int slattach_main(int argc UNUSED_PARAM, char **argv)
        if (opt & OPT_s_baud) {
                baud_code = tty_value_to_baud(xatoi(baud_str));
                if (baud_code < 0)
-                       invarg(baud_str, "baud rate");
+                       invarg_1_to_2(baud_str, "baud rate");
        }
 
        /* Trap signals in order to restore tty states upon exit */
index 6d1fef9931fc48ec527357157db3359263e327d4..c84c18a67516016e5c1de701006705ed16595db0 100644 (file)
@@ -459,14 +459,14 @@ int tc_main(int argc UNUSED_PARAM, char **argv)
 
        obj = index_in_substrings(objects, *argv++);
 
-       if (obj < OBJ_qdisc)
+       if (obj < 0)
                bb_show_usage();
        if (!*argv)
                cmd = CMD_show; /* list is the default */
        else {
                cmd = index_in_substrings(commands, *argv);
                if (cmd < 0)
-                       bb_error_msg_and_die(bb_msg_invalid_arg, *argv, applet_name);
+                       invarg_1_to_2(*argv, argv[-1]);
                argv++;
        }
        memset(&msg, 0, sizeof(msg));
@@ -489,7 +489,7 @@ int tc_main(int argc UNUSED_PARAM, char **argv)
                        NEXT_ARG();
                        /* We don't care about duparg2("qdisc handle",*argv) for now */
                        if (get_qdisc_handle(&filter_qdisc, *argv))
-                               invarg(*argv, "qdisc");
+                               invarg_1_to_2(*argv, "qdisc");
                } else
                if (obj != OBJ_qdisc
                 && (arg == ARG_root
@@ -499,7 +499,7 @@ int tc_main(int argc UNUSED_PARAM, char **argv)
                ) {
                        /* nothing */
                } else {
-                       invarg(*argv, "command");
+                       invarg_1_to_2(*argv, "command");
                }
                NEXT_ARG();
                if (arg == ARG_root) {
@@ -513,7 +513,7 @@ int tc_main(int argc UNUSED_PARAM, char **argv)
                        if (msg.tcm_parent)
                                duparg(*argv, "parent");
                        if (get_tc_classid(&handle, *argv))
-                               invarg(*argv, "parent");
+                               invarg_1_to_2(*argv, "parent");
                        msg.tcm_parent = handle;
                        if (obj == OBJ_filter)
                                filter_parent = handle;
@@ -538,7 +538,7 @@ int tc_main(int argc UNUSED_PARAM, char **argv)
                        if (filter_proto)
                                duparg(*argv, "protocol");
                        if (ll_proto_a2n(&tmp, *argv))
-                               invarg(*argv, "protocol");
+                               invarg_1_to_2(*argv, "protocol");
                        filter_proto = tmp;
                }
        }