diff --git a/CHANGES b/CHANGES index 0045fc0373..d52d077f45 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +6383. [bug] Address an infinite loop in $GENERATE when a negative + value was converted in nibble mode. [GL #4353] + 6382. [bug] Fix RPZ response's SOA record TTL, which was incorrectly set to 1 if 'add-soa' is used. [GL #3323] diff --git a/bin/tests/system/checkzone/zones/good-generate-modifier.db b/bin/tests/system/checkzone/zones/good-generate-modifier.db index 3c811d60e0..be4be18dc2 100644 --- a/bin/tests/system/checkzone/zones/good-generate-modifier.db +++ b/bin/tests/system/checkzone/zones/good-generate-modifier.db @@ -18,3 +18,4 @@ $GENERATE 0-7 host$ A 1.2.3.${1,0,d} $GENERATE 8-9 host$ A 1.2.3.${1,0} $GENERATE 10-11 host$ A 1.2.3.${1} $GENERATE 1024-1026 ${0,3,n} AAAA 2001:db8::${0,4,x} +$GENERATE 1024-1026 ${-2000,0,n} AAAA 2001:db8::${0,4,x} diff --git a/lib/dns/master.c b/lib/dns/master.c index a9e7960d96..9f7258b3b3 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -581,7 +581,8 @@ static const char *hex = "0123456789abcdef0123456789ABCDEF"; * counting the terminating NUL. */ static unsigned int -nibbles(char *numbuf, size_t length, unsigned int width, char mode, int value) { +nibbles(char *numbuf, size_t length, unsigned int width, char mode, + unsigned int value) { unsigned int count = 0; /*