Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wireless: use individual buffers for printing ssid values

Also change escape_ssid to print_ssid to match print_mac semantics.

Signed-off-by: John W. Linville <linville@tuxdriver.com>

+168 -106
+14 -6
drivers/net/wireless/ipw2100.c
··· 163 163 #include <linux/ctype.h> 164 164 #include <linux/pm_qos_params.h> 165 165 166 + #include <net/lib80211.h> 167 + 166 168 #include "ipw2100.h" 167 169 168 170 #define IPW2100_VERSION "git-1.2.2" ··· 1916 1914 u32 chan; 1917 1915 char *txratename; 1918 1916 u8 bssid[ETH_ALEN]; 1917 + DECLARE_SSID_BUF(ssid); 1919 1918 1920 1919 /* 1921 1920 * TBD: BSSID is usually 00:00:00:00:00:00 here and not ··· 1978 1975 } 1979 1976 1980 1977 IPW_DEBUG_INFO("%s: Associated with '%s' at %s, channel %d (BSSID=%pM)\n", 1981 - priv->net_dev->name, escape_ssid(essid, essid_len), 1978 + priv->net_dev->name, print_ssid(ssid, essid, essid_len), 1982 1979 txratename, chan, bssid); 1983 1980 1984 1981 /* now we copy read ssid into dev */ ··· 2005 2002 .host_command_length = ssid_len 2006 2003 }; 2007 2004 int err; 2005 + DECLARE_SSID_BUF(ssid); 2008 2006 2009 - IPW_DEBUG_HC("SSID: '%s'\n", escape_ssid(essid, ssid_len)); 2007 + IPW_DEBUG_HC("SSID: '%s'\n", print_ssid(ssid, essid, ssid_len)); 2010 2008 2011 2009 if (ssid_len) 2012 2010 memcpy(cmd.host_command_parameters, essid, ssid_len); ··· 2048 2044 2049 2045 static void isr_indicate_association_lost(struct ipw2100_priv *priv, u32 status) 2050 2046 { 2047 + DECLARE_SSID_BUF(ssid); 2048 + 2051 2049 IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | IPW_DL_ASSOC, 2052 2050 "disassociated: '%s' %pM \n", 2053 - escape_ssid(priv->essid, priv->essid_len), 2051 + print_ssid(ssid, priv->essid, priv->essid_len), 2054 2052 priv->bssid); 2055 2053 2056 2054 priv->status &= ~(STATUS_ASSOCIATED | STATUS_ASSOCIATING); ··· 6964 6958 char *essid = ""; /* ANY */ 6965 6959 int length = 0; 6966 6960 int err = 0; 6961 + DECLARE_SSID_BUF(ssid); 6967 6962 6968 6963 mutex_lock(&priv->action_mutex); 6969 6964 if (!(priv->status & STATUS_INITIALIZED)) { ··· 6994 6987 goto done; 6995 6988 } 6996 6989 6997 - IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", escape_ssid(essid, length), 6998 - length); 6990 + IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", 6991 + print_ssid(ssid, essid, length), length); 6999 6992 7000 6993 priv->essid_len = length; 7001 6994 memcpy(priv->essid, essid, priv->essid_len); ··· 7016 7009 */ 7017 7010 7018 7011 struct ipw2100_priv *priv = ieee80211_priv(dev); 7012 + DECLARE_SSID_BUF(ssid); 7019 7013 7020 7014 /* If we are associated, trying to associate, or have a statically 7021 7015 * configured ESSID then return that; otherwise return ANY */ 7022 7016 if (priv->config & CFG_STATIC_ESSID || priv->status & STATUS_ASSOCIATED) { 7023 7017 IPW_DEBUG_WX("Getting essid: '%s'\n", 7024 - escape_ssid(priv->essid, priv->essid_len)); 7018 + print_ssid(ssid, priv->essid, priv->essid_len)); 7025 7019 memcpy(extra, priv->essid, priv->essid_len); 7026 7020 wrqu->essid.length = priv->essid_len; 7027 7021 wrqu->essid.flags = 1; /* active */
+91 -62
drivers/net/wireless/ipw2200.c
··· 4395 4395 static void ipw_rx_notification(struct ipw_priv *priv, 4396 4396 struct ipw_rx_notification *notif) 4397 4397 { 4398 + DECLARE_SSID_BUF(ssid); 4398 4399 u16 size = le16_to_cpu(notif->size); 4399 4400 notif->size = le16_to_cpu(notif->size); 4400 4401 ··· 4410 4409 IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | 4411 4410 IPW_DL_ASSOC, 4412 4411 "associated: '%s' %pM \n", 4413 - escape_ssid(priv->essid, 4414 - priv->essid_len), 4412 + print_ssid(ssid, priv->essid, 4413 + priv->essid_len), 4415 4414 priv->bssid); 4416 4415 4417 4416 switch (priv->ieee->iw_mode) { ··· 4491 4490 "deauthenticated: '%s' " 4492 4491 "%pM" 4493 4492 ": (0x%04X) - %s \n", 4494 - escape_ssid(priv-> 4495 - essid, 4496 - priv-> 4497 - essid_len), 4493 + print_ssid(ssid, 4494 + priv-> 4495 + essid, 4496 + priv-> 4497 + essid_len), 4498 4498 priv->bssid, 4499 4499 le16_to_cpu(auth->status), 4500 4500 ipw_get_status_code ··· 4514 4512 IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | 4515 4513 IPW_DL_ASSOC, 4516 4514 "authenticated: '%s' %pM\n", 4517 - escape_ssid(priv->essid, 4518 - priv->essid_len), 4515 + print_ssid(ssid, priv->essid, 4516 + priv->essid_len), 4519 4517 priv->bssid); 4520 4518 break; 4521 4519 } ··· 4542 4540 IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | 4543 4541 IPW_DL_ASSOC, 4544 4542 "disassociated: '%s' %pM \n", 4545 - escape_ssid(priv->essid, 4546 - priv->essid_len), 4543 + print_ssid(ssid, priv->essid, 4544 + priv->essid_len), 4547 4545 priv->bssid); 4548 4546 4549 4547 priv->status &= ··· 4580 4578 case CMAS_AUTHENTICATED: 4581 4579 IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE, 4582 4580 "authenticated: '%s' %pM \n", 4583 - escape_ssid(priv->essid, 4584 - priv->essid_len), 4581 + print_ssid(ssid, priv->essid, 4582 + priv->essid_len), 4585 4583 priv->bssid); 4586 4584 priv->status |= STATUS_AUTH; 4587 4585 break; ··· 4599 4597 IPW_DEBUG(IPW_DL_NOTIF | IPW_DL_STATE | 4600 4598 IPW_DL_ASSOC, 4601 4599 "deauthenticated: '%s' %pM\n", 4602 - escape_ssid(priv->essid, 4603 - priv->essid_len), 4600 + print_ssid(ssid, priv->essid, 4601 + priv->essid_len), 4604 4602 priv->bssid); 4605 4603 4606 4604 priv->status &= ~(STATUS_ASSOCIATING | ··· 5425 5423 int roaming) 5426 5424 { 5427 5425 struct ipw_supported_rates rates; 5426 + DECLARE_SSID_BUF(ssid); 5428 5427 5429 5428 /* Verify that this network's capability is compatible with the 5430 5429 * current mode (AdHoc or Infrastructure) */ ··· 5433 5430 !(network->capability & WLAN_CAPABILITY_IBSS))) { 5434 5431 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded due to " 5435 5432 "capability mismatch.\n", 5436 - escape_ssid(network->ssid, network->ssid_len), 5433 + print_ssid(ssid, network->ssid, 5434 + network->ssid_len), 5437 5435 network->bssid); 5438 5436 return 0; 5439 5437 } ··· 5447 5443 network->ssid_len)) { 5448 5444 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5449 5445 "because of non-network ESSID.\n", 5450 - escape_ssid(network->ssid, 5451 - network->ssid_len), 5446 + print_ssid(ssid, network->ssid, 5447 + network->ssid_len), 5452 5448 network->bssid); 5453 5449 return 0; 5454 5450 } ··· 5462 5458 char escaped[IW_ESSID_MAX_SIZE * 2 + 1]; 5463 5459 5464 5460 strncpy(escaped, 5465 - escape_ssid(network->ssid, network->ssid_len), 5461 + print_ssid(ssid, network->ssid, 5462 + network->ssid_len), 5466 5463 sizeof(escaped)); 5467 5464 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5468 5465 "because of ESSID mismatch: '%s'.\n", 5469 5466 escaped, network->bssid, 5470 - escape_ssid(priv->essid, 5471 - priv->essid_len)); 5467 + print_ssid(ssid, priv->essid, 5468 + priv->essid_len)); 5472 5469 return 0; 5473 5470 } 5474 5471 } ··· 5480 5475 if (network->time_stamp[0] < match->network->time_stamp[0]) { 5481 5476 IPW_DEBUG_MERGE("Network '%s excluded because newer than " 5482 5477 "current network.\n", 5483 - escape_ssid(match->network->ssid, 5484 - match->network->ssid_len)); 5478 + print_ssid(ssid, match->network->ssid, 5479 + match->network->ssid_len)); 5485 5480 return 0; 5486 5481 } else if (network->time_stamp[1] < match->network->time_stamp[1]) { 5487 5482 IPW_DEBUG_MERGE("Network '%s excluded because newer than " 5488 5483 "current network.\n", 5489 - escape_ssid(match->network->ssid, 5490 - match->network->ssid_len)); 5484 + print_ssid(ssid, match->network->ssid, 5485 + match->network->ssid_len)); 5491 5486 return 0; 5492 5487 } 5493 5488 ··· 5496 5491 time_after(jiffies, network->last_scanned + priv->ieee->scan_age)) { 5497 5492 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5498 5493 "because of age: %ums.\n", 5499 - escape_ssid(network->ssid, network->ssid_len), 5494 + print_ssid(ssid, network->ssid, 5495 + network->ssid_len), 5500 5496 network->bssid, 5501 5497 jiffies_to_msecs(jiffies - 5502 5498 network->last_scanned)); ··· 5508 5502 (network->channel != priv->channel)) { 5509 5503 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5510 5504 "because of channel mismatch: %d != %d.\n", 5511 - escape_ssid(network->ssid, network->ssid_len), 5505 + print_ssid(ssid, network->ssid, 5506 + network->ssid_len), 5512 5507 network->bssid, 5513 5508 network->channel, priv->channel); 5514 5509 return 0; ··· 5520 5513 ((network->capability & WLAN_CAPABILITY_PRIVACY) ? 1 : 0)) { 5521 5514 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5522 5515 "because of privacy mismatch: %s != %s.\n", 5523 - escape_ssid(network->ssid, network->ssid_len), 5516 + print_ssid(ssid, network->ssid, 5517 + network->ssid_len), 5524 5518 network->bssid, 5525 5519 priv-> 5526 5520 capability & CAP_PRIVACY_ON ? "on" : "off", ··· 5534 5526 if (!memcmp(network->bssid, priv->bssid, ETH_ALEN)) { 5535 5527 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5536 5528 "because of the same BSSID match: %pM" 5537 - ".\n", escape_ssid(network->ssid, 5538 - network->ssid_len), 5529 + ".\n", print_ssid(ssid, network->ssid, 5530 + network->ssid_len), 5539 5531 network->bssid, 5540 5532 priv->bssid); 5541 5533 return 0; ··· 5546 5538 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5547 5539 "because of invalid frequency/mode " 5548 5540 "combination.\n", 5549 - escape_ssid(network->ssid, network->ssid_len), 5541 + print_ssid(ssid, network->ssid, 5542 + network->ssid_len), 5550 5543 network->bssid); 5551 5544 return 0; 5552 5545 } ··· 5558 5549 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5559 5550 "because configured rate mask excludes " 5560 5551 "AP mandatory rate.\n", 5561 - escape_ssid(network->ssid, network->ssid_len), 5552 + print_ssid(ssid, network->ssid, 5553 + network->ssid_len), 5562 5554 network->bssid); 5563 5555 return 0; 5564 5556 } ··· 5567 5557 if (rates.num_rates == 0) { 5568 5558 IPW_DEBUG_MERGE("Network '%s (%pM)' excluded " 5569 5559 "because of no compatible rates.\n", 5570 - escape_ssid(network->ssid, network->ssid_len), 5560 + print_ssid(ssid, network->ssid, 5561 + network->ssid_len), 5571 5562 network->bssid); 5572 5563 return 0; 5573 5564 } ··· 5581 5570 ipw_copy_rates(&match->rates, &rates); 5582 5571 match->network = network; 5583 5572 IPW_DEBUG_MERGE("Network '%s (%pM)' is a viable match.\n", 5584 - escape_ssid(network->ssid, network->ssid_len), 5573 + print_ssid(ssid, network->ssid, network->ssid_len), 5585 5574 network->bssid); 5586 5575 5587 5576 return 1; ··· 5589 5578 5590 5579 static void ipw_merge_adhoc_network(struct work_struct *work) 5591 5580 { 5581 + DECLARE_SSID_BUF(ssid); 5592 5582 struct ipw_priv *priv = 5593 5583 container_of(work, struct ipw_priv, merge_networks); 5594 5584 struct ieee80211_network *network = NULL; ··· 5620 5608 mutex_lock(&priv->mutex); 5621 5609 if ((priv->ieee->iw_mode == IW_MODE_ADHOC)) { 5622 5610 IPW_DEBUG_MERGE("remove network %s\n", 5623 - escape_ssid(priv->essid, 5624 - priv->essid_len)); 5611 + print_ssid(ssid, priv->essid, 5612 + priv->essid_len)); 5625 5613 ipw_remove_current_network(priv); 5626 5614 } 5627 5615 ··· 5637 5625 struct ieee80211_network *network, int roaming) 5638 5626 { 5639 5627 struct ipw_supported_rates rates; 5628 + DECLARE_SSID_BUF(ssid); 5640 5629 5641 5630 /* Verify that this network's capability is compatible with the 5642 5631 * current mode (AdHoc or Infrastructure) */ ··· 5647 5634 !(network->capability & WLAN_CAPABILITY_IBSS))) { 5648 5635 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded due to " 5649 5636 "capability mismatch.\n", 5650 - escape_ssid(network->ssid, network->ssid_len), 5637 + print_ssid(ssid, network->ssid, 5638 + network->ssid_len), 5651 5639 network->bssid); 5652 5640 return 0; 5653 5641 } ··· 5661 5647 network->ssid_len)) { 5662 5648 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5663 5649 "because of non-network ESSID.\n", 5664 - escape_ssid(network->ssid, 5665 - network->ssid_len), 5650 + print_ssid(ssid, network->ssid, 5651 + network->ssid_len), 5666 5652 network->bssid); 5667 5653 return 0; 5668 5654 } ··· 5675 5661 min(network->ssid_len, priv->essid_len)))) { 5676 5662 char escaped[IW_ESSID_MAX_SIZE * 2 + 1]; 5677 5663 strncpy(escaped, 5678 - escape_ssid(network->ssid, network->ssid_len), 5664 + print_ssid(ssid, network->ssid, 5665 + network->ssid_len), 5679 5666 sizeof(escaped)); 5680 5667 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5681 5668 "because of ESSID mismatch: '%s'.\n", 5682 5669 escaped, network->bssid, 5683 - escape_ssid(priv->essid, 5684 - priv->essid_len)); 5670 + print_ssid(ssid, priv->essid, 5671 + priv->essid_len)); 5685 5672 return 0; 5686 5673 } 5687 5674 } ··· 5692 5677 if (match->network && match->network->stats.rssi > network->stats.rssi) { 5693 5678 char escaped[IW_ESSID_MAX_SIZE * 2 + 1]; 5694 5679 strncpy(escaped, 5695 - escape_ssid(network->ssid, network->ssid_len), 5680 + print_ssid(ssid, network->ssid, network->ssid_len), 5696 5681 sizeof(escaped)); 5697 5682 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded because " 5698 5683 "'%s (%pM)' has a stronger signal.\n", 5699 5684 escaped, network->bssid, 5700 - escape_ssid(match->network->ssid, 5701 - match->network->ssid_len), 5685 + print_ssid(ssid, match->network->ssid, 5686 + match->network->ssid_len), 5702 5687 match->network->bssid); 5703 5688 return 0; 5704 5689 } ··· 5710 5695 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5711 5696 "because of storming (%ums since last " 5712 5697 "assoc attempt).\n", 5713 - escape_ssid(network->ssid, network->ssid_len), 5698 + print_ssid(ssid, network->ssid, 5699 + network->ssid_len), 5714 5700 network->bssid, 5715 5701 jiffies_to_msecs(jiffies - 5716 5702 network->last_associate)); ··· 5723 5707 time_after(jiffies, network->last_scanned + priv->ieee->scan_age)) { 5724 5708 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5725 5709 "because of age: %ums.\n", 5726 - escape_ssid(network->ssid, network->ssid_len), 5710 + print_ssid(ssid, network->ssid, 5711 + network->ssid_len), 5727 5712 network->bssid, 5728 5713 jiffies_to_msecs(jiffies - 5729 5714 network->last_scanned)); ··· 5735 5718 (network->channel != priv->channel)) { 5736 5719 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5737 5720 "because of channel mismatch: %d != %d.\n", 5738 - escape_ssid(network->ssid, network->ssid_len), 5721 + print_ssid(ssid, network->ssid, 5722 + network->ssid_len), 5739 5723 network->bssid, 5740 5724 network->channel, priv->channel); 5741 5725 return 0; ··· 5747 5729 ((network->capability & WLAN_CAPABILITY_PRIVACY) ? 1 : 0)) { 5748 5730 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5749 5731 "because of privacy mismatch: %s != %s.\n", 5750 - escape_ssid(network->ssid, network->ssid_len), 5732 + print_ssid(ssid, network->ssid, 5733 + network->ssid_len), 5751 5734 network->bssid, 5752 5735 priv->capability & CAP_PRIVACY_ON ? "on" : 5753 5736 "off", ··· 5761 5742 memcmp(network->bssid, priv->bssid, ETH_ALEN)) { 5762 5743 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5763 5744 "because of BSSID mismatch: %pM.\n", 5764 - escape_ssid(network->ssid, network->ssid_len), 5745 + print_ssid(ssid, network->ssid, 5746 + network->ssid_len), 5765 5747 network->bssid, priv->bssid); 5766 5748 return 0; 5767 5749 } ··· 5772 5752 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5773 5753 "because of invalid frequency/mode " 5774 5754 "combination.\n", 5775 - escape_ssid(network->ssid, network->ssid_len), 5755 + print_ssid(ssid, network->ssid, 5756 + network->ssid_len), 5776 5757 network->bssid); 5777 5758 return 0; 5778 5759 } ··· 5782 5761 if (!ieee80211_is_valid_channel(priv->ieee, network->channel)) { 5783 5762 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5784 5763 "because of invalid channel in current GEO\n", 5785 - escape_ssid(network->ssid, network->ssid_len), 5764 + print_ssid(ssid, network->ssid, 5765 + network->ssid_len), 5786 5766 network->bssid); 5787 5767 return 0; 5788 5768 } ··· 5794 5772 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5795 5773 "because configured rate mask excludes " 5796 5774 "AP mandatory rate.\n", 5797 - escape_ssid(network->ssid, network->ssid_len), 5775 + print_ssid(ssid, network->ssid, 5776 + network->ssid_len), 5798 5777 network->bssid); 5799 5778 return 0; 5800 5779 } ··· 5803 5780 if (rates.num_rates == 0) { 5804 5781 IPW_DEBUG_ASSOC("Network '%s (%pM)' excluded " 5805 5782 "because of no compatible rates.\n", 5806 - escape_ssid(network->ssid, network->ssid_len), 5783 + print_ssid(ssid, network->ssid, 5784 + network->ssid_len), 5807 5785 network->bssid); 5808 5786 return 0; 5809 5787 } ··· 5818 5794 match->network = network; 5819 5795 5820 5796 IPW_DEBUG_ASSOC("Network '%s (%pM)' is a viable match.\n", 5821 - escape_ssid(network->ssid, network->ssid_len), 5797 + print_ssid(ssid, network->ssid, network->ssid_len), 5822 5798 network->bssid); 5823 5799 5824 5800 return 1; ··· 6061 6037 6062 6038 static void ipw_debug_config(struct ipw_priv *priv) 6063 6039 { 6040 + DECLARE_SSID_BUF(ssid); 6064 6041 IPW_DEBUG_INFO("Scan completed, no valid APs matched " 6065 6042 "[CFG 0x%08X]\n", priv->config); 6066 6043 if (priv->config & CFG_STATIC_CHANNEL) ··· 6070 6045 IPW_DEBUG_INFO("Channel unlocked.\n"); 6071 6046 if (priv->config & CFG_STATIC_ESSID) 6072 6047 IPW_DEBUG_INFO("ESSID locked to '%s'\n", 6073 - escape_ssid(priv->essid, priv->essid_len)); 6048 + print_ssid(ssid, priv->essid, priv->essid_len)); 6074 6049 else 6075 6050 IPW_DEBUG_INFO("ESSID unlocked.\n"); 6076 6051 if (priv->config & CFG_STATIC_BSSID) ··· 7288 7263 struct ipw_supported_rates *rates, int roaming) 7289 7264 { 7290 7265 int err; 7266 + DECLARE_SSID_BUF(ssid); 7291 7267 7292 7268 if (priv->config & CFG_FIXED_RATE) 7293 7269 ipw_set_fixed_rate(priv, network->mode); ··· 7357 7331 IPW_DEBUG_ASSOC("%sssocation attempt: '%s', channel %d, " 7358 7332 "802.11%c [%d], %s[:%s], enc=%s%s%s%c%c\n", 7359 7333 roaming ? "Rea" : "A", 7360 - escape_ssid(priv->essid, priv->essid_len), 7334 + print_ssid(ssid, priv->essid, priv->essid_len), 7361 7335 network->channel, 7362 7336 ipw_modes[priv->assoc_request.ieee_mode], 7363 7337 rates->num_rates, ··· 7457 7431 } 7458 7432 7459 7433 IPW_DEBUG(IPW_DL_STATE, "associating: '%s' %pM \n", 7460 - escape_ssid(priv->essid, priv->essid_len), 7434 + print_ssid(ssid, priv->essid, priv->essid_len), 7461 7435 priv->bssid); 7462 7436 7463 7437 return 0; ··· 7548 7522 struct ipw_supported_rates *rates; 7549 7523 struct list_head *element; 7550 7524 unsigned long flags; 7525 + DECLARE_SSID_BUF(ssid); 7551 7526 7552 7527 if (priv->ieee->iw_mode == IW_MODE_MONITOR) { 7553 7528 IPW_DEBUG_ASSOC("Not attempting association (monitor mode)\n"); ··· 7610 7583 target = oldest; 7611 7584 IPW_DEBUG_ASSOC("Expired '%s' (%pM) from " 7612 7585 "network list.\n", 7613 - escape_ssid(target->ssid, 7614 - target->ssid_len), 7586 + print_ssid(ssid, target->ssid, 7587 + target->ssid_len), 7615 7588 target->bssid); 7616 7589 list_add_tail(&target->list, 7617 7590 &priv->ieee->network_free_list); ··· 9039 9012 { 9040 9013 struct ipw_priv *priv = ieee80211_priv(dev); 9041 9014 int length; 9015 + DECLARE_SSID_BUF(ssid); 9042 9016 9043 9017 mutex_lock(&priv->mutex); 9044 9018 ··· 9064 9036 return 0; 9065 9037 } 9066 9038 9067 - IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", escape_ssid(extra, length), 9068 - length); 9039 + IPW_DEBUG_WX("Setting ESSID: '%s' (%d)\n", 9040 + print_ssid(ssid, extra, length), length); 9069 9041 9070 9042 priv->essid_len = length; 9071 9043 memcpy(priv->essid, extra, priv->essid_len); ··· 9084 9056 union iwreq_data *wrqu, char *extra) 9085 9057 { 9086 9058 struct ipw_priv *priv = ieee80211_priv(dev); 9059 + DECLARE_SSID_BUF(ssid); 9087 9060 9088 9061 /* If we are associated, trying to associate, or have a statically 9089 9062 * configured ESSID then return that; otherwise return ANY */ ··· 9092 9063 if (priv->config & CFG_STATIC_ESSID || 9093 9064 priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING)) { 9094 9065 IPW_DEBUG_WX("Getting essid: '%s'\n", 9095 - escape_ssid(priv->essid, priv->essid_len)); 9066 + print_ssid(ssid, priv->essid, priv->essid_len)); 9096 9067 memcpy(extra, priv->essid, priv->essid_len); 9097 9068 wrqu->essid.length = priv->essid_len; 9098 9069 wrqu->essid.flags = 1; /* active */
+4 -3
drivers/net/wireless/iwlwifi/iwl-scan.c
··· 643 643 u8 n_probes = 2; 644 644 u8 rx_chain = priv->hw_params.valid_rx_ant; 645 645 u8 rate; 646 + DECLARE_SSID_BUF(ssid); 646 647 647 648 conf = ieee80211_get_hw_conf(priv->hw); 648 649 ··· 736 735 /* We should add the ability for user to lock to PASSIVE ONLY */ 737 736 if (priv->one_direct_scan) { 738 737 IWL_DEBUG_SCAN("Start direct scan for '%s'\n", 739 - escape_ssid(priv->direct_ssid, 740 - priv->direct_ssid_len)); 738 + print_ssid(ssid, priv->direct_ssid, 739 + priv->direct_ssid_len)); 741 740 scan->direct_scan[0].id = WLAN_EID_SSID; 742 741 scan->direct_scan[0].len = priv->direct_ssid_len; 743 742 memcpy(scan->direct_scan[0].ssid, ··· 745 744 n_probes++; 746 745 } else if (!iwl_is_associated(priv) && priv->essid_len) { 747 746 IWL_DEBUG_SCAN("Start direct scan for '%s' (not associated)\n", 748 - escape_ssid(priv->essid, priv->essid_len)); 747 + print_ssid(ssid, priv->essid, priv->essid_len)); 749 748 scan->direct_scan[0].id = WLAN_EID_SSID; 750 749 scan->direct_scan[0].len = priv->essid_len; 751 750 memcpy(scan->direct_scan[0].ssid, priv->essid, priv->essid_len);
+6 -3
drivers/net/wireless/iwlwifi/iwl3945-base.c
··· 6054 6054 struct ieee80211_conf *conf = NULL; 6055 6055 u8 n_probes = 2; 6056 6056 enum ieee80211_band band; 6057 + DECLARE_SSID_BUF(ssid); 6057 6058 6058 6059 conf = ieee80211_get_hw_conf(priv->hw); 6059 6060 ··· 6155 6154 if (priv->one_direct_scan) { 6156 6155 IWL_DEBUG_SCAN 6157 6156 ("Kicking off one direct scan for '%s'\n", 6158 - escape_ssid(priv->direct_ssid, priv->direct_ssid_len)); 6157 + print_ssid(ssid, priv->direct_ssid, 6158 + priv->direct_ssid_len)); 6159 6159 scan->direct_scan[0].id = WLAN_EID_SSID; 6160 6160 scan->direct_scan[0].len = priv->direct_ssid_len; 6161 6161 memcpy(scan->direct_scan[0].ssid, ··· 6165 6163 } else if (!iwl3945_is_associated(priv) && priv->essid_len) { 6166 6164 IWL_DEBUG_SCAN 6167 6165 ("Kicking off one direct scan for '%s' when not associated\n", 6168 - escape_ssid(priv->essid, priv->essid_len)); 6166 + print_ssid(ssid, priv->essid, priv->essid_len)); 6169 6167 scan->direct_scan[0].id = WLAN_EID_SSID; 6170 6168 scan->direct_scan[0].len = priv->essid_len; 6171 6169 memcpy(scan->direct_scan[0].ssid, priv->essid, priv->essid_len); ··· 6947 6945 int rc = 0; 6948 6946 unsigned long flags; 6949 6947 struct iwl3945_priv *priv = hw->priv; 6948 + DECLARE_SSID_BUF(ssid_buf); 6950 6949 6951 6950 IWL_DEBUG_MAC80211("enter\n"); 6952 6951 ··· 6981 6978 } 6982 6979 if (len) { 6983 6980 IWL_DEBUG_SCAN("direct scan for %s [%d]\n ", 6984 - escape_ssid(ssid, len), (int)len); 6981 + print_ssid(ssid_buf, ssid, len), (int)len); 6985 6982 6986 6983 priv->one_direct_scan = 1; 6987 6984 priv->direct_ssid_len = (u8)
+11 -6
drivers/net/wireless/libertas/assoc.c
··· 153 153 struct cmd_ds_802_11_ad_hoc_join cmd; 154 154 struct bss_descriptor *bss = &assoc_req->bss; 155 155 u8 preamble = RADIO_PREAMBLE_LONG; 156 + DECLARE_SSID_BUF(ssid); 156 157 u16 ratesize = 0; 157 158 int ret = 0; 158 159 159 160 lbs_deb_enter(LBS_DEB_ASSOC); 160 161 161 162 lbs_deb_join("current SSID '%s', ssid length %u\n", 162 - escape_ssid(priv->curbssparams.ssid, 163 + print_ssid(ssid, priv->curbssparams.ssid, 163 164 priv->curbssparams.ssid_len), 164 165 priv->curbssparams.ssid_len); 165 166 lbs_deb_join("requested ssid '%s', ssid length %u\n", 166 - escape_ssid(bss->ssid, bss->ssid_len), 167 + print_ssid(ssid, bss->ssid, bss->ssid_len), 167 168 bss->ssid_len); 168 169 169 170 /* check if the requested SSID is already joined */ ··· 309 308 size_t ratesize = 0; 310 309 u16 tmpcap = 0; 311 310 int ret = 0; 311 + DECLARE_SSID_BUF(ssid); 312 312 313 313 lbs_deb_enter(LBS_DEB_ASSOC); 314 314 ··· 329 327 memcpy(cmd.ssid, assoc_req->ssid, assoc_req->ssid_len); 330 328 331 329 lbs_deb_join("ADHOC_START: SSID '%s', ssid length %u\n", 332 - escape_ssid(assoc_req->ssid, assoc_req->ssid_len), 330 + print_ssid(ssid, assoc_req->ssid, assoc_req->ssid_len), 333 331 assoc_req->ssid_len); 334 332 335 333 cmd.bsstype = CMD_BSS_TYPE_IBSS; ··· 697 695 int ret = 0; 698 696 struct bss_descriptor * bss; 699 697 int channel = -1; 698 + DECLARE_SSID_BUF(ssid); 700 699 701 700 lbs_deb_enter(LBS_DEB_ASSOC); 702 701 ··· 709 706 channel = assoc_req->channel; 710 707 711 708 lbs_deb_assoc("SSID '%s' requested\n", 712 - escape_ssid(assoc_req->ssid, assoc_req->ssid_len)); 709 + print_ssid(ssid, assoc_req->ssid, assoc_req->ssid_len)); 713 710 if (assoc_req->mode == IW_MODE_INFRA) { 714 711 lbs_send_specific_ssid_scan(priv, assoc_req->ssid, 715 712 assoc_req->ssid_len); ··· 1210 1207 struct assoc_request * assoc_req = NULL; 1211 1208 int ret = 0; 1212 1209 int find_any_ssid = 0; 1210 + DECLARE_SSID_BUF(ssid); 1213 1211 1214 1212 lbs_deb_enter(LBS_DEB_ASSOC); 1215 1213 ··· 1234 1230 " secinfo: %s%s%s\n" 1235 1231 " auth_mode: %d\n", 1236 1232 assoc_req->flags, 1237 - escape_ssid(assoc_req->ssid, assoc_req->ssid_len), 1233 + print_ssid(ssid, assoc_req->ssid, assoc_req->ssid_len), 1238 1234 assoc_req->channel, assoc_req->band, assoc_req->mode, 1239 1235 assoc_req->bssid, 1240 1236 assoc_req->secinfo.WPAenabled ? " WPA" : "", ··· 1771 1767 struct cmd_ds_802_11_ad_hoc_result *adhoc_resp; 1772 1768 union iwreq_data wrqu; 1773 1769 struct bss_descriptor *bss; 1770 + DECLARE_SSID_BUF(ssid); 1774 1771 1775 1772 lbs_deb_enter(LBS_DEB_JOIN); 1776 1773 ··· 1821 1816 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL); 1822 1817 1823 1818 lbs_deb_join("ADHOC_RESP: Joined/started '%s', BSSID %pM, channel %d\n", 1824 - escape_ssid(bss->ssid, bss->ssid_len), 1819 + print_ssid(ssid, bss->ssid, bss->ssid_len), 1825 1820 priv->curbssparams.bssid, 1826 1821 priv->curbssparams.channel); 1827 1822
+2 -1
drivers/net/wireless/libertas/cmd.c
··· 1063 1063 { 1064 1064 struct cmd_ds_mesh_config cmd; 1065 1065 struct mrvl_meshie *ie; 1066 + DECLARE_SSID_BUF(ssid); 1066 1067 1067 1068 memset(&cmd, 0, sizeof(cmd)); 1068 1069 cmd.channel = cpu_to_le16(chan); ··· 1094 1093 } 1095 1094 lbs_deb_cmd("mesh config action %d type %x channel %d SSID %s\n", 1096 1095 action, priv->mesh_tlv, chan, 1097 - escape_ssid(priv->mesh_ssid, priv->mesh_ssid_len)); 1096 + print_ssid(ssid, priv->mesh_ssid, priv->mesh_ssid_len)); 1098 1097 1099 1098 return __lbs_mesh_config_send(priv, &cmd, action, priv->mesh_tlv); 1100 1099 }
+3 -1
drivers/net/wireless/libertas/debugfs.c
··· 66 66 int numscansdone = 0, res; 67 67 unsigned long addr = get_zeroed_page(GFP_KERNEL); 68 68 char *buf = (char *)addr; 69 + DECLARE_SSID_BUF(ssid); 69 70 struct bss_descriptor * iter_bss; 70 71 71 72 pos += snprintf(buf+pos, len-pos, ··· 87 86 spectrum_mgmt ? 'S' : ' '); 88 87 pos += snprintf(buf+pos, len-pos, " %04d |", SCAN_RSSI(iter_bss->rssi)); 89 88 pos += snprintf(buf+pos, len-pos, " %s\n", 90 - escape_ssid(iter_bss->ssid, iter_bss->ssid_len)); 89 + print_ssid(ssid, iter_bss->ssid, 90 + iter_bss->ssid_len)); 91 91 92 92 numscansdone++; 93 93 }
+8 -4
drivers/net/wireless/libertas/scan.c
··· 362 362 #ifdef CONFIG_LIBERTAS_DEBUG 363 363 struct bss_descriptor *iter; 364 364 int i = 0; 365 + DECLARE_SSID_BUF(ssid); 365 366 #endif 366 367 367 368 lbs_deb_enter_args(LBS_DEB_SCAN, "full_scan %d", full_scan); ··· 456 455 list_for_each_entry(iter, &priv->network_list, list) 457 456 lbs_deb_scan("%02d: BSSID %pM, RSSI %d, SSID '%s'\n", 458 457 i++, iter->bssid, iter->rssi, 459 - escape_ssid(iter->ssid, iter->ssid_len)); 458 + print_ssid(ssid, iter->ssid, iter->ssid_len)); 460 459 mutex_unlock(&priv->lock); 461 460 #endif 462 461 ··· 515 514 struct ieeetypes_dsparamset *pDS; 516 515 struct ieeetypes_cfparamset *pCF; 517 516 struct ieeetypes_ibssparamset *pibss; 517 + DECLARE_SSID_BUF(ssid); 518 518 struct ieeetypes_countryinfoset *pcountryinfo; 519 519 uint8_t *pos, *end, *p; 520 520 uint8_t n_ex_rates = 0, got_basic_rates = 0, n_basic_rates = 0; ··· 604 602 bss->ssid_len = min_t(int, 32, elem->len); 605 603 memcpy(bss->ssid, elem->data, bss->ssid_len); 606 604 lbs_deb_scan("got SSID IE: '%s', len %u\n", 607 - escape_ssid(bss->ssid, bss->ssid_len), 605 + print_ssid(ssid, bss->ssid, bss->ssid_len), 608 606 bss->ssid_len); 609 607 break; 610 608 ··· 744 742 int lbs_send_specific_ssid_scan(struct lbs_private *priv, uint8_t *ssid, 745 743 uint8_t ssid_len) 746 744 { 745 + DECLARE_SSID_BUF(ssid_buf); 747 746 int ret = 0; 748 747 749 748 lbs_deb_enter_args(LBS_DEB_SCAN, "SSID '%s'\n", 750 - escape_ssid(ssid, ssid_len)); 749 + print_ssid(ssid_buf, ssid, ssid_len)); 751 750 752 751 if (!ssid_len) 753 752 goto out; ··· 943 940 int lbs_set_scan(struct net_device *dev, struct iw_request_info *info, 944 941 union iwreq_data *wrqu, char *extra) 945 942 { 943 + DECLARE_SSID_BUF(ssid); 946 944 struct lbs_private *priv = dev->priv; 947 945 int ret = 0; 948 946 ··· 973 969 priv->scan_ssid_len = req->essid_len; 974 970 memcpy(priv->scan_ssid, req->essid, priv->scan_ssid_len); 975 971 lbs_deb_wext("set_scan, essid '%s'\n", 976 - escape_ssid(priv->scan_ssid, priv->scan_ssid_len)); 972 + print_ssid(ssid, priv->scan_ssid, priv->scan_ssid_len)); 977 973 } else { 978 974 priv->scan_ssid_len = 0; 979 975 }
+2 -1
drivers/net/wireless/libertas/wext.c
··· 1978 1978 u8 ssid_len = 0; 1979 1979 struct assoc_request * assoc_req; 1980 1980 int in_ssid_len = dwrq->length; 1981 + DECLARE_SSID_BUF(ssid_buf); 1981 1982 1982 1983 lbs_deb_enter(LBS_DEB_WEXT); 1983 1984 ··· 2007 2006 lbs_deb_wext("requested any SSID\n"); 2008 2007 } else { 2009 2008 lbs_deb_wext("requested SSID '%s'\n", 2010 - escape_ssid(ssid, ssid_len)); 2009 + print_ssid(ssid_buf, ssid, ssid_len)); 2011 2010 } 2012 2011 2013 2012 out:
+3 -3
include/linux/ieee80211.h
··· 12 12 * published by the Free Software Foundation. 13 13 */ 14 14 15 - #ifndef IEEE80211_H 16 - #define IEEE80211_H 15 + #ifndef LINUX_IEEE80211_H 16 + #define LINUX_IEEE80211_H 17 17 18 18 #include <linux/types.h> 19 19 #include <asm/byteorder.h> ··· 1114 1114 return hdr->addr1; 1115 1115 } 1116 1116 1117 - #endif /* IEEE80211_H */ 1117 + #endif /* LINUX_IEEE80211_H */
+3 -2
include/net/lib80211.h
··· 8 8 #ifndef LIB80211_H 9 9 #define LIB80211_H 10 10 11 - /* escape_ssid() is intended to be used in debug (and possibly error) 11 + /* print_ssid() is intended to be used in debug (and possibly error) 12 12 * messages. It should never be used for passing ssid to user space. */ 13 - const char *escape_ssid(const char *ssid, u8 ssid_len); 13 + const char *print_ssid(char *buf, const char *ssid, u8 ssid_len); 14 + #define DECLARE_SSID_BUF(var) char var[32 * 4 + 1] __maybe_unused 14 15 15 16 #endif /* LIB80211_H */
+12 -7
net/ieee80211/ieee80211_rx.c
··· 1124 1124 *info_element, u16 length, 1125 1125 struct ieee80211_network *network) 1126 1126 { 1127 + DECLARE_SSID_BUF(ssid); 1127 1128 u8 i; 1128 1129 #ifdef CONFIG_IEEE80211_DEBUG 1129 1130 char rates_str[64]; ··· 1156 1155 IW_ESSID_MAX_SIZE - network->ssid_len); 1157 1156 1158 1157 IEEE80211_DEBUG_MGMT("MFIE_TYPE_SSID: '%s' len=%d.\n", 1159 - escape_ssid(network->ssid), 1158 + print_ssid(ssid, network->ssid, 1159 + network->ssid_len), 1160 1160 network->ssid_len); 1161 1161 break; 1162 1162 ··· 1403 1401 struct ieee80211_network *network, 1404 1402 struct ieee80211_rx_stats *stats) 1405 1403 { 1404 + DECLARE_SSID_BUF(ssid); 1405 + 1406 1406 network->qos_data.active = 0; 1407 1407 network->qos_data.supported = 0; 1408 1408 network->qos_data.param_count = 0; ··· 1453 1449 if (network->mode == 0) { 1454 1450 IEEE80211_DEBUG_SCAN("Filtered out '%s (%pM)' " 1455 1451 "network.\n", 1456 - escape_ssid(network->ssid, 1452 + print_ssid(ssid, network->ssid, 1457 1453 network->ssid_len), 1458 1454 network->bssid); 1459 1455 return 1; ··· 1567 1563 struct ieee80211_info_element *info_element = beacon->info_element; 1568 1564 #endif 1569 1565 unsigned long flags; 1566 + DECLARE_SSID_BUF(ssid); 1570 1567 1571 1568 IEEE80211_DEBUG_SCAN("'%s' (%pM" 1572 1569 "): %c%c%c%c %c%c%c%c-%c%c%c%c %c%c%c%c\n", 1573 - escape_ssid(info_element->data, info_element->len), 1570 + print_ssid(ssid, info_element->data, info_element->len), 1574 1571 beacon->header.addr3, 1575 1572 (beacon->capability & cpu_to_le16(1 << 0xf)) ? '1' : '0', 1576 1573 (beacon->capability & cpu_to_le16(1 << 0xe)) ? '1' : '0', ··· 1592 1587 1593 1588 if (ieee80211_network_init(ieee, beacon, &network, stats)) { 1594 1589 IEEE80211_DEBUG_SCAN("Dropped '%s' (%pM) via %s.\n", 1595 - escape_ssid(info_element->data, 1590 + print_ssid(ssid, info_element->data, 1596 1591 info_element->len), 1597 1592 beacon->header.addr3, 1598 1593 is_beacon(beacon->header.frame_ctl) ? ··· 1630 1625 target = oldest; 1631 1626 IEEE80211_DEBUG_SCAN("Expired '%s' (%pM) from " 1632 1627 "network list.\n", 1633 - escape_ssid(target->ssid, 1628 + print_ssid(ssid, target->ssid, 1634 1629 target->ssid_len), 1635 1630 target->bssid); 1636 1631 ieee80211_network_reset(target); ··· 1643 1638 1644 1639 #ifdef CONFIG_IEEE80211_DEBUG 1645 1640 IEEE80211_DEBUG_SCAN("Adding '%s' (%pM) via %s.\n", 1646 - escape_ssid(network.ssid, 1641 + print_ssid(ssid, network.ssid, 1647 1642 network.ssid_len), 1648 1643 network.bssid, 1649 1644 is_beacon(beacon->header.frame_ctl) ? ··· 1654 1649 list_add_tail(&target->list, &ieee->network_list); 1655 1650 } else { 1656 1651 IEEE80211_DEBUG_SCAN("Updating '%s' (%pM) via %s.\n", 1657 - escape_ssid(target->ssid, 1652 + print_ssid(ssid, target->ssid, 1658 1653 target->ssid_len), 1659 1654 target->bssid, 1660 1655 is_beacon(beacon->header.frame_ctl) ?
+5 -2
net/ieee80211/ieee80211_wx.c
··· 34 34 #include <linux/module.h> 35 35 #include <linux/jiffies.h> 36 36 37 + #include <net/lib80211.h> 37 38 #include <net/ieee80211.h> 38 39 #include <linux/wireless.h> 39 40 ··· 259 258 char *ev = extra; 260 259 char *stop = ev + wrqu->data.length; 261 260 int i = 0; 261 + DECLARE_SSID_BUF(ssid); 262 262 263 263 IEEE80211_DEBUG_WX("Getting scan\n"); 264 264 ··· 279 277 else 280 278 IEEE80211_DEBUG_SCAN("Not showing network '%s (" 281 279 "%pM)' due to age (%dms).\n", 282 - escape_ssid(network->ssid, 280 + print_ssid(ssid, network->ssid, 283 281 network->ssid_len), 284 282 network->bssid, 285 283 jiffies_to_msecs(jiffies - ··· 309 307 int i, key, key_provided, len; 310 308 struct ieee80211_crypt_data **crypt; 311 309 int host_crypto = ieee->host_encrypt || ieee->host_decrypt || ieee->host_build_iv; 310 + DECLARE_SSID_BUF(ssid); 312 311 313 312 IEEE80211_DEBUG_WX("SET_ENCODE\n"); 314 313 ··· 405 402 memset(sec.keys[key] + erq->length, 0, 406 403 len - erq->length); 407 404 IEEE80211_DEBUG_WX("Setting key %d to '%s' (%d:%d bytes)\n", 408 - key, escape_ssid(sec.keys[key], len), 405 + key, print_ssid(ssid, sec.keys[key], len), 409 406 erq->length, len); 410 407 sec.key_sizes[key] = len; 411 408 if (*crypt)
+4 -5
net/wireless/lib80211.c
··· 19 19 MODULE_AUTHOR("John W. Linville <linville@tuxdriver.com>"); 20 20 MODULE_LICENSE("GPL"); 21 21 22 - const char *escape_ssid(const char *ssid, u8 ssid_len) 22 + const char *print_ssid(char *buf, const char *ssid, u8 ssid_len) 23 23 { 24 - static char escaped[IEEE80211_MAX_SSID_LEN * 4 + 1]; 25 24 const char *s = ssid; 26 - char *d = escaped; 25 + char *d = buf; 27 26 28 27 ssid_len = min_t(u8, ssid_len, IEEE80211_MAX_SSID_LEN); 29 28 while (ssid_len--) { ··· 47 48 s++; 48 49 } 49 50 *d = '\0'; 50 - return escaped; 51 + return buf; 51 52 } 52 - EXPORT_SYMBOL(escape_ssid); 53 + EXPORT_SYMBOL(print_ssid); 53 54 54 55 static int __init ieee80211_init(void) 55 56 {