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, " ");