|
@@ -512,9 +512,9 @@ static int get_priv_size(__u16 args)
|
|
/*
|
|
/*
|
|
* Re-calculate the size of private arguments
|
|
* Re-calculate the size of private arguments
|
|
*/
|
|
*/
|
|
-static int adjust_priv_size(__u16 args, union iwreq_data *wrqu)
|
|
|
|
|
|
+static int adjust_priv_size(__u16 args, struct iw_point *iwp)
|
|
{
|
|
{
|
|
- int num = wrqu->data.length;
|
|
|
|
|
|
+ int num = iwp->length;
|
|
int max = args & IW_PRIV_SIZE_MASK;
|
|
int max = args & IW_PRIV_SIZE_MASK;
|
|
int type = (args & IW_PRIV_TYPE_MASK) >> 12;
|
|
int type = (args & IW_PRIV_TYPE_MASK) >> 12;
|
|
|
|
|
|
@@ -976,7 +976,7 @@ static int ioctl_private_call(struct net_device *dev, struct ifreq *ifr,
|
|
* avoid leaking kernel bits outside. */
|
|
* avoid leaking kernel bits outside. */
|
|
if (!(descr->get_args & IW_PRIV_SIZE_FIXED)) {
|
|
if (!(descr->get_args & IW_PRIV_SIZE_FIXED)) {
|
|
extra_size = adjust_priv_size(descr->get_args,
|
|
extra_size = adjust_priv_size(descr->get_args,
|
|
- &(iwr->u));
|
|
|
|
|
|
+ &(iwr->u.data));
|
|
}
|
|
}
|
|
|
|
|
|
err = copy_to_user(iwr->u.data.pointer, extra,
|
|
err = copy_to_user(iwr->u.data.pointer, extra,
|