X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=postlicyd%2Fiplist.c;h=cddc70a69d32a3a4845097760a7b01a2d39dd9e4;hb=951c359eed1ce1d6894a3bf10855807f4c792978;hp=c2b471b13ce01bc8b27e383309cf9f13478f7e5a;hpb=6deab7a7086ccb592daa0c41e12759ec0b9c7aa0;p=apps%2Fpfixtools.git diff --git a/postlicyd/iplist.c b/postlicyd/iplist.c index c2b471b..cddc70a 100644 --- a/postlicyd/iplist.c +++ b/postlicyd/iplist.c @@ -414,7 +414,7 @@ static void iplist_filter_async(rbl_result_t *result, void *arg) --async->awaited; debug("got asynchronous request result for filter %s, rbl %d, still awaiting %d answers", - filter->name, result - array_ptr(async->results, 0), async->awaited); + filter->name, (int)(result - array_ptr(async->results, 0)), async->awaited); if (async->awaited == 0) { filter_result_t res = HTK_FAIL; @@ -456,6 +456,10 @@ static filter_result_t iplist_filter(const filter_t *filter, const query_t *quer bool error = true; if (parse_ipv4(query->client_address, &end, &ip) != 0) { + if (strchr(query->client_address, ':')) { + /* iplist only works on IPv4 */ + return HTK_FAIL; + } warn("invalid client address: %s, expected ipv4", query->client_address); return HTK_ERROR; @@ -509,6 +513,7 @@ static void *iplist_context_constructor(void) static void iplist_context_destructor(void *data) { iplist_async_data_t *ctx = data; + array_wipe(ctx->results); p_delete(&ctx); }