summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorgavin <gavin@FreeBSD.org>2010-01-16 15:00:35 +0000
committergavin <gavin@FreeBSD.org>2010-01-16 15:00:35 +0000
commited8fa368b1d5c06d54b747fbc870e0666a613877 (patch)
treee645fc69e8c2246c432d430b5cbee477704de4a3 /sbin
parent57812555d54a1c6ded6bcb514062c1d2ceae1a8b (diff)
downloadFreeBSD-src-ed8fa368b1d5c06d54b747fbc870e0666a613877.zip
FreeBSD-src-ed8fa368b1d5c06d54b747fbc870e0666a613877.tar.gz
MFC r200587:
ifconfig(8) is documented to take a ISO 3166-1 country code to set the regulatory domain with the "country" parameter, but will also take a full country name. The man page warns that only the ISO code is unambiguous. In reality, however, the first match on either would be accepted, leading to "DE" being interpreted as the "DEBUG" country rather than Germany, and "MO" selecting Morocco rather than the correct country, Macau. Fix this by always checking for an ISO CC match first, and only search on the full country name if that fails. PR: bin/140571 Tested by: Dirk Meyer dirk.meyer dinoex.sub.org Reviewed by: sam Approved by: ed (mentor, implicit)
Diffstat (limited to 'sbin')
-rw-r--r--sbin/ifconfig/regdomain.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sbin/ifconfig/regdomain.c b/sbin/ifconfig/regdomain.c
index a06ba55..4140289 100644
--- a/sbin/ifconfig/regdomain.c
+++ b/sbin/ifconfig/regdomain.c
@@ -694,8 +694,11 @@ lib80211_country_findbyname(const struct regdata *rdp, const char *name)
len = strlen(name);
LIST_FOREACH(cp, &rdp->countries, next) {
- if (strcasecmp(cp->isoname, name) == 0 ||
- strncasecmp(cp->name, name, len) == 0)
+ if (strcasecmp(cp->isoname, name) == 0)
+ return cp;
+ }
+ LIST_FOREACH(cp, &rdp->countries, next) {
+ if (strncasecmp(cp->name, name, len) == 0)
return cp;
}
return NULL;
OpenPOWER on IntegriCloud