if (list_add(lines, line) == 0) {
lws_callback_on_writable_all_protocol(lws_get_context(wsi),
&protocols[PROTOCOL_MERICA_TERMINAL]);
+ } else {
+ free_line(line);
}
}
} else if (strcmp((const char *)in, "close") == 0) {
if (*pos == '\n' || (w->pos - w->text) == INPUT_LINE_LENGTH) {
*pos = 0;
- if (list_add(w->lines, w->text) == 0) {
- char *line = new_line();
- if (line) {
+ char *line = new_line();
+ if (line) {
+ if (list_add(w->lines, w->text) == 0) {
w->text = line;
w->pos = w->text;
lws_callback_on_writable_all_protocol(w->context,
&protocols[PROTOCOL_MERICA_TERMINAL]);
return;
}
+ free_line(line);
}
fprintf(stderr, "cannot malloc new line\n");
}