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)
This commit is contained in:
Gavin Atkinson 2010-01-16 15:00:35 +00:00
parent 08fe729d97
commit 3a911eccaa
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/stable/8/; revision=202446

View File

@ -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;