--- embedaddon/strongswan/src/libcharon/attributes/mem_pool.c 2020/06/03 09:46:44 1.1.1.1 +++ embedaddon/strongswan/src/libcharon/attributes/mem_pool.c 2021/03/17 00:20:08 1.1.1.2 @@ -307,8 +307,9 @@ static int get_existing(private_mem_pool_t *this, iden enumerator = array_create_enumerator(entry->online); while (enumerator->enumerate(enumerator, &lease)) { - if (lease->offset == host2offset(this, requested) && - lease->hash == hash_addr(peer)) + if (lease->hash == hash_addr(peer) && + (requested->is_anyaddr(requested) || + lease->offset == host2offset(this, requested))) { offset = lease->offset; /* add an additional "online" entry */