mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-11 06:49:58 -04:00
Prevent arithmetic overflow of 'i' in master.c:generate
the value of 'i' in generate could overflow when adding 'step' to
it in the 'for' loop. Use an unsigned int for 'i' which will give
an additional bit and prevent the overflow. The inputs are both
less than 2^31 and and the result will be less than 2^32-1.
(cherry picked from commit 5abdee9004)
This commit is contained in:
parent
05224c32a7
commit
1eff9bbf37
1 changed files with 3 additions and 2 deletions
|
|
@ -790,7 +790,8 @@ generate(dns_loadctx_t *lctx, char *range, char *lhs, char *gtype, char *rhs,
|
|||
isc_buffer_t target;
|
||||
isc_result_t result;
|
||||
isc_textregion_t r;
|
||||
int i, n, start, stop, step = 0;
|
||||
int n, start, stop, step = 0;
|
||||
unsigned int i;
|
||||
dns_incctx_t *ictx;
|
||||
char dummy[2];
|
||||
|
||||
|
|
@ -845,7 +846,7 @@ generate(dns_loadctx_t *lctx, char *range, char *lhs, char *gtype, char *rhs,
|
|||
goto insist_cleanup;
|
||||
}
|
||||
|
||||
for (i = start; i <= stop; i += step) {
|
||||
for (i = start; i <= (unsigned int)stop; i += step) {
|
||||
result = genname(lhs, i, lhsbuf, DNS_MASTER_LHS);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto error_cleanup;
|
||||
|
|
|
|||
Loading…
Reference in a new issue