This patch fixes the following compile warning:
"cast to pointer from integer of different size
[-Wint-to-pointer-cast]" in CmHost.c. I am replacing
one statement with two.

The address of the buffer locations are being
taken from user space and stored in three different
structures: pstAddIndication->AdmittedSet, pstAddIn
dication->ActiveSet, and pstAddIndication->AuthorizedSet.
Before reading the address we need to convert it to
little endian notation. Therefore, we create a local
unsigned long variable, addr_conn_params, and
store the results of "ntohl". This value is then
cast to a "bcm_connect_mgr_params" structure.

Signed-off-by: Kevin McKinney <[email protected]>
---
 drivers/staging/bcm/CmHost.c |   11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c
index 482e595..de012c2 100644
--- a/drivers/staging/bcm/CmHost.c
+++ b/drivers/staging/bcm/CmHost.c
@@ -1338,6 +1338,7 @@ ULONG StoreCmControlResponseMessage(struct 
bcm_mini_adapter *Adapter, PVOID pvBu
        struct bcm_del_request *pstDeletionRequest;
        UINT uiSearchRuleIndex;
        ULONG ulSFID;
+       unsigned long addr_conn_params;
 
        pstAddIndicationAlt = (struct bcm_add_indication_alt *)(pvBuffer);
 
@@ -1383,8 +1384,8 @@ ULONG StoreCmControlResponseMessage(struct 
bcm_mini_adapter *Adapter, PVOID pvBu
                return 0;
        }
 
-       /* this can't possibly be right */
-       pstAddIndication->psfAuthorizedSet = (struct bcm_connect_mgr_params 
*)ntohl((ULONG)pstAddIndication->psfAuthorizedSet);
+       addr_conn_params = ntohl((unsigned 
long)pstAddIndication->psfAuthorizedSet);
+       pstAddIndication->psfAuthorizedSet = (struct bcm_connect_mgr_params 
*)addr_conn_params;
 
        if (pstAddIndicationAlt->u8Type == DSA_REQ) {
                struct bcm_add_request AddRequest;
@@ -1423,7 +1424,8 @@ ULONG StoreCmControlResponseMessage(struct 
bcm_mini_adapter *Adapter, PVOID pvBu
                return 0;
        }
 
-       pstAddIndication->psfAdmittedSet = (struct bcm_connect_mgr_params 
*)ntohl((ULONG)pstAddIndication->psfAdmittedSet);
+       addr_conn_params = ntohl((unsigned 
long)pstAddIndication->psfAdmittedSet);
+       pstAddIndication->psfAdmittedSet = (struct bcm_connect_mgr_params 
*)addr_conn_params;
 
        /* ACTIVE SET */
        pstAddIndication->psfActiveSet = (struct bcm_connect_mgr_params *)
@@ -1437,7 +1439,8 @@ ULONG StoreCmControlResponseMessage(struct 
bcm_mini_adapter *Adapter, PVOID pvBu
                return 0;
        }
 
-       pstAddIndication->psfActiveSet = (struct bcm_connect_mgr_params 
*)ntohl((ULONG)pstAddIndication->psfActiveSet);
+       addr_conn_params = ntohl((unsigned long)pstAddIndication->psfActiveSet);
+       pstAddIndication->psfActiveSet = (struct bcm_connect_mgr_params 
*)addr_conn_params;
 
        (*puBufferLength) = sizeof(struct bcm_add_indication);
        *(struct bcm_add_indication *)pvBuffer = *pstAddIndication;
-- 
1.7.9.5

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to