diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c index 5789b3cc3..90a29b29b 100644 --- a/src/libcharon/sa/trap_manager.c +++ b/src/libcharon/sa/trap_manager.c @@ -557,6 +557,14 @@ METHOD(trap_manager_t, acquire, void, } wildcard = found->wildcard; + if (wildcard && (!data->dst || !data->src)) + { + DBG1(DBG_CFG, "unable to process acquire without selectors for " + "trap without destination address (reqid %u)", reqid); + this->lock->unlock(this->lock); + return; + } + this->mutex->lock(this->mutex); if (wildcard) {