diff options
Diffstat (limited to 'accel-pppd/ctrl/ipoe/ipoe.c')
-rw-r--r-- | accel-pppd/ctrl/ipoe/ipoe.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/accel-pppd/ctrl/ipoe/ipoe.c b/accel-pppd/ctrl/ipoe/ipoe.c index 30ee87f0..a0ab5b85 100644 --- a/accel-pppd/ctrl/ipoe/ipoe.c +++ b/accel-pppd/ctrl/ipoe/ipoe.c @@ -1831,13 +1831,16 @@ void ipoe_recv_up(int ifindex, struct ethhdr *eth, struct iphdr *iph) if (serv->ifindex != ifindex) continue; - if (!serv->opt_up) + if (!serv->opt_up) { + pthread_mutex_unlock(&serv_lock); return; + } pthread_mutex_lock(&serv->lock); list_for_each_entry(ses, &serv->sessions, entry) { if (ses->yiaddr == iph->saddr) { pthread_mutex_unlock(&serv->lock); + pthread_mutex_unlock(&serv_lock); return; } } |