提交 0984abad 编写于 作者: K Kozlov Dmitry

pppd_compat: fixed incorrect array size

上级 fd3509f7
...@@ -172,8 +172,8 @@ static void ev_ppp_started(struct ppp_t *ppp) ...@@ -172,8 +172,8 @@ static void ev_ppp_started(struct ppp_t *ppp)
pid_t pid; pid_t pid;
char *argv[8]; char *argv[8];
char *env[2]; char *env[2];
char ipaddr[16]; char ipaddr[17];
char peer_ipaddr[16]; char peer_ipaddr[17];
char peername[64]; char peername[64];
struct pppd_compat_pd_t *pd = find_pd(ppp); struct pppd_compat_pd_t *pd = find_pd(ppp);
...@@ -234,8 +234,8 @@ static void ev_ppp_finished(struct ppp_t *ppp) ...@@ -234,8 +234,8 @@ static void ev_ppp_finished(struct ppp_t *ppp)
pid_t pid; pid_t pid;
char *argv[8]; char *argv[8];
char *env[5]; char *env[5];
char ipaddr[16]; char ipaddr[17];
char peer_ipaddr[16]; char peer_ipaddr[17];
char peername[64]; char peername[64];
char connect_time[24]; char connect_time[24];
char bytes_sent[24]; char bytes_sent[24];
......
...@@ -57,13 +57,13 @@ static void* sigchld_thread(void *arg) ...@@ -57,13 +57,13 @@ static void* sigchld_thread(void *arg)
list_for_each_entry(h, &handlers, entry) { list_for_each_entry(h, &handlers, entry) {
if (h->pid == pid) { if (h->pid == pid) {
h0 = h; h0 = h;
list_del(&h0->entry);
pthread_mutex_lock(&h0->lock); pthread_mutex_lock(&h0->lock);
break; break;
} }
} }
pthread_mutex_unlock(&handlers_lock); pthread_mutex_unlock(&handlers_lock);
if (h0) { if (h0) {
list_del(&h0->entry);
h0->handler(h0, WEXITSTATUS(status)); h0->handler(h0, WEXITSTATUS(status));
h0->pid = 0; h0->pid = 0;
pthread_mutex_unlock(&h0->lock); pthread_mutex_unlock(&h0->lock);
......
...@@ -176,7 +176,10 @@ static void lcp_layer_finished(struct ppp_fsm_t *fsm) ...@@ -176,7 +176,10 @@ static void lcp_layer_finished(struct ppp_fsm_t *fsm)
stop_echo(lcp); stop_echo(lcp);
if (lcp->started) { if (lcp->started) {
lcp->started = 0; lcp->started = 0;
ppp_layer_finished(lcp->ppp, &lcp->ld); if (lcp->ppp->terminating)
ppp_layer_finished(lcp->ppp, &lcp->ld);
else
ppp_terminate(lcp->ppp, TERM_NAS_ERROR, 1);
} else } else
ppp_terminate(lcp->ppp, TERM_NAS_ERROR, 1); ppp_terminate(lcp->ppp, TERM_NAS_ERROR, 1);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册