From: havoc Date: Thu, 12 Nov 2009 10:30:20 +0000 (+0000) Subject: fix crash if CVAR_HASHSIZE was set to a value below 65536 X-Git-Tag: xonotic-v0.1.0preview~1171 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=d09eb20c873f600641099ed4a37fea0069dcbad9;p=xonotic%2Fdarkplaces.git fix crash if CVAR_HASHSIZE was set to a value below 65536 git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9471 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/cvar.c b/cvar.c index 29e299e1..111550a8 100644 --- a/cvar.c +++ b/cvar.c @@ -38,7 +38,7 @@ cvar_t *Cvar_FindVar (const char *var_name) cvar_t *var; // use hash lookup to minimize search time - hashindex = CRC_Block((const unsigned char *)var_name, strlen(var_name)); + hashindex = CRC_Block((const unsigned char *)var_name, strlen(var_name)) % CVAR_HASHSIZE; for (var = cvar_hashtable[hashindex];var;var = var->nextonhashchain) if (!strcmp (var_name, var->name)) return var; @@ -449,7 +449,7 @@ void Cvar_RegisterVariable (cvar_t *variable) variable->next = next; // link to head of list in this hash table index - hashindex = CRC_Block((const unsigned char *)variable->name, strlen(variable->name)); + hashindex = CRC_Block((const unsigned char *)variable->name, strlen(variable->name)) % CVAR_HASHSIZE; variable->nextonhashchain = cvar_hashtable[hashindex]; cvar_hashtable[hashindex] = variable; } @@ -543,7 +543,7 @@ cvar_t *Cvar_Get (const char *name, const char *value, int flags, const char *ne cvar->next = next; // link to head of list in this hash table index - hashindex = CRC_Block((const unsigned char *)cvar->name, strlen(cvar->name)); + hashindex = CRC_Block((const unsigned char *)cvar->name, strlen(cvar->name)) % CVAR_HASHSIZE; cvar->nextonhashchain = cvar_hashtable[hashindex]; cvar_hashtable[hashindex] = cvar;