aboutsummaryrefslogtreecommitdiffstats
path: root/code/client
diff options
context:
space:
mode:
Diffstat (limited to 'code/client')
-rw-r--r--code/client/cl_main.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/code/client/cl_main.c b/code/client/cl_main.c
index 08ee747..01c044a 100644
--- a/code/client/cl_main.c
+++ b/code/client/cl_main.c
@@ -1306,8 +1306,12 @@ void CL_RequestMotd( void ) {
BigShort( cls.updateServer.port ) );
info[0] = 0;
-
- Com_sprintf( cls.updateChallenge, sizeof( cls.updateChallenge ), "%i", (random() << 16) ^ random());
+ // NOTE TTimo xoring against Com_Milliseconds, otherwise we may not have a true randomization
+ // only srand I could catch before here is tr_noise.c l:26 srand(1001)
+ // https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=382
+ // NOTE: the Com_Milliseconds xoring only affects the lower 16-bit word,
+ // but I decided it was enough randomization
+ Com_sprintf( cls.updateChallenge, sizeof( cls.updateChallenge ), "%i", ((rand() << 16) ^ rand()) ^ Com_Milliseconds());
Info_SetValueForKey( info, "challenge", cls.updateChallenge );
Info_SetValueForKey( info, "renderer", cls.glconfig.renderer_string );