X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=parser.c;h=49e965a097f0e5813023824e85062b38e3100da8;hp=6216997879e461e4c759cb17ec2959b9e362f5aa;hb=d39fb653aa3c5e807fb1b6b2a1aef8c3f608f409;hpb=fe296de42f96780b4a3c7c2647775ec3d8a5e59d diff --git a/parser.c b/parser.c index 6216997..49e965a 100644 --- a/parser.c +++ b/parser.c @@ -2056,7 +2056,7 @@ static bool parse_sya_operand(parser_t *parser, shunt *sy, bool with_labels) correct = correct_str(&corr, parser->correct_variables[i], parser_tokval(parser)); if (strcmp(correct, parser_tokval(parser))) { break; - } else if (correct) { + } else { mem_d(correct); correct = NULL; } @@ -2514,7 +2514,8 @@ static ast_expression* process_condition(parser_t *parser, ast_expression *cond, } unary = (ast_unary*)cond; - while (ast_istype(cond, ast_unary) && unary->op == INSTR_NOT_F) + /* ast_istype dereferences cond, should test here for safety */ + while (cond && ast_istype(cond, ast_unary) && unary->op == INSTR_NOT_F) { cond = unary->operand; unary->operand = NULL;