summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKozlov Dmitry <dima@server>2010-12-30 13:53:40 +0300
committerKozlov Dmitry <dima@server>2010-12-30 13:53:40 +0300
commitad1b6c33dc19ffd4ca87cc6c787f0f670c307cfc (patch)
tree3433a74bfaeeb1cab896e5932d4f5f31d0e4ea00
parentf7058be535637cc5cee39a9b1aa852461cfb66fd (diff)
downloadaccel-ppp-ad1b6c33dc19ffd4ca87cc6c787f0f670c307cfc.tar.gz
accel-ppp-ad1b6c33dc19ffd4ca87cc6c787f0f670c307cfc.zip
cli: fixed crash if password is specified
cli: fixed exit command
-rw-r--r--accel-pptpd/cli/cli.c4
-rw-r--r--accel-pptpd/cli/tcp.c2
-rw-r--r--accel-pptpd/cli/telnet.c8
3 files changed, 7 insertions, 7 deletions
diff --git a/accel-pptpd/cli/cli.c b/accel-pptpd/cli/cli.c
index 048809c1..ef168ded 100644
--- a/accel-pptpd/cli/cli.c
+++ b/accel-pptpd/cli/cli.c
@@ -181,7 +181,7 @@ int cli_process_cmd(struct cli_client_t *cln)
case CLI_CMD_EXIT:
cln->disconnect(cln);
case CLI_CMD_FAILED:
- return -1;
+ return 0;
case CLI_CMD_SYNTAX:
cli_send(cln, MSG_SYNTAX_ERROR);
return 0;
@@ -206,7 +206,7 @@ static void load_config(void)
_free(conf_cli_passwd);
opt = conf_get_opt("cli", "password");
if (opt)
- conf_cli_passwd = _strdup(conf_cli_passwd);
+ conf_cli_passwd = _strdup(opt);
else
conf_cli_passwd = NULL;
diff --git a/accel-pptpd/cli/tcp.c b/accel-pptpd/cli/tcp.c
index a2f9e079..260225f1 100644
--- a/accel-pptpd/cli/tcp.c
+++ b/accel-pptpd/cli/tcp.c
@@ -184,7 +184,7 @@ static int cln_read(struct triton_md_handler_t *h)
drop:
disconnect(cln);
- return 0;
+ return -1;
}
static int cln_write(struct triton_md_handler_t *h)
diff --git a/accel-pptpd/cli/telnet.c b/accel-pptpd/cli/telnet.c
index 751426d5..558af897 100644
--- a/accel-pptpd/cli/telnet.c
+++ b/accel-pptpd/cli/telnet.c
@@ -286,7 +286,7 @@ static int telnet_input_char(struct telnet_client_t *cln, uint8_t c)
if (strcmp((char *)cln->cmdline, conf_cli_passwd)) {
if (telnet_send(cln, MSG_AUTH_FAILED, sizeof(MSG_AUTH_FAILED)))
return -1;
- disconnect(cln);
+ cln->disconnect = 1;
return -1;
}
cln->auth = 1;
@@ -473,7 +473,7 @@ static int cln_read(struct triton_md_handler_t *h)
n = read(h->fd, recv_buf, RECV_BUF_SIZE);
if (n == 0) {
disconnect(cln);
- return 0;
+ return -1;
}
if (n < 0) {
if (errno != EAGAIN)
@@ -484,11 +484,11 @@ static int cln_read(struct triton_md_handler_t *h)
print_buf(cln->recv_buf + cln->recv_pos, n);*/
for (i = 0; i < n; i++) {
if (telnet_input_char(cln, recv_buf[i]))
- return -1;
+ break;
}
if (cln->disconnect) {
disconnect(cln);
- return 0;
+ return -1;
}
}