提交 b85986e5 编写于 作者: D Dmitry Kozlov

cli: fixed incorrect read procedure

上级 a49ab300
......@@ -154,31 +154,35 @@ static int cln_read(struct triton_md_handler_t *h)
}
cln->recv_pos += n;
d = strchr((char *)cln->cmdline, '\n');
if (!d) {
if (cln->recv_pos == RECV_BUF_SIZE) {
log_warn("cli: tcp: recv buffer overflow\n");
while (cln->recv_pos) {
d = strchr((char *)cln->cmdline, '\n');
if (!d) {
if (cln->recv_pos == RECV_BUF_SIZE) {
log_warn("cli: tcp: recv buffer overflow\n");
goto drop;
}
break;
}
continue;
}
*d = 0;
*d = 0;
if (!cln->auth) {
if (strcmp((char *)cln->cmdline, conf_cli_passwd))
break;
cln->auth = 1;
} else
cli_process_cmd(&cln->cli_client);
if (!cln->auth) {
if (strcmp((char *)cln->cmdline, conf_cli_passwd))
goto drop;
cln->auth = 1;
} else
cli_process_cmd(&cln->cli_client);
if (cln->disconnect)
break;
if (cln->disconnect)
goto drop;
memmove(cln->cmdline, d + 1, cln->recv_pos - ((uint8_t *)d + 1 - cln->cmdline));
cln->recv_pos -= (uint8_t *)d + 1 - cln->cmdline;
memmove(cln->cmdline, d + 1, cln->recv_pos);
}
}
drop:
disconnect(cln);
return 0;
}
......
......@@ -583,9 +583,7 @@ static void pppoe_recv_PADI(struct pppoe_serv_t *serv, uint8_t *pack, int size)
case TAG_END_OF_LIST:
break;
case TAG_SERVICE_NAME:
if (tag->tag_len == 0)
service_match = 1;
else if (conf_service_name) {
if (conf_service_name && tag->tag_len) {
if (ntohs(tag->tag_len) != strlen(conf_service_name))
break;
if (memcmp(tag->tag_data, conf_service_name, ntohs(tag->tag_len)))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册