prism54: prism54_get_encode() test below 0 on unsigned index
PATCH 1/1 prism54: prism54_get_encode() test below 0 on unsigned index
previously in this function:
u32 index = (dwrq->flags & IW_ENCODE_INDEX) - 1;
index is unsigned, so if -1, the original test (below) didn't work.
---
drivers/net/wireless/prism54/isl_ioctl.c +1 -1
@@ -1186,7 +1186,7 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, rvalue |=mgt_get_request (priv,DOT11_OID_DEFKEYID ,0 ,NULL , &r); devindex = r.u;/* Now get the key, return it */ -if ((index <0 ) || (index >3 )) +if (index ==-1 || index >3 )/* no index provided, use the current one */ index = devindex; rvalue |=mgt_get_request (priv,DOT11_OID_DEFKEYX , index,NULL , &r);
Quoted 3 lines · Roel Kluin
previously in this function:
u32 index = (
dwrq->flags&IW_ENCODE_INDEX) - 1;
Probably should just change that to an 'int' instead of a u32.
Dan
Quoted 21 lines
index is unsigned, so if -1, the original test (below) didn't work.
Signed-off-by Roel Kluin <[email protected]>---
drivers/net/wireless/prism54/isl_ioctl.c +1
-2@@ -1186,7 +1186,7 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, rvalue |=mgt_get_request (priv,DOT11_OID_DEFKEYID ,0 ,NULL , &r); devindex = r.u;/* Now get the key, return it */ -if ((index <0 ) || (index >3 )) +if (index ==-1 || index >3 )/* no index provided, use the current one */ index = devindex; rvalue |=mgt_get_request (priv,DOT11_OID_DEFKEYX , index,NULL , &r); --To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
PATCH v2 1/1 prism54: prism54_get_encode() test below 0 on unsigned index
Quoted 8 lines · Dan Williams
Quoted 1 line · Roel Kluin
u32 index = (
dwrq->flags&IW_ENCODE_INDEX) - 1;Probably should just change that to an 'int' instead of a u32.
Dan
Thanks, in that case use the patch below
---
when left unsigned, the test 'if (index < 0)' will not work.
---
drivers/net/wireless/prism54/isl_ioctl.c +2 -1
@@ -1158,7 +1158,8 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, {islpci_private *priv =netdev_priv (ndev);struct obj_key *key; -u32 devindex, index = (dwrq->flags &IW_ENCODE_INDEX ) -1 ; +u32 devindex; +int index = (dwrq->flags &IW_ENCODE_INDEX ) -1 ;u32 authen =0 , invoke =0 , exunencrypt =0 ;int rvalue;union oid_res_t r;
Quoted 21 lines · Roel Kluin
Quoted 8 lines · Dan Williams
Quoted 1 line · Roel Kluin
u32 index = (
dwrq->flags&IW_ENCODE_INDEX) - 1;Probably should just change that to an 'int' instead of a u32.
Dan
Thanks, in that case use the patch below
---
when left unsigned, the test 'if (index < 0)' will not work.Signed-off-by Roel Kluin <[email protected]>---
drivers/net/wireless/prism54/isl_ioctl.c +0
-0
drivers/net/wireless/prism54/isl_ioctl.c prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, · line 1162
Quoted 6 lines
drivers/net/wireless/prism54/isl_ioctl.c +2
-1@@ -1158,7 +1158,8 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, {islpci_private *priv =netdev_priv (ndev);struct obj_key *key; -u32 devindex, index = (dwrq->flags &IW_ENCODE_INDEX ) -1 ; +u32 devindex; +int index = (dwrq->flags &IW_ENCODE_INDEX ) -1 ;
The check for -1 seems silly lets just remove its use.
drivers/net/wireless/prism54/isl_ioctl.c +2 -2
@@ -1158,7 +1158,7 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, {islpci_private *priv =netdev_priv (ndev);struct obj_key *key; -u32 devindex, index = (dwrq->flags &IW_ENCODE_INDEX ) -1 ; +u32 devindex, index = (dwrq->flags &IW_ENCODE_INDEX );u32 authen =0 , invoke =0 , exunencrypt =0 ;int rvalue;union oid_res_t r;
@@ -1186,7 +1186,7 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, rvalue |=mgt_get_request (priv,DOT11_OID_DEFKEYID ,0 ,NULL , &r); devindex = r.u;/* Now get the key, return it */ -if (index ==-1 || index >3 ) +if (!index || index >3 )/* no index provided, use the current one */ index = devindex; rvalue |=mgt_get_request (priv,DOT11_OID_DEFKEYX , index,NULL , &r);
Quoted 47 lines · Luis R. Rodriguez
Quoted 21 lines · Roel Kluin
Quoted 8 lines · Dan Williams
Quoted 1 line · Roel Kluin
u32 index = (
dwrq->flags&IW_ENCODE_INDEX) - 1;Probably should just change that to an 'int' instead of a u32.
Dan
Thanks, in that case use the patch below
---
when left unsigned, the test 'if (index < 0)' will not work.Signed-off-by Roel Kluin <[email protected]>---
drivers/net/wireless/prism54/isl_ioctl.c +0
-0drivers/net/wireless/prism54/isl_ioctl.c prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, · line 1162
Quoted 6 lines
drivers/net/wireless/prism54/isl_ioctl.c +2
-1@@ -1158,7 +1158,8 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, {islpci_private *priv =netdev_priv (ndev);struct obj_key *key; -u32 devindex, index = (dwrq->flags &IW_ENCODE_INDEX ) -1 ; +u32 devindex; +int index = (dwrq->flags &IW_ENCODE_INDEX ) -1 ;The check for -1 seems silly lets just remove its use.
Signed-off-by Luis R. Rodriguez <[email protected]>drivers/net/wireless/prism54/isl_ioctl.c +1
-1@@ -1158,7 +1158,7 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, {islpci_private *priv =netdev_priv (ndev);struct obj_key *key; -u32 devindex, index = (dwrq->flags &IW_ENCODE_INDEX ) -1 ; +u32 devindex, index = (dwrq->flags &IW_ENCODE_INDEX );u32 authen =0 , invoke =0 , exunencrypt =0 ;int rvalue;union oid_res_t r;
drivers/net/wireless/prism54/isl_ioctl.c prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, · line 1192
Quoted 8 lines
drivers/net/wireless/prism54/isl_ioctl.c +1
-1@@ -1186,7 +1186,7 @@ prism54_get_encode(struct net_device *ndev, struct iw_request_info *info, rvalue |=mgt_get_request (priv,DOT11_OID_DEFKEYID ,0 ,NULL , &r); devindex = r.u;/* Now get the key, return it */ -if (index ==-1 || index >3 ) +if (!index || index >3 )/* no index provided, use the current one */ index = devindex; rvalue |=mgt_get_request (priv,DOT11_OID_DEFKEYX , index,NULL , &r);
This won't allow you to select index 0 then. Hence the reason why the -1 is necessary, so you can distinguish 'no index specified' from 'use index 0'. There's probably a better way to do it, but I don't think this patch will work.
Dan