summaryrefslogtreecommitdiff
path: root/accel-pppd/cli
diff options
context:
space:
mode:
authorKozlov Dmitry <dima@server>2012-11-15 14:21:35 +0400
committerKozlov Dmitry <xeb@mail.ru>2013-01-24 23:51:33 +0400
commit45026d43f6cfbe0f6efa446b47629cb948db5a9d (patch)
treebe206f8519ba8169f7ca8e87f0cfc66b63ef9a74 /accel-pppd/cli
parent227298572c50013225752ff3af13ffc724d26ddf (diff)
downloadaccel-ppp-xebd-45026d43f6cfbe0f6efa446b47629cb948db5a9d.tar.gz
accel-ppp-xebd-45026d43f6cfbe0f6efa446b47629cb948db5a9d.zip
merge upstream
Diffstat (limited to 'accel-pppd/cli')
-rw-r--r--accel-pppd/cli/show_sessions.c2
-rw-r--r--accel-pppd/cli/std_cmd.c2
-rw-r--r--accel-pppd/cli/tcp.c4
-rw-r--r--accel-pppd/cli/telnet.c4
4 files changed, 9 insertions, 3 deletions
diff --git a/accel-pppd/cli/show_sessions.c b/accel-pppd/cli/show_sessions.c
index 9e0ad2f..2140dec 100644
--- a/accel-pppd/cli/show_sessions.c
+++ b/accel-pppd/cli/show_sessions.c
@@ -148,7 +148,7 @@ static int show_ses_exec(const char *cmd, char * const *f, int f_cnt, void *cli)
return CLI_CMD_OK;
}
} else if (!strcmp(f[i], "match")) {
- if (i == f_cnt - 1)
+ if (i >= f_cnt - 2)
return CLI_CMD_SYNTAX;
match_key = find_column(f[++i]);
if (!match_key) {
diff --git a/accel-pppd/cli/std_cmd.c b/accel-pppd/cli/std_cmd.c
index d2666d8..7a890d1 100644
--- a/accel-pppd/cli/std_cmd.c
+++ b/accel-pppd/cli/std_cmd.c
@@ -130,6 +130,8 @@ static int terminate_exec1(char * const *f, int f_cnt, void *cli)
pthread_rwlock_rdlock(&ses_lock);
list_for_each_entry(ses, &ses_list, entry) {
+ if (!ses->username)
+ continue;
if (pcre_exec(re, NULL, ses->username, strlen(ses->username), 0, 0, NULL, 0) < 0)
continue;
if (hard)
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 e9e886d..5a42a99 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);