Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP2:GA
bind
0001-Fix-off-by-one-error-when-calculating-new-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Fix-off-by-one-error-when-calculating-new-hashtable.patch of Package bind
From 2b08ff879a445584ca39201523c161048f4c79cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= <ondrej@sury.org> Date: Fri, 28 Aug 2020 09:30:29 +0200 Subject: [PATCH] Fix off-by-one error when calculating new hashtable size When calculating the new hashtable bitsize, there was an off-by-one error that would allow the new bitsize to be larger than maximum allowed causing assertion failure in the rehash() function. (cherry picked from commit 78543ad5a7731e5f3a309c73e90a552df1a44af1) --- lib/dns/rbt.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/dns/rbt.c b/lib/dns/rbt.c index ab5453e78c..69b847c6d1 100644 --- a/lib/dns/rbt.c +++ b/lib/dns/rbt.c @@ -2331,10 +2331,9 @@ inithash(dns_rbt_t *rbt) { static uint32_t rehash_bits(dns_rbt_t *rbt, size_t newcount) { - uint32_t oldbits = rbt->hashbits; - uint32_t newbits = oldbits; + uint32_t newbits = rbt->hashbits; - while (newcount >= HASHSIZE(newbits) && newbits <= rbt->maxhashbits) { + while (newcount >= HASHSIZE(newbits) && newbits < rbt->maxhashbits) { newbits += 1; } @@ -2381,7 +2380,7 @@ rehash(dns_rbt_t *rbt, uint32_t newbits) { static void maybe_rehash(dns_rbt_t *rbt, size_t newcount) { uint32_t newbits = rehash_bits(rbt, newcount); - if (rbt->hashbits < newbits && newbits <= RBT_HASH_MAX_BITS) { + if (rbt->hashbits < newbits && newbits <= rbt->maxhashbits) { rehash(rbt, newbits); } } -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor