From ce7cb165dd6e0382661479eb51bad888cac3e84c Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Sat, 29 Nov 2025 16:52:14 +0100 Subject: [PATCH] Fix OAI_RNGSEED to capture unsigned long atoi() used previously does not capture all of unsigned long (so we could not reproduce a high seed), and its use is discouraged as it does not detect errors. Use strtoul() instead, which allows to also use other bases (so we can e.g., write OAI_RNGSEED=0x1234) --- openair1/SIMULATION/TOOLS/rangen_double.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/openair1/SIMULATION/TOOLS/rangen_double.c b/openair1/SIMULATION/TOOLS/rangen_double.c index 5f6f898066..9c38e33ce9 100644 --- a/openair1/SIMULATION/TOOLS/rangen_double.c +++ b/openair1/SIMULATION/TOOLS/rangen_double.c @@ -56,7 +56,14 @@ void randominit() unsigned long seed; const char* str_oai_rngseed = getenv("OAI_RNGSEED"); if (str_oai_rngseed != NULL) { - seed = atoi(str_oai_rngseed); + char *end; + seed = strtoul(str_oai_rngseed, &end, 0); /* 0: any base in hex, dec, oct */ + AssertFatal(*end == '\0' || *end == '\n', + "could not read seed %s at char '%c' (%d), pos %ld\n", + str_oai_rngseed, + *end, + *end, + end - str_oai_rngseed); } else { fill_random(&seed, sizeof(seed)); }