This fixes display of hex SSIDs in 'ifconfig joinlist' and prevents a
negative number being passed to printf on the following line when 'maxlen'
ends up being capped below the maximum value returned from len_string():

                printf("%-*s", maxlen - len, " ");

Hex SSIDs can be as wide as IEEE80211_NWID_LEN * 2 + 2 /* "0x" */

ok?

diff c20bd74017ceeadb2db0f78a352ed1f1e2b77c2b /usr/src
blob - e1dc9dbb07bf109c3ec7f5fd4d851a7dbb5692f1
file + sbin/ifconfig/ifconfig.c
--- sbin/ifconfig/ifconfig.c
+++ sbin/ifconfig/ifconfig.c
@@ -2571,16 +2571,14 @@ join_status(void)
 
        maxlen = 0;
        for (i = 0; i < ja.ja_nodes; i++) {
                len = len_string(jn[i].i_nwid, jn[i].i_len);
                if (len > maxlen)
                        maxlen = len;
        }
-       if (maxlen > IEEE80211_NWID_LEN)
-               maxlen = IEEE80211_NWID_LEN - 1;
 
        for (i = 0; i < ja.ja_nodes; i++) {
                printf("\t      ");
                if (jn[i].i_len > IEEE80211_NWID_LEN)
                        jn[i].i_len = IEEE80211_NWID_LEN;
                len = print_string(jn[i].i_nwid, jn[i].i_len);
                printf("%-*s", maxlen - len, " ");

Reply via email to