Fix warnings found by splint (#324)

* Fix warnings found by splint

* Ignore Win32 Builder warnings about possible data loss for integers.

* Fix Windows build warnings

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
Steve Karg
2022-08-17 23:23:26 -05:00
committed by GitHub
parent 8cddaa5881
commit c8671d54f7
15 changed files with 79 additions and 51 deletions
+3 -3
View File
@@ -61,10 +61,10 @@ bin/
Backup*
BACnet_BDT_table
address_cache
/build/*
/_build/*
**/build/*
**/_build/*
CMakeLists.txt.user
/out/*
**/out/*
Obj/
Release/
apps/piface/libmcp23s17/
+2
View File
@@ -502,6 +502,8 @@ elseif(WIN32)
$<$<BOOL:${BACDL_BIP}>:ws2_32>
$<$<BOOL:${BACDL_BIP}>:iphlpapi>)
add_definitions("/W3 /D_CRT_SECURE_NO_WARNINGS /wd4244 /wd4018 /wd4267")
target_sources(${PROJECT_NAME} PRIVATE
ports/win32/bacport.h
$<$<BOOL:${BACDL_BIP6}>:ports/win32/bip6.c>
+5 -3
View File
@@ -235,6 +235,7 @@ int main(int argc, char *argv[])
time_t timeout_seconds = 0;
bool found = false;
long dnet = -1;
unsigned object_type = 0;
BACNET_MAC_ADDRESS mac = { 0 };
BACNET_MAC_ADDRESS adr = { 0 };
BACNET_ADDRESS dest = { 0 };
@@ -289,8 +290,8 @@ int main(int argc, char *argv[])
target_args++;
} else if (target_args == 2) {
/* event-object-type */
if (bactext_object_type_strtol(argv[argi],
&data.eventObjectIdentifier.type)) {
if (bactext_object_type_strtol(argv[argi], &object_type)) {
data.eventObjectIdentifier.type = object_type;
target_args++;
} else {
fprintf(stderr, "event-object-type=%s invalid\n",
@@ -305,7 +306,8 @@ int main(int argc, char *argv[])
} else if (target_args == 4) {
/* event-state-acked */
if (bactext_event_state_strtol(argv[argi],
&data.eventStateAcked)) {
&object_type)) {
data.eventStateAcked = object_type;
target_args++;
} else {
fprintf(stderr, "event-state=%s invalid\n",
+9 -5
View File
@@ -252,6 +252,8 @@ int main(int argc, char *argv[])
BACNET_ADDRESS dest = { 0 };
bool specific_address = false;
int argi = 0;
unsigned object_type = 0;
unsigned object_property = 0;
unsigned int target_args = 0;
char *filename = NULL;
@@ -296,20 +298,22 @@ int main(int argc, char *argv[])
target_args++;
} else if (target_args == 1) {
if (bactext_object_type_strtol(
argv[argi], &Target_Object_Type) == false) {
argv[argi], &object_type) == false) {
fprintf(stderr, "object-type=%s invalid\n", argv[argi]);
return 1;
}
Target_Object_Type = object_type;
target_args++;
} else if (target_args == 2) {
Target_Object_Instance = strtol(argv[argi], NULL, 0);
target_args++;
} else if (target_args == 3) {
if (bactext_property_strtol(
argv[argi], &Target_Object_Property) == false) {
argv[argi], &object_property) == false) {
fprintf(stderr, "property=%s invalid\n", argv[argi]);
return 1;
}
Target_Object_Property = object_property;
target_args++;
} else if (target_args == 4) {
Target_Object_Index = strtol(argv[argi], NULL, 0);
@@ -399,7 +403,7 @@ int main(int argc, char *argv[])
}
if (Error_Detected) {
break;
}
}
/* wait until the device is bound, or timeout and quit */
if (!found) {
found = address_bind_request(
@@ -441,9 +445,9 @@ int main(int argc, char *argv[])
/* keep track of time for next check */
last_seconds = current_seconds;
}
if (Error_Detected) {
return 1;
}
}
return 0;
}
+3 -1
View File
@@ -359,6 +359,7 @@ int main(int argc, char *argv[])
int scan_count = 0;
int argi = 0;
long dnet = -1;
unsigned object_type = 0;
BACNET_MAC_ADDRESS mac = { 0 };
BACNET_MAC_ADDRESS adr = { 0 };
bool specific_address = false;
@@ -425,12 +426,13 @@ int main(int argc, char *argv[])
atexit(cleanup);
}
status = bactext_object_type_strtol(
argv[argi], &rpm_object->object_type);
argv[argi], &object_type);
if (status == false) {
fprintf(stderr, "Error: object-type=%s invalid\n",
argv[argi]);
return 1;
}
rpm_object->object_type = object_type;
if (rpm_object->object_type >= MAX_BACNET_OBJECT_TYPE) {
fprintf(stderr,
"object-type=%u - it must be less than %u\n",
+9 -5
View File
@@ -203,6 +203,8 @@ int main(int argc, char *argv[])
int count = 0;
int hour, min, sec, hundredths;
int year, month, day, wday;
unsigned object_type = 0;
unsigned object_property = 0;
char *filename = NULL;
filename = filename_remove_path(argv[0]);
@@ -228,15 +230,17 @@ int main(int argc, char *argv[])
}
/* decode the command line parameters */
Target_Device_Object_Instance = strtol(argv[1], NULL, 0);
if (bactext_object_type_strtol(argv[2], &Target_Object_Type) == false) {
if (bactext_object_type_strtol(argv[2], &object_type) == false) {
fprintf(stderr, "object-type=%s invalid\n", argv[2]);
return 1;
}
Target_Object_Type = object_type;
Target_Object_Instance = strtol(argv[3], NULL, 0);
if (bactext_property_strtol(argv[4], &Target_Object_Property) == false) {
if (bactext_property_strtol(argv[4], &object_property) == false) {
fprintf(stderr, "property=%s invalid\n", argv[4]);
return 1;
}
Target_Object_Property = object_property;
Target_Object_Range_Type = strtol(argv[5], NULL, 0);
/* some bounds checking */
if (Target_Device_Object_Instance > BACNET_MAX_INSTANCE) {
@@ -356,7 +360,7 @@ int main(int argc, char *argv[])
}
if (Error_Detected) {
break;
}
}
/* wait until the device is bound, or timeout and quit */
if (!found) {
found = address_bind_request(
@@ -396,9 +400,9 @@ int main(int argc, char *argv[])
/* keep track of time for next check */
last_seconds = current_seconds;
}
if (Error_Detected) {
return 1;
}
}
return 0;
}
+4 -2
View File
@@ -91,6 +91,7 @@ int main(int argc, char *argv[])
struct mstimer print_value_timer = { 0 };
float float_value = 0.0;
bool bool_value = false;
unsigned object_type = 0;
uint32_t unsigned_value = 0;
/* data from the command line */
unsigned long print_seconds = 10;
@@ -132,11 +133,12 @@ int main(int argc, char *argv[])
target_device_object_instance = strtol(argv[argi], NULL, 0);
target_args++;
} else if (target_args == 1) {
if (bactext_object_type_strtol(
argv[argi], &target_object_type) == false) {
if (bactext_object_type_strtol(argv[argi], &object_type) ==
false) {
fprintf(stderr, "object-type=%s invalid\n", argv[argi]);
return 1;
}
target_object_type = object_type;
target_args++;
} else if (target_args == 2) {
target_object_instance = strtol(argv[argi], NULL, 0);
+6 -4
View File
@@ -73,7 +73,8 @@ int main(int argc, char *argv[])
BACNET_COV_DATA cov_data;
BACNET_PROPERTY_VALUE value_list;
uint8_t tag;
unsigned int uint;
unsigned object_type = 0;
unsigned object_property = 0;
if (argc < 7) {
/* note: priority 16 and 0 should produce the same end results... */
@@ -173,20 +174,21 @@ int main(int argc, char *argv[])
/* decode the command line parameters */
cov_data.subscriberProcessIdentifier = strtol(argv[1], NULL, 0);
cov_data.initiatingDeviceIdentifier = strtol(argv[2], NULL, 0);
if (bactext_object_type_strtol(argv[3], &uint) == false) {
if (bactext_object_type_strtol(argv[3], &object_type) == false) {
fprintf(stderr, "error: object-type=%s invalid\n", argv[3]);
return 1;
}
cov_data.monitoredObjectIdentifier.type = (uint16_t)uint;
cov_data.monitoredObjectIdentifier.type = (uint16_t)object_type;
cov_data.monitoredObjectIdentifier.instance = strtol(argv[4], NULL, 0);
cov_data.timeRemaining = strtol(argv[5], NULL, 0);
cov_data.listOfValues = &value_list;
value_list.next = NULL;
if (bactext_property_strtol(argv[6], &value_list.propertyIdentifier) ==
if (bactext_property_strtol(argv[6], &object_property) ==
false) {
fprintf(stderr, "property=%s invalid\n", argv[6]);
return 1;
}
value_list.propertyIdentifier = object_property;
tag = strtol(argv[7], NULL, 0);
value_string = argv[8];
/* optional priority */
+5 -2
View File
@@ -135,6 +135,7 @@ int main(int argc, char *argv[])
time_t current_seconds = 0;
time_t timeout_seconds = 0;
int argi = 0;
unsigned object_type = 0;
bool by_name = false;
if (argc < 2) {
@@ -157,10 +158,11 @@ int main(int argc, char *argv[])
} else if (argc < 4) {
/* bacwh 8 1234 */
Target_Object_Instance_Min = Target_Object_Instance_Max = -1;
if (bactext_object_type_strtol(argv[1], &Target_Object_Type) == false) {
if (bactext_object_type_strtol(argv[1], &object_type) == false) {
fprintf(stderr, "object-type=%s invalid\n", argv[1]);
return 1;
}
Target_Object_Type = object_type;
Target_Object_Instance = strtol(argv[2], NULL, 0);
} else if (argc < 5) {
/* bacwh 0 4194303 "name" */
@@ -172,10 +174,11 @@ int main(int argc, char *argv[])
/* bacwh 0 4194303 8 1234 */
Target_Object_Instance_Min = strtol(argv[1], NULL, 0);
Target_Object_Instance_Max = strtol(argv[2], NULL, 0);
if (bactext_object_type_strtol(argv[3], &Target_Object_Type) == false) {
if (bactext_object_type_strtol(argv[3], &object_type) == false) {
fprintf(stderr, "object-type=%s invalid\n", argv[3]);
return 1;
}
Target_Object_Type = object_type;
Target_Object_Instance = strtol(argv[4], NULL, 0);
} else {
print_usage(filename_remove_path(argv[0]));
+6 -2
View File
@@ -239,6 +239,8 @@ int main(int argc, char *argv[])
uint16_t pdu_len = 0;
unsigned timeout = 100; /* milliseconds */
unsigned max_apdu = 0;
unsigned object_type = 0;
unsigned object_property = 0;
time_t elapsed_seconds = 0;
time_t last_seconds = 0;
time_t current_seconds = 0;
@@ -275,15 +277,17 @@ int main(int argc, char *argv[])
}
/* decode the command line parameters */
Target_Device_Object_Instance = strtol(argv[1], NULL, 0);
if (bactext_object_type_strtol(argv[2], &Target_Object_Type) == false) {
if (bactext_object_type_strtol(argv[2], &object_type) == false) {
fprintf(stderr, "object-type=%s invalid\n", argv[2]);
return 1;
}
Target_Object_Type = object_type;
Target_Object_Instance = strtol(argv[3], NULL, 0);
if (bactext_property_strtol(argv[4], &Target_Object_Property) == false) {
if (bactext_property_strtol(argv[4], &object_property) == false) {
fprintf(stderr, "property=%s invalid\n", argv[4]);
return 1;
}
Target_Object_Property = object_property;
Target_Object_Property_Priority = (uint8_t)strtol(argv[5], NULL, 0);
Target_Object_Property_Index = strtol(argv[6], NULL, 0);
if (Target_Object_Property_Index == -1) {
+4 -2
View File
@@ -277,6 +277,7 @@ int main(int argc, char *argv[])
bool status = false;
BACNET_APPLICATION_TAG property_tag;
uint8_t context_tag = 0;
unsigned object_type = 0;
unsigned property_id = 0;
unsigned property_array_index = 0;
int scan_count = 0;
@@ -318,12 +319,13 @@ int main(int argc, char *argv[])
arg_sets = 0;
while (wpm_object) {
tag_value_arg = 2 + (arg_sets * 6);
if (bactext_object_type_strtol(
argv[tag_value_arg], &wpm_object->object_type) == false) {
if (bactext_object_type_strtol(argv[tag_value_arg], &object_type) ==
false) {
fprintf(
stderr, "Error: object-type=%s invalid\n", argv[tag_value_arg]);
return 1;
}
wpm_object->object_type = object_type;
tag_value_arg++;
args_remaining--;
if (Verbose) {
+2 -2
View File
@@ -114,8 +114,8 @@ static void bacnet_data_object_store(int index,
{
BACNET_DATA_OBJECT *object = NULL;
assert(rp_data);
assert(value);
assert(rp_data != NULL);
assert(value != NULL);
if ((index < BACNET_DATA_OBJECT_MAX) && (!value->context_specific)) {
object = &Object_Table[index];
switch (rp_data->object_property) {
+3 -1
View File
@@ -164,6 +164,7 @@ int cl_decode_apdu(uint8_t *apdu,
int dec_len = 0;
uint8_t tag_number = 0;
uint32_t len_value_type = 0;
uint32_t enum_value = 0;
BACNET_UNSIGNED_INTEGER unsigned_value = 0;
if (decode_is_context_tag(&apdu[dec_len], 0)) {
@@ -195,10 +196,11 @@ int cl_decode_apdu(uint8_t *apdu,
return BACNET_STATUS_REJECT;
}
len = decode_enumerated(
&apdu[dec_len], len_value_type, &bcl->Property_Identifier);
&apdu[dec_len], len_value_type, &enum_value);
if (len < 0) {
return BACNET_STATUS_REJECT;
}
bcl->Property_Identifier = enum_value;
dec_len += len;
if (decode_is_context_tag(&apdu[dec_len], 3)) {
len = decode_tag_number_and_value(
+8 -8
View File
@@ -121,7 +121,7 @@ void color_rgb_from_xy(uint8_t *red, uint8_t *green, uint8_t *blue,
float x = x_coordinate;
float y = y_coordinate;
float z = 1.0f - x - y;
float Y = brightness;
float Y = (float)brightness;
Y /= 255.0f;
float X = (Y / y) * x;
float Z = (Y / y) * z;
@@ -448,17 +448,17 @@ void color_rgb_from_temperature(
/* Red values below 6600 K are always 255 */
red = 255.0;
} else {
red = temperature_kelvin - 60;
red = (float)(temperature_kelvin - 60);
red = 329.698727446 * pow(red, -0.1332047592);
red = clamp(red, 0.0, 255.0);
}
/* Calculate Green */
if (temperature_kelvin <= 66) {
/* Green values below 6600 K */
green = temperature_kelvin;
green = (float)temperature_kelvin;
green = 99.4708025861 * log(green) - 161.1195681661;
} else {
green = temperature_kelvin - 60;
green = (float)(temperature_kelvin - 60);
green = 288.1221695283 * pow(green, -0.0755148492);
}
green = clamp(green, 0.0, 255.0);
@@ -470,17 +470,17 @@ void color_rgb_from_temperature(
/* Blue values below 1900 K */
blue = 0.0;
} else {
blue = temperature_kelvin - 10;
blue = (float)(temperature_kelvin - 10);
blue = 138.5177312231 * log(blue) - 305.0447927307;
blue = clamp(blue, 0, 255);
}
if (r) {
*r = red;
*r = (uint8_t)red;
}
if (g) {
*g = green;
*g = (uint8_t)green;
}
if (b) {
*b = blue;
*b = (uint8_t)blue;
}
}
+10 -11
View File
@@ -786,11 +786,11 @@ int event_notify_decode_service_request(
if (-1 == (section_length =
decode_enumerated(&apdu[len],
len_value,
&data->
notificationParams.commandFailure.
commandValue.binaryValue))) {
&enum_value))) {
return -1;
}
data->notificationParams.commandFailure.
commandValue.binaryValue = enum_value;
break;
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
@@ -836,13 +836,12 @@ int event_notify_decode_service_request(
switch (tag_number) {
case BACNET_APPLICATION_TAG_ENUMERATED:
if (-1 == (section_length =
decode_enumerated(&apdu[len],
len_value,
&data->
notificationParams.commandFailure.
feedbackValue.binaryValue))) {
decode_enumerated(&apdu[len], len_value,
&enum_value))) {
return -1;
}
data->notificationParams.commandFailure.
feedbackValue.binaryValue = enum_value;
break;
case BACNET_APPLICATION_TAG_UNSIGNED_INT:
@@ -1060,12 +1059,12 @@ int event_notify_decode_service_request(
case EVENT_ACCESS_EVENT:
if (-1 == (section_length =
decode_context_enumerated(&apdu[len], 0,
&data->notificationParams.
accessEvent.accessEvent))) {
&enum_value))) {
return -1;
}
data->notificationParams.accessEvent.accessEvent =
enum_value;
len += section_length;
if (-1 == (section_length =
decode_context_bitstring(&apdu[len], 1,
&data->notificationParams.