aboutsummaryrefslogtreecommitdiffstats
path: root/epan/wmem
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-04-27 17:54:32 -0400
committerMichael Mann <mmann78@netscape.net>2014-04-27 21:55:53 +0000
commit98ed92729003166f0b4d1973112d64fb3c833048 (patch)
treed7232a97c0880339279d2532829246c08c193761 /epan/wmem
parent4272cb8786dcd7d8426bcec4eb5a72e228c7c64c (diff)
Fix rare case of wmem map being O(n)
For 'x' equal to 0, HASH() macro also returns 0 which makes wmem map O(n). When random generator will return 0 just use 1. Change-Id: If484091352a719aea27135a705d37ff4c184a13b Reviewed-on: https://code.wireshark.org/review/1387 Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/wmem')
-rw-r--r--epan/wmem/wmem_map.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/epan/wmem/wmem_map.c b/epan/wmem/wmem_map.c
index 11b914fbba..5db988133e 100644
--- a/epan/wmem/wmem_map.c
+++ b/epan/wmem/wmem_map.c
@@ -36,6 +36,8 @@ void
wmem_init_hashing(void)
{
x = g_random_int();
+ if (G_UNLIKELY(x == 0))
+ x = 1;
preseed = g_random_int();
postseed = g_random_int();