summaryrefslogtreecommitdiff
path: root/accel-pppd/cli
diff options
context:
space:
mode:
authorKozlov Dmitry <xeb@mail.ru>2012-11-02 16:46:52 +0400
committerKozlov Dmitry <xeb@mail.ru>2012-11-02 16:46:52 +0400
commitf9d7a5755e9df40409864667811a4497bbd75b63 (patch)
tree7556adc60ea39837ce45233eef5c694a466bd4ec /accel-pppd/cli
parent4cbea24a9e2a71f6586a107c1e5ad4f2dc85b871 (diff)
downloadaccel-ppp-xebd-f9d7a5755e9df40409864667811a4497bbd75b63.tar.gz
accel-ppp-xebd-f9d7a5755e9df40409864667811a4497bbd75b63.zip
cli: fix double buffer free
Diffstat (limited to 'accel-pppd/cli')
-rw-r--r--accel-pppd/cli/tcp.c4
-rw-r--r--accel-pppd/cli/telnet.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/accel-pppd/cli/tcp.c b/accel-pppd/cli/tcp.c
index 9ea914c..b2ed910 100644
--- a/accel-pppd/cli/tcp.c
+++ b/accel-pppd/cli/tcp.c
@@ -208,8 +208,10 @@ static int cln_write(struct triton_md_handler_t *h)
_free(cln->xmit_buf);
cln->xmit_pos = 0;
- if (list_empty(&cln->xmit_queue))
+ if (list_empty(&cln->xmit_queue)) {
+ cln->xmit_buf = NULL;
break;
+ }
cln->xmit_buf = list_entry(cln->xmit_queue.next, typeof(*cln->xmit_buf), entry);
list_del(&cln->xmit_buf->entry);
diff --git a/accel-pppd/cli/telnet.c b/accel-pppd/cli/telnet.c
index 314ac9e..7409767 100644
--- a/accel-pppd/cli/telnet.c
+++ b/accel-pppd/cli/telnet.c
@@ -518,8 +518,10 @@ static int cln_write(struct triton_md_handler_t *h)
_free(cln->xmit_buf);
cln->xmit_pos = 0;
- if (list_empty(&cln->xmit_queue))
+ if (list_empty(&cln->xmit_queue)) {
+ cln->xmit_buf = NULL;
break;
+ }
cln->xmit_buf = list_entry(cln->xmit_queue.next, typeof(*cln->xmit_buf), entry);
list_del(&cln->xmit_buf->entry);