diff --git a/Engine/source/core/util/uuid.cpp b/Engine/source/core/util/uuid.cpp index dfc578e11..d3cc1de87 100644 --- a/Engine/source/core/util/uuid.cpp +++ b/Engine/source/core/util/uuid.cpp @@ -146,7 +146,14 @@ static void create_uuid_state(uuid_state *st) */ static void format_token(char *target, const xuuid_t *u) { - snprintf(target, strlen(target), "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", + // first loop, figure out the size needed. + size_t len = (size_t)snprintf(NULL, 0, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", + u->time_low, u->time_mid, u->time_hi_and_version, + u->clock_seq_hi_and_reserved, u->clock_seq_low, + u->node[0], u->node[1], u->node[2], + u->node[3], u->node[4], u->node[5]); + + snprintf(target, len+1, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", u->time_low, u->time_mid, u->time_hi_and_version, u->clock_seq_hi_and_reserved, u->clock_seq_low, u->node[0], u->node[1], u->node[2],