diff --git a/src/conio/cterm.c b/src/conio/cterm.c index b730d29b15b19114880f68af439c031bbaee13ad..d620905f03e6a4cfa2a518f094038bffcb363343 100644 --- a/src/conio/cterm.c +++ b/src/conio/cterm.c @@ -1983,7 +1983,7 @@ get_hexstr(char *str, char *end, char *out) static void parse_macro_string(struct cterminal *cterm, bool finish) { char *p = cterm->strbuf; - char *end; + char *end = NULL; int i; if (cterm->strbuflen == 0) { @@ -2127,16 +2127,20 @@ static void save_extended_colour_seq(struct cterminal *cterm, int fg, struct esc switch (count) { case 1: - asprintf(str, "%s", seq->param[seqoff]); + if(asprintf(str, "%s", seq->param[seqoff]) < 0) + *str = NULL; break; case 2: - asprintf(str, "%s;%s", seq->param[seqoff], seq->param[seqoff+1]); + if(asprintf(str, "%s;%s", seq->param[seqoff], seq->param[seqoff+1]) < 0) + *str = NULL; break; case 3: - asprintf(str, "%s;%s;%s", seq->param[seqoff], seq->param[seqoff+1], seq->param[seqoff+2]); + if(asprintf(str, "%s;%s;%s", seq->param[seqoff], seq->param[seqoff+1], seq->param[seqoff+2]) < 0) + *str = NULL; break; case 5: - asprintf(str, "%s;%s;%s;%s;%s", seq->param[seqoff], seq->param[seqoff+1], seq->param[seqoff+2], seq->param[seqoff+3], seq->param[seqoff+4]); + if(asprintf(str, "%s;%s;%s;%s;%s", seq->param[seqoff], seq->param[seqoff+1], seq->param[seqoff+2], seq->param[seqoff+3], seq->param[seqoff+4]) < 0) + *str = NULL; break; } }