... | ... |
@@ -234,7 +234,7 @@ char *internal_get_host_id(void) |
234 | 234 |
if (!(devices)) |
235 | 235 |
return NULL; |
236 | 236 |
|
237 |
- printable_md5 = calloc(1, 33); |
|
237 |
+ printable_md5 = calloc(1, 37); |
|
238 | 238 |
if (!(printable_md5)) |
239 | 239 |
return NULL; |
240 | 240 |
|
... | ... |
@@ -248,8 +248,19 @@ char *internal_get_host_id(void) |
248 | 248 |
free(devices[i].name); |
249 | 249 |
free(devices); |
250 | 250 |
|
251 |
- for (i=0; i < sizeof(raw_md5); i++) |
|
252 |
- sprintf(printable_md5+(i*2), "%02x", raw_md5[i]); |
|
251 |
+ for (i=0; i < sizeof(raw_md5); i++) { |
|
252 |
+ size_t len = strlen(printable_md5); |
|
253 |
+ switch (len) { |
|
254 |
+ case 8: |
|
255 |
+ case 13: |
|
256 |
+ case 18: |
|
257 |
+ case 23: |
|
258 |
+ printable_md5[len++] = '-'; |
|
259 |
+ break; |
|
260 |
+ } |
|
261 |
+ |
|
262 |
+ sprintf(printable_md5+len, "%02x", raw_md5[i]); |
|
263 |
+ } |
|
253 | 264 |
|
254 | 265 |
return printable_md5; |
255 | 266 |
} |