Browse Source

csrng: Use random integer distribution instead of raw engine

Prevents returning the same value every single call.
Zach Hilman 7 năm trước cách đây
mục cha
commit
8cb2e7d881
1 tập tin đã thay đổi với 2 bổ sung1 xóa
  1. 2 1
      src/core/hle/service/spl/module.cpp

+ 2 - 1
src/core/hle/service/spl/module.cpp

@@ -28,8 +28,9 @@ void Module::Interface::GetRandomBytes(Kernel::HLERequestContext& ctx) {
 
     std::size_t size = ctx.GetWriteBufferSize();
 
+    std::uniform_int_distribution<u16> distribution(0, std::numeric_limits<u8>::max());
     std::vector<u8> data(size);
-    std::generate(data.begin(), data.end(), rng);
+    std::generate(data.begin(), data.end(), [&] { return static_cast<u8>(distribution(rng)); });
 
     ctx.WriteBuffer(data);