diff --git a/src/forward.c b/src/forward.c index 0447abb..0ad4f8a 100644 --- a/src/forward.c +++ b/src/forward.c @@ -293,8 +293,9 @@ static void forward_query(int udpfd, union mysockaddr *udpaddr, if (gobig && !bitvector) { - casediff = (i/BITS_IN_INT) + 1; /* length of array */ - if ((bitvector = whine_malloc(casediff))) + casediff = ((i - 1)/BITS_IN_INT) + 1; /* length of array */ + /* whine_malloc() zeros memory */ + if ((bitvector = whine_malloc(casediff * sizeof(unsigned int)))) goto big_redo; } }