diff --git a/CHANGES b/CHANGES index be5a479ac8..09ff3a5bc1 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 c785022721..eab1d00364 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -626,7 +626,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; /*