diff options
author | Michael Mann <mmann78@netscape.net> | 2014-04-27 17:54:32 -0400 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2014-04-27 21:55:53 +0000 |
commit | 98ed92729003166f0b4d1973112d64fb3c833048 (patch) | |
tree | d7232a97c0880339279d2532829246c08c193761 | |
parent | 4272cb8786dcd7d8426bcec4eb5a72e228c7c64c (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>
-rw-r--r-- | epan/wmem/wmem_map.c | 2 |
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(); |