if (vm->run(&args))
{
NXSL_Value *value = vm->getResult();
- const TCHAR *dciValue = value->getValueAsCString();
- nx_strncpy(buffer, CHECK_NULL_EX(dciValue), bufSize);
- rc = DCE_SUCCESS;
+ if (value->isNull())
+ {
+ // NULL value is an error indicator
+ rc = DCE_COMM_ERROR;
+ }
+ else
+ {
+ const TCHAR *dciValue = value->getValueAsCString();
+ nx_strncpy(buffer, CHECK_NULL_EX(dciValue), bufSize);
+ rc = DCE_SUCCESS;
+ }
}
else
{
vm->setGlobalVariable(_T("$isCluster"), new NXSL_Value((getObjectClass() == OBJECT_CLUSTER) ? 1 : 0));
if (vm->run(&args))
{
+ rc = DCE_SUCCESS;
NXSL_Value *value = vm->getResult();
if (value->isArray())
{
*list = new StringList;
(*list)->add(value->getValueAsCString());
}
+ else if (value->isNull())
+ {
+ rc = DCE_COMM_ERROR;
+ }
else
{
*list = new StringList;
}
- rc = DCE_SUCCESS;
}
else
{