From b95b01772d4636a400aa957a67e42b67c76cc84d Mon Sep 17 00:00:00 2001 From: skarg Date: Tue, 10 Nov 2009 03:41:22 +0000 Subject: [PATCH] Ran SPLINT (secure programming LINT) and fixed warnings. --- bacnet-stack/src/address.c | 28 ++++++++++++++++++---------- bacnet-stack/src/bacdcode.c | 6 +++--- bacnet-stack/src/bacreal.c | 4 ++-- bacnet-stack/src/bacstr.c | 6 ++++-- bacnet-stack/src/getevent.c | 4 ++-- bacnet-stack/src/mstp.c | 16 ++++++++-------- bacnet-stack/src/ptransfer.c | 4 ++-- bacnet-stack/src/readrange.c | 2 +- 8 files changed, 40 insertions(+), 30 deletions(-) diff --git a/bacnet-stack/src/address.c b/bacnet-stack/src/address.c index 41b537a5..91bab3aa 100644 --- a/bacnet-stack/src/address.c +++ b/bacnet-stack/src/address.c @@ -169,7 +169,7 @@ struct Address_Cache_Entry *address_remove_oldest( if ((pMatch-> Flags & (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ | BAC_ADDR_STATIC)) == - (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ)) { + ((uint8_t)(BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ))) { if (pMatch->TimeToLive <= ulTime) { /* Shorter lived entry found */ ulTime = pMatch->TimeToLive; pCandidate = pMatch; @@ -239,7 +239,7 @@ void address_file_init( } } address_add((uint32_t) device_id, max_apdu, &src); - address_set_device_TTL(device_id, 0, true); /* Mark as static entry */ + address_set_device_TTL((uint32_t)device_id, 0, true); /* Mark as static entry */ } } } @@ -494,9 +494,11 @@ bool address_bind_request( pMatch = Address_Cache; while (pMatch <= &Address_Cache[MAX_ADDRESS_CACHE - 1]) { if ((pMatch->Flags & (BAC_ADDR_IN_USE | BAC_ADDR_RESERVED)) == 0) { - pMatch->Flags = BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ; /* In use and awaiting binding */ + /* In use and awaiting binding */ + pMatch->Flags = (uint8_t)(BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ); pMatch->device_id = device_id; - pMatch->TimeToLive = BAC_ADDR_SHORT_TIME; /* No point in leaving bind requests in for long haul */ + /* No point in leaving bind requests in for long haul */ + pMatch->TimeToLive = BAC_ADDR_SHORT_TIME; /* now would be a good time to do a Who-Is request */ return (false); } @@ -506,9 +508,10 @@ bool address_bind_request( /* No free entries, See if we can squeeze it in by dropping an existing one */ pMatch = address_remove_oldest(); if (pMatch != NULL) { - pMatch->Flags = BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ; + pMatch->Flags = (uint8_t)(BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ); pMatch->device_id = device_id; - pMatch->TimeToLive = BAC_ADDR_SHORT_TIME; /* No point in leaving bind requests in for long haul */ + /* No point in leaving bind requests in for long haul */ + pMatch->TimeToLive = BAC_ADDR_SHORT_TIME; } return (false); } @@ -528,9 +531,13 @@ void address_add_binding( (pMatch->device_id == device_id)) { pMatch->address = *src; pMatch->max_apdu = max_apdu; - pMatch->Flags &= ~BAC_ADDR_BIND_REQ; /* Clear bind request flag in case it was set */ - if ((pMatch->Flags & BAC_ADDR_STATIC) == 0) /* Only update TTL if not static */ - pMatch->TimeToLive = BAC_ADDR_LONG_TIME; /* and set it on a long fuse */ + /* Clear bind request flag in case it was set */ + pMatch->Flags &= ~BAC_ADDR_BIND_REQ; + /* Only update TTL if not static */ + if ((pMatch->Flags & BAC_ADDR_STATIC) == 0) { + /* and set it on a long fuse */ + pMatch->TimeToLive = BAC_ADDR_LONG_TIME; + } break; } pMatch++; @@ -569,7 +576,8 @@ unsigned address_count( pMatch = Address_Cache; while (pMatch <= &Address_Cache[MAX_ADDRESS_CACHE - 1]) { - if ((pMatch->Flags & (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ)) == BAC_ADDR_IN_USE) /* Only count bound entries */ + /* Only count bound entries */ + if ((pMatch->Flags & (BAC_ADDR_IN_USE | BAC_ADDR_BIND_REQ)) == BAC_ADDR_IN_USE) count++; pMatch++; diff --git a/bacnet-stack/src/bacdcode.c b/bacnet-stack/src/bacdcode.c index a906892c..3603e97e 100644 --- a/bacnet-stack/src/bacdcode.c +++ b/bacnet-stack/src/bacdcode.c @@ -1193,7 +1193,7 @@ int encode_context_unsigned( len = 4; } - len = encode_tag(&apdu[0], tag_number, true, len); + len = encode_tag(&apdu[0], tag_number, true, (uint32_t)len); len += encode_bacnet_unsigned(&apdu[len], value); return len; @@ -1566,7 +1566,7 @@ int decode_bacnet_time_safe( btime->hundredths = 0; btime->min = 0; btime->sec = 0; - return len_value; + return (int)len_value; } else { return decode_bacnet_time(apdu, btime); } @@ -1699,7 +1699,7 @@ int decode_date_safe( bdate->month = 0; bdate->wday = 0; bdate->year = 0; - return len_value; + return (int)len_value; } else { return decode_date(apdu, bdate); } diff --git a/bacnet-stack/src/bacreal.c b/bacnet-stack/src/bacreal.c index 58e57bf8..d7423c6c 100644 --- a/bacnet-stack/src/bacreal.c +++ b/bacnet-stack/src/bacreal.c @@ -84,7 +84,7 @@ int decode_real_safe( { if (len_value != 4) { *real_value = 0.0f; - return len_value; + return (int)len_value; } else { return decode_real(apdu, real_value); } @@ -180,7 +180,7 @@ int decode_double_safe( { if (len_value != 8) { *double_value = 0.0; - return len_value; + return (int)len_value; } else { return decode_double(apdu, double_value); } diff --git a/bacnet-stack/src/bacstr.c b/bacnet-stack/src/bacstr.c index 63f64363..95c8b7de 100644 --- a/bacnet-stack/src/bacstr.c +++ b/bacnet-stack/src/bacstr.c @@ -198,12 +198,14 @@ bool bitstring_same( BACNET_BIT_STRING * bitstring2) { int i = 0; /* loop counter */ + int bytes_used = 0; + uint8_t compare_mask = 0; if (bitstring1 && bitstring1) { if ((bitstring1->bits_used == bitstring2->bits_used) && (bitstring1->bits_used / 8 <= MAX_BITSTRING_BYTES)) { - int bytes_used = bitstring1->bits_used / 8; - uint8_t compare_mask = 0xFF >> (8 - (bitstring1->bits_used % 8)); + bytes_used = (int)(bitstring1->bits_used / 8); + compare_mask = 0xFF >> (8 - (bitstring1->bits_used % 8)); for (i = 0; i < bytes_used; i++) { if (bitstring1->value[i] != bitstring2->value[i]) { diff --git a/bacnet-stack/src/getevent.c b/bacnet-stack/src/getevent.c index a0c9b246..4f598413 100644 --- a/bacnet-stack/src/getevent.c +++ b/bacnet-stack/src/getevent.c @@ -56,7 +56,7 @@ int getevent_encode_apdu( if (lastReceivedObjectIdentifier) { len = encode_context_object_id(&apdu[apdu_len], 0, - lastReceivedObjectIdentifier->type, + (int)lastReceivedObjectIdentifier->type, lastReceivedObjectIdentifier->instance); apdu_len += len; } @@ -121,7 +121,7 @@ int getevent_ack_encode_apdu_data( /* Tag 0: objectIdentifier */ apdu_len += encode_context_object_id(&apdu[apdu_len], 0, - event_data->objectIdentifier.type, + (int)event_data->objectIdentifier.type, event_data->objectIdentifier.instance); /* Tag 1: eventState */ apdu_len += diff --git a/bacnet-stack/src/mstp.c b/bacnet-stack/src/mstp.c index 2c377c38..14eacdad 100644 --- a/bacnet-stack/src/mstp.c +++ b/bacnet-stack/src/mstp.c @@ -447,7 +447,7 @@ void MSTP_Receive_Frame_FSM( /* NoData */ else if (mstp_port->DataLength == 0) { printf_receive_data("%s", - mstptext_frame_type(mstp_port->FrameType)); + mstptext_frame_type((unsigned)mstp_port->FrameType)); if ((mstp_port->DestinationAddress == mstp_port->This_Station) || (mstp_port->DestinationAddress == @@ -528,7 +528,7 @@ void MSTP_Receive_Frame_FSM( mstp_port->DataCRC); mstp_port->DataCRCActualLSB = mstp_port->DataRegister; printf_receive_data("%s", - mstptext_frame_type(mstp_port->FrameType)); + mstptext_frame_type((unsigned)mstp_port->FrameType)); /* STATE DATA CRC - no need for new state */ /* indicate the complete reception of a valid frame */ if (mstp_port->DataCRC == 0xF0B8) { @@ -634,7 +634,7 @@ bool MSTP_Master_Node_FSM( mstp_port->SourceAddress, mstp_port->DestinationAddress, mstp_port->DataLength, mstp_port->FrameCount, mstp_port->SilenceTimer(), - mstptext_frame_type(mstp_port->FrameType)); + mstptext_frame_type((unsigned)mstp_port->FrameType)); /* destined for me! */ if ((mstp_port->DestinationAddress == mstp_port->This_Station) || (mstp_port->DestinationAddress == @@ -663,12 +663,12 @@ bool MSTP_Master_Node_FSM( break; case FRAME_TYPE_BACNET_DATA_NOT_EXPECTING_REPLY: /* indicate successful reception to the higher layers */ - MSTP_Put_Receive(mstp_port); + (void)MSTP_Put_Receive(mstp_port); break; case FRAME_TYPE_BACNET_DATA_EXPECTING_REPLY: /*mstp_port->ReplyPostponedTimer = 0; */ /* indicate successful reception to the higher layers */ - MSTP_Put_Receive(mstp_port); + (void)MSTP_Put_Receive(mstp_port); /* broadcast DER just remains IDLE */ if (mstp_port->DestinationAddress != MSTP_BROADCAST_ADDRESS) { @@ -701,7 +701,7 @@ bool MSTP_Master_Node_FSM( /* more data frames. These may be BACnet Data frames or */ /* proprietary frames. */ /* FIXME: We could wait for up to Tusage_delay */ - length = MSTP_Get_Send(mstp_port, 0); + length = (unsigned)MSTP_Get_Send(mstp_port, 0); if (length < 1) { /* NothingToSend */ mstp_port->FrameCount = mstp_port->Nmax_info_frames; @@ -778,7 +778,7 @@ bool MSTP_Master_Node_FSM( /* ReceivedReply */ /* or a proprietary type that indicates a reply */ /* indicate successful reception to the higher layers */ - MSTP_Put_Receive(mstp_port); + (void)MSTP_Put_Receive(mstp_port); mstp_port->master_state = MSTP_MASTER_STATE_DONE_WITH_TOKEN; break; @@ -1036,7 +1036,7 @@ bool MSTP_Master_Node_FSM( /* BACnet Data Expecting Reply, a Test_Request, or */ /* a proprietary frame that expects a reply is received. */ /* FIXME: we could wait for up to Treply_delay */ - length = MSTP_Get_Reply(mstp_port, 0); + length = (unsigned)MSTP_Get_Reply(mstp_port, 0); if (length > 0) { /* Reply */ /* If a reply is available from the higher layers */ diff --git a/bacnet-stack/src/ptransfer.c b/bacnet-stack/src/ptransfer.c index 7344d322..1b36ac35 100644 --- a/bacnet-stack/src/ptransfer.c +++ b/bacnet-stack/src/ptransfer.c @@ -88,7 +88,7 @@ int ptransfer_encode_apdu( apdu[3] = SERVICE_CONFIRMED_PRIVATE_TRANSFER; apdu_len = 4; apdu_len = - pt_encode_apdu(&apdu[apdu_len], MAX_APDU - apdu_len, private_data); + pt_encode_apdu(&apdu[apdu_len], (uint16_t)(MAX_APDU - apdu_len), private_data); } return apdu_len; @@ -105,7 +105,7 @@ int uptransfer_encode_apdu( apdu[1] = SERVICE_UNCONFIRMED_PRIVATE_TRANSFER; apdu_len = 2; apdu_len = - pt_encode_apdu(&apdu[apdu_len], MAX_APDU - apdu_len, private_data); + pt_encode_apdu(&apdu[apdu_len], (uint16_t)(MAX_APDU - apdu_len), private_data); } return apdu_len; diff --git a/bacnet-stack/src/readrange.c b/bacnet-stack/src/readrange.c index 06d2af4d..939b34d9 100644 --- a/bacnet-stack/src/readrange.c +++ b/bacnet-stack/src/readrange.c @@ -176,7 +176,7 @@ int rr_decode_service_request( rrdata->array_index = BACNET_ARRAY_ALL; /* Assuming this is the most common outcome... */ if (len < apdu_len) { TagLen = - decode_tag_number_and_value(&apdu[len], &tag_number, + (unsigned)decode_tag_number_and_value(&apdu[len], &tag_number, &len_value_type); if (tag_number == 2) { len += TagLen;