summaryrefslogtreecommitdiff
path: root/accel-pptpd/ppp
diff options
context:
space:
mode:
authorKozlov Dmitry <dima@server>2010-09-23 19:43:39 +0400
committerKozlov Dmitry <dima@server>2010-09-23 19:43:39 +0400
commit8681ad6d60565ca2e399156bf721f67f8a8bdc92 (patch)
treee736428b3d5dcfe52f65d9234b8ebc4ba17259cf /accel-pptpd/ppp
parent82b0f0953159fc9ab8e387f5e6014dc377b14b38 (diff)
downloadaccel-ppp-8681ad6d60565ca2e399156bf721f67f8a8bdc92.tar.gz
accel-ppp-8681ad6d60565ca2e399156bf721f67f8a8bdc92.zip
various bug fixes
Diffstat (limited to 'accel-pptpd/ppp')
-rw-r--r--accel-pptpd/ppp/ppp_fsm.c6
-rw-r--r--accel-pptpd/ppp/ppp_lcp.c3
2 files changed, 6 insertions, 3 deletions
diff --git a/accel-pptpd/ppp/ppp_fsm.c b/accel-pptpd/ppp/ppp_fsm.c
index 3b8d854d..8f8e8558 100644
--- a/accel-pptpd/ppp/ppp_fsm.c
+++ b/accel-pptpd/ppp/ppp_fsm.c
@@ -177,13 +177,13 @@ void ppp_fsm_timeout1(struct ppp_fsm_t *layer)
{
case FSM_Closing:
stop_timer(layer);
- if (layer->layer_finished) layer->layer_finished(layer);
layer->fsm_state=FSM_Closed;
+ if (layer->layer_finished) layer->layer_finished(layer);
break;
case FSM_Stopping:
stop_timer(layer);
- if (layer->layer_finished) layer->layer_finished(layer);
layer->fsm_state=FSM_Stopped;
+ if (layer->layer_finished) layer->layer_finished(layer);
break;
case FSM_Ack_Rcvd:
case FSM_Req_Sent:
@@ -397,8 +397,8 @@ void ppp_fsm_recv_term_ack(struct ppp_fsm_t *layer)
switch(layer->fsm_state)
{
case FSM_Closing:
- if (layer->layer_finished) layer->layer_finished(layer);
layer->fsm_state=FSM_Closed;
+ if (layer->layer_finished) layer->layer_finished(layer);
break;
case FSM_Stopping:
if (layer->layer_finished) layer->layer_finished(layer);
diff --git a/accel-pptpd/ppp/ppp_lcp.c b/accel-pptpd/ppp/ppp_lcp.c
index d28167e2..7081cbb3 100644
--- a/accel-pptpd/ppp/ppp_lcp.c
+++ b/accel-pptpd/ppp/ppp_lcp.c
@@ -267,6 +267,8 @@ static void send_conf_nak(struct ppp_fsm_t *fsm)
lcp_hdr->len=htons((ptr-buf)-2);
ppp_chan_send(lcp->ppp,lcp_hdr,ptr-buf);
+
+ _free(buf);
}
static void send_conf_rej(struct ppp_fsm_t *fsm)
@@ -319,6 +321,7 @@ static int lcp_recv_conf_req(struct ppp_lcp_t *lcp,uint8_t *data,int size)
hdr=(struct lcp_opt_hdr_t *)data;
ropt=_malloc(sizeof(*ropt));
+ memset(ropt, 0, sizeof(*ropt));
if (hdr->len>size) ropt->len=size;
else ropt->len=hdr->len;
ropt->hdr=hdr;