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:
@@ -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;
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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],
|
||||
|
||||
Reference in New Issue
Block a user