diff options
| author | David S. Miller <davem@davemloft.net> | 2010-09-09 22:27:33 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-09-09 22:27:33 -0700 | 
| commit | e548833df83c3554229eff0672900bfe958b45fd (patch) | |
| tree | 85efc4a76dc356593d6d394776aeb845dc580fb6 /net/wireless/wext-core.c | |
| parent | cbd9da7be869f676afc204e1a664163778c770bd (diff) | |
| parent | 053d8f6622701f849fda2ca2c9ae596c13599ba9 (diff) | |
| download | olio-linux-3.10-e548833df83c3554229eff0672900bfe958b45fd.tar.xz olio-linux-3.10-e548833df83c3554229eff0672900bfe958b45fd.zip  | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
	net/mac80211/main.c
Diffstat (limited to 'net/wireless/wext-core.c')
| -rw-r--r-- | net/wireless/wext-core.c | 16 | 
1 files changed, 16 insertions, 0 deletions
diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c index 40385936e28..dc675a3daa3 100644 --- a/net/wireless/wext-core.c +++ b/net/wireless/wext-core.c @@ -782,6 +782,22 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,  		}  	} +	if (IW_IS_GET(cmd) && !(descr->flags & IW_DESCR_FLAG_NOMAX)) { +		/* +		 * If this is a GET, but not NOMAX, it means that the extra +		 * data is not bounded by userspace, but by max_tokens. Thus +		 * set the length to max_tokens. This matches the extra data +		 * allocation. +		 * The driver should fill it with the number of tokens it +		 * provided, and it may check iwp->length rather than having +		 * knowledge of max_tokens. If the driver doesn't change the +		 * iwp->length, this ioctl just copies back max_token tokens +		 * filled with zeroes. Hopefully the driver isn't claiming +		 * them to be valid data. +		 */ +		iwp->length = descr->max_tokens; +	} +  	err = handler(dev, info, (union iwreq_data *) iwp, extra);  	iwp->length += essid_compat;  |