diff --git a/libs/libMemoryModuleDumy/src/MemoryModule.cpp b/libs/libMemoryModuleDumy/src/MemoryModule.cpp index 97604b0..a09731a 100644 --- a/libs/libMemoryModuleDumy/src/MemoryModule.cpp +++ b/libs/libMemoryModuleDumy/src/MemoryModule.cpp @@ -2,26 +2,33 @@ #include +#include #include #include +#include #include #include #include -void generateRandomShmName(char *name, size_t length) +void generateRandomShmName(char *name, size_t length) { // Define the character set to choose from const char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; size_t charsetSize = sizeof(charset) - 1; - // Seed the random number generator (if not already done) - srand(time(NULL)); + using rng_type = std::mt19937; + static rng_type rng{ + static_cast( + std::random_device{}() ^ + static_cast(std::chrono::steady_clock::now().time_since_epoch().count()) ^ + static_cast(getpid()))}; + + std::uniform_int_distribution distribution(0, charsetSize - 1); // Generate random characters for (size_t i = 0; i < length; i++) { - int randomIndex = rand() % charsetSize; - name[i] = charset[randomIndex]; + name[i] = charset[distribution(rng)]; } // Null-terminate the string @@ -136,4 +143,4 @@ HMEMORYMODULE MemoryLoadLibrary(const void *moduleData, size_t size) } return handle; -} \ No newline at end of file +}