protocol: fix json parsing

This commit is contained in:
Shuanglei Tao
2019-12-14 22:50:53 +08:00
parent d99193171d
commit cb02d79281

View File

@@ -43,7 +43,11 @@ send_initial_message(struct lws *wsi, int index) {
} }
bool bool
parse_window_size(const char *json, int *cols, int *rows) { parse_window_size(struct pss_tty *pss, int *cols, int *rows) {
char json[pss->len];
strncpy(json, pss->buffer + 1, pss->len - 1);
json[pss->len-1] = '\0';
json_object *obj = json_tokener_parse(json); json_object *obj = json_tokener_parse(json);
struct json_object *o = NULL; struct json_object *o = NULL;
@@ -368,7 +372,7 @@ callback_tty(struct lws *wsi, enum lws_callback_reasons reason,
case RESIZE_TERMINAL: case RESIZE_TERMINAL:
{ {
int cols, rows; int cols, rows;
if (parse_window_size(pss->buffer + 1, &cols, &rows)) { if (parse_window_size(pss, &cols, &rows)) {
if (pty_resize(proc->pty, cols, rows) < 0) { if (pty_resize(proc->pty, cols, rows) < 0) {
lwsl_err("pty_resize: %d (%s)\n", errno, strerror(errno)); lwsl_err("pty_resize: %d (%s)\n", errno, strerror(errno));
} }