提交 ad1b6c33 编写于 作者: K Kozlov Dmitry

cli: fixed crash if password is specified

cli: fixed exit command
上级 f7058be5
......@@ -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;
......
......@@ -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)
......
......@@ -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;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册