X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Flib%2Fnet%2FDeluge%2FDelugePageTransferP.nc;h=2ceb3ed0c1e44c751eed687cf7d83dc5947b78c4;hb=da0cfeda9689aa64cfce0aa209f51803dcb11c21;hp=e47a67506208b0aad67ca8e2d0824ed500693d19;hpb=594acbf436f5f78611348f7763a89c84f38ba46a;p=tinyos-2.x.git diff --git a/tos/lib/net/Deluge/DelugePageTransferP.nc b/tos/lib/net/Deluge/DelugePageTransferP.nc index e47a6750..2ceb3ed0 100644 --- a/tos/lib/net/Deluge/DelugePageTransferP.nc +++ b/tos/lib/net/Deluge/DelugePageTransferP.nc @@ -101,8 +101,10 @@ implementation void setupReqMsg() { - DelugeReqMsg *pReqMsg = (DelugeReqMsg *)(call SendReqMsg.getPayload(&pMsgBuf)); - + DelugeReqMsg *pReqMsg = (DelugeReqMsg *)(call SendReqMsg.getPayload(&pMsgBuf, sizeof(DelugeReqMsg))); + if (pReqMsg == NULL) { + return; + } if (state == S_RX_LOCKING) { if (isBusy_pMsgBuf) { return; @@ -151,7 +153,7 @@ implementation void setupDataMsg() { - DelugeDataMsg *pDataMsg = (DelugeDataMsg *)(call SendDataMsg.getPayload(&pMsgBuf)); + DelugeDataMsg *pDataMsg = (DelugeDataMsg *)(call SendDataMsg.getPayload(&pMsgBuf, sizeof(DelugeDataMsg))); uint16_t nextPkt; if (state != S_SENDING && state != S_TX_LOCKING) { @@ -363,7 +365,10 @@ implementation event void SendDataMsg.sendDone(message_t* msg, error_t error) { - DelugeDataMsg *pDataMsg = (DelugeDataMsg *)(call SendDataMsg.getPayload(&pMsgBuf)); + DelugeDataMsg *pDataMsg = (DelugeDataMsg *)(call SendDataMsg.getPayload(&pMsgBuf, sizeof (DelugeDataMsg))); + if (pDataMsg == NULL) { + return; + } BITVEC_CLEAR(pktsToSend, pDataMsg->pktNum); call Timer.startOneShot(2); @@ -417,7 +422,7 @@ call Leds.led1Toggle(); event void BlockRead.readDone[uint8_t img_num](storage_addr_t addr, void* buf, storage_len_t len, error_t error) { - DelugeDataMsg *pDataMsg = (DelugeDataMsg *)(call SendDataMsg.getPayload(&pMsgBuf)); + DelugeDataMsg *pDataMsg = (DelugeDataMsg *)(call SendDataMsg.getPayload(&pMsgBuf, sizeof(DelugeDataMsg))); // make sure this event for us if (buf != pDataMsg->data) { return;