Bugfix/win32 build warnings (#936)

* Changed win32 port of localtime to use secure OS API functions when compiled with MSVC

* Changed all the sprintf to use snprintf instead in BSC tests to ensure null string endings.
This commit is contained in:
Steve Karg
2025-03-03 10:32:28 -06:00
committed by GitHub
parent b0a26cf2cd
commit 7e725ce028
21 changed files with 317 additions and 275 deletions
+4 -4
View File
@@ -467,16 +467,16 @@ bool bacnet_discover_property_name(
device_id, object_type, object_instance, object_property, &value);
if (status && value.tag == BACNET_APPLICATION_TAG_CHARACTER_STRING) {
if (characterstring_valid(&value.type.Character_String)) {
strncpy(
buffer, characterstring_value(&value.type.Character_String),
buffer_len - 1);
snprintf(
buffer, buffer_len, "%s",
characterstring_value(&value.type.Character_String));
} else {
status = false;
}
}
}
if (!status) {
strncpy(buffer, default_string, buffer_len);
snprintf(buffer, buffer_len, "%s", default_string);
}
return status;
+4 -3
View File
@@ -450,10 +450,11 @@ BSC_SC_RET bsc_hub_connector_start(
c->primary_url[0] = 0;
c->failover_url[0] = 0;
c->user_arg = user_arg;
strncpy((char *)c->primary_url, primaryURL, sizeof(c->primary_url) - 1);
snprintf((char *)c->primary_url, sizeof(c->primary_url), "%s", primaryURL);
if (failoverURL) {
strncpy(
(char *)c->failover_url, failoverURL, sizeof(c->failover_url) - 1);
snprintf(
(char *)c->failover_url, sizeof(c->failover_url), "%s",
failoverURL);
}
c->event_func = event_func;
bsc_init_ctx_cfg(
+6 -6
View File
@@ -267,10 +267,10 @@ copy_urls(BSC_NODE_SWITCH_CTX *ctx, int index, BSC_ADDRESS_RESOLUTION *r)
int i;
for (i = 0; i < r->urls_num; i++) {
ctx->initiator.urls[index].utf8_urls[i][0] = 0;
strncpy(
snprintf(
(char *)&ctx->initiator.urls[index].utf8_urls[i][0],
(char *)&r->utf8_urls[i][0],
sizeof(ctx->initiator.urls[index].utf8_urls[i]) - 1);
sizeof(ctx->initiator.urls[index].utf8_urls[i]), "%s",
(char *)r->utf8_urls[i]);
}
ctx->initiator.urls[index].urls_cnt = r->urls_num;
}
@@ -288,9 +288,9 @@ copy_urls2(BSC_NODE_SWITCH_CTX *ctx, int index, char **urls, size_t urls_cnt)
size_t i;
for (i = 0; i < urls_cnt; i++) {
ctx->initiator.urls[index].utf8_urls[i][0] = 0;
strncpy(
(char *)&ctx->initiator.urls[index].utf8_urls[i][0], urls[i],
sizeof(ctx->initiator.urls[index].utf8_urls[i]) - 1);
snprintf(
(char *)&ctx->initiator.urls[index].utf8_urls[i][0],
sizeof(ctx->initiator.urls[index].utf8_urls[i]), "%s", urls[i]);
}
ctx->initiator.urls[index].urls_cnt = urls_cnt;
}
+6 -5
View File
@@ -64,9 +64,10 @@ void bsc_copy_uuid(BACNET_SC_UUID *dst, BACNET_SC_UUID *src)
char *bsc_vmac_to_string(BACNET_SC_VMAC_ADDRESS *vmac)
{
static char buf[128];
sprintf(
buf, "%02x%02x%02x%02x%02x%02x", vmac->address[0], vmac->address[1],
vmac->address[2], vmac->address[3], vmac->address[4], vmac->address[5]);
snprintf(
buf, sizeof(buf), "%02x%02x%02x%02x%02x%02x", vmac->address[0],
vmac->address[1], vmac->address[2], vmac->address[3], vmac->address[4],
vmac->address[5]);
return buf;
}
@@ -78,8 +79,8 @@ char *bsc_vmac_to_string(BACNET_SC_VMAC_ADDRESS *vmac)
char *bsc_uuid_to_string(BACNET_SC_UUID *uuid)
{
static char buf[128];
sprintf(
buf,
snprintf(
buf, sizeof(buf),
"%02x%02x%02x%02x-%02x%02x%02x%02x-%02x%02x%02x%02x-%02x%02x%02x%02x",
uuid->uuid[0], uuid->uuid[1], uuid->uuid[2], uuid->uuid[3],
uuid->uuid[4], uuid->uuid[5], uuid->uuid[6], uuid->uuid[7],