|
@@ -146,7 +146,14 @@ static void create_uuid_state(uuid_state *st)
|
|
*/
|
|
*/
|
|
static void format_token(char *target, const xuuid_t *u)
|
|
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->time_low, u->time_mid, u->time_hi_and_version,
|
|
u->clock_seq_hi_and_reserved, u->clock_seq_low,
|
|
u->clock_seq_hi_and_reserved, u->clock_seq_low,
|
|
u->node[0], u->node[1], u->node[2],
|
|
u->node[0], u->node[1], u->node[2],
|