From ef20f4870c60b81e98b1ac935169fedf2971d2a0 Mon Sep 17 00:00:00 2001 From: hejl <> Date: Mon, 8 Mar 2004 18:45:52 +0000 Subject: [lcd4linux @ 2004-03-08 18:45:52 by hejl] fixed segfault when using string concatenation --- evaluator.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/evaluator.c b/evaluator.c index 134e395..214de3e 100644 --- a/evaluator.c +++ b/evaluator.c @@ -1,4 +1,4 @@ -/* $Id: evaluator.c,v 1.16 2004/03/08 04:33:08 reinelt Exp $ +/* $Id: evaluator.c,v 1.17 2004/03/08 18:45:52 hejl Exp $ * * expression evaluation * @@ -23,6 +23,9 @@ * * * $Log: evaluator.c,v $ + * Revision 1.17 2004/03/08 18:45:52 hejl + * fixed segfault when using string concatenation + * * Revision 1.16 2004/03/08 04:33:08 reinelt * string concatenation fixed * @@ -991,7 +994,7 @@ static int EvalTree (NODE *Root) i = Root->Children-1; type = Root->Child[i]->Result->type; number = Root->Child[i]->Result->number; - string = Root->Child[i]->Result->string; + string = strdup(Root->Child[i]->Result->string); break; case O_SET: // variable assignment @@ -999,14 +1002,14 @@ static int EvalTree (NODE *Root) Root->Variable->value = DupResult (Root->Child[0]->Result); type = Root->Child[0]->Result->type; number = Root->Child[0]->Result->number; - string = Root->Child[0]->Result->string; + string = strdup(Root->Child[0]->Result->string); break; case O_CND: // conditional expression i = 1+(R2N(Root->Child[0]->Result) == 0.0); type = Root->Child[i]->Result->type; number = Root->Child[i]->Result->number; - string = Root->Child[i]->Result->string; + string = strdup(Root->Child[i]->Result->string); break; case O_OR: // logical OR -- cgit v1.2.3