From 619062fb5535e9c454628df633eb4400587c13f2 Mon Sep 17 00:00:00 2001 From: Gilbert Clark Date: Thu, 2 Oct 2014 20:25:47 -0400 Subject: [PATCH] Fixing logic errors in HandlePluginResult --- src/Func.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Func.cc b/src/Func.cc index 547af2c6ce..409bdcae25 100644 --- a/src/Func.cc +++ b/src/Func.cc @@ -289,11 +289,14 @@ ValWrapper* Func::HandlePluginResult(ValWrapper* plugin_result, val_list* args, if ( (! yt) || yt->Tag() == TYPE_VOID ) { - char sbuf[1024]; - snprintf(sbuf, 1024, "plugin returned non-void result for void method %s", this->Name()); - reporter->InternalError(sbuf); + if(plugin_result && plugin_result->value) + { + char sbuf[1024]; + snprintf(sbuf, 1024, "plugin returned non-void result for void method %s", this->Name()); + reporter->InternalError(sbuf); + } } - else if ( plugin_result->value->Type()->Tag() != yt->Tag() && yt->Tag() != TYPE_ANY) + else if ( plugin_result->value && plugin_result->value->Type()->Tag() != yt->Tag() && yt->Tag() != TYPE_ANY) { char sbuf[1024]; snprintf(sbuf, 1024, "plugin returned wrong type (got %d, expecting %d) for %s", plugin_result->value->Type()->Tag(), yt->Tag(), this->Name());