diff --git a/parser.c b/parser.c index 68104f6..691e296 100644 --- a/parser.c +++ b/parser.c @@ -230,13 +230,13 @@ loop: } else { // move result global variable "ANS" variable *ret = igetvar(it, "ANS"); - ret->type = it->ret->type; - if (ret->type == STRING) { + if (ret->type == STRING) free((void *)ret->value.p); + ret->type = it->ret->type; + if (ret->type == STRING) ret->value.p = (uint32_t)strclone((char *)it->ret->value.p); - } else { + else ret->value.p = it->ret->value.p; - } itryfree(it->ret); it->ret = ret; }