X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fuuid.cpp;h=bef038ac6f6675b915a9b3ee816b736918614190;hb=57b90af7b1977684094706818e387433f50b7d48;hp=dd59edc31c79e532f6b14bb8caa84d731fa430ef;hpb=e35e95ea77196e8997a02eda4bb8c1c5c6cba0fb;p=lttng-tools.git diff --git a/src/common/uuid.cpp b/src/common/uuid.cpp index dd59edc31..bef038ac6 100644 --- a/src/common/uuid.cpp +++ b/src/common/uuid.cpp @@ -7,6 +7,10 @@ */ #include +#include +#include +#include + #include #include #include @@ -78,18 +82,17 @@ int lttng_uuid_generate(lttng_uuid& uuid_out) int i, ret = 0; if (!lttng_uuid_is_init) { - /* - * We don't need cryptographic quality randomness to - * generate UUIDs, seed rand with the epoch. - */ - const time_t epoch = time(NULL); - - if (epoch == (time_t) -1) { + try { + srand(lttng::random::produce_best_effort_random_seed()); + } catch (std::exception& e) { + ERR("%s", + fmt::format("Failed to initialize random seed during generation of UUID: {}", + e.what()) + .c_str()); ret = -1; goto end; } - srand(epoch); lttng_uuid_is_init = true; }