diff options
author | David Marcec <dmarcecguzman@gmail.com> | 2018-08-12 02:31:43 +1000 |
---|---|---|
committer | David Marcec <dmarcecguzman@gmail.com> | 2018-08-12 02:31:43 +1000 |
commit | 10f494eefead7b2da17d8095abdfaad9ff9290fb (patch) | |
tree | 268b35667b3d77f1eb12940f9f66fb4894de82d1 /src/core | |
parent | 448290bee43b49d7502269b185938d6e8c1aca03 (diff) |
Better UUID randomness
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/hle/service/acc/profile_manager.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/hle/service/acc/profile_manager.h b/src/core/hle/service/acc/profile_manager.h index 908519095..314bccbf9 100644 --- a/src/core/hle/service/acc/profile_manager.h +++ b/src/core/hle/service/acc/profile_manager.h @@ -5,6 +5,7 @@ #pragma once #include <array> +#include <random> #include "boost/optional.hpp" #include "common/common_types.h" #include "common/swap.h" @@ -38,8 +39,12 @@ struct UUID { // TODO(ogniK): Properly generate uuids based on RFC-4122 const UUID& Generate() { - uuid[0] = (static_cast<u64>(std::rand()) << 32) | std::rand(); - uuid[1] = (static_cast<u64>(std::rand()) << 32) | std::rand(); + std::random_device device; + std::mt19937 gen(device()); + std::uniform_int_distribution<uint64_t> distribution(1, + std::numeric_limits<uint64_t>::max()); + uuid[0] = distribution(gen); + uuid[1] = distribution(gen); return *this; } |