From 9070fc8fc31f421a0137af92aa3712a17cc93642 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Fri, 11 Apr 2014 16:03:16 +0200 Subject: [PATCH] orcexecutor: Don't use negative values on arrays orc_program_find_var_by_name() can return -1 on errors, if that happens, don't try to read/write in random memory :) CID #1146974 CID #1146975 CID #1146976 --- orc/orcexecutor.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/orc/orcexecutor.c b/orc/orcexecutor.c index 96a7fc9..6fe296d 100644 --- a/orc/orcexecutor.c +++ b/orc/orcexecutor.c @@ -102,7 +102,8 @@ orc_executor_set_array_str (OrcExecutor *ex, const char *name, void *ptr) { int var; var = orc_program_find_var_by_name (ex->program, name); - ex->arrays[var] = ptr; + if (var >= 0) + ex->arrays[var] = ptr; } void @@ -142,7 +143,8 @@ orc_executor_set_param_str (OrcExecutor *ex, const char *name, int value) { int var; var = orc_program_find_var_by_name (ex->program, name); - ex->params[var] = value; + if (var >= 0) + ex->params[var] = value; } int @@ -156,7 +158,9 @@ orc_executor_get_accumulator_str (OrcExecutor *ex, const char *name) { int var; var = orc_program_find_var_by_name (ex->program, name); - return ex->accumulators[var]; + if (var >= 0) + return ex->accumulators[var]; + return -1; } void -- 2.7.4