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

pppd_compat: fixed incorrect array size

上级 fd3509f7
......@@ -172,8 +172,8 @@ static void ev_ppp_started(struct ppp_t *ppp)
pid_t pid;
char *argv[8];
char *env[2];
char ipaddr[16];
char peer_ipaddr[16];
char ipaddr[17];
char peer_ipaddr[17];
char peername[64];
struct pppd_compat_pd_t *pd = find_pd(ppp);
......@@ -234,8 +234,8 @@ static void ev_ppp_finished(struct ppp_t *ppp)
pid_t pid;
char *argv[8];
char *env[5];
char ipaddr[16];
char peer_ipaddr[16];
char ipaddr[17];
char peer_ipaddr[17];
char peername[64];
char connect_time[24];
char bytes_sent[24];
......
......@@ -57,13 +57,13 @@ static void* sigchld_thread(void *arg)
list_for_each_entry(h, &handlers, entry) {
if (h->pid == pid) {
h0 = h;
list_del(&h0->entry);
pthread_mutex_lock(&h0->lock);
break;
}
}
pthread_mutex_unlock(&handlers_lock);
if (h0) {
list_del(&h0->entry);
h0->handler(h0, WEXITSTATUS(status));
h0->pid = 0;
pthread_mutex_unlock(&h0->lock);
......
......@@ -176,7 +176,10 @@ static void lcp_layer_finished(struct ppp_fsm_t *fsm)
stop_echo(lcp);
if (lcp->started) {
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
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.
先完成此消息的编辑!
想要评论请 注册