diff options
Diffstat (limited to 'ext/java/java.c')
-rw-r--r-- | ext/java/java.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/java/java.c b/ext/java/java.c index eac4745302..e74d060bbe 100644 --- a/ext/java/java.c +++ b/ext/java/java.c @@ -434,9 +434,15 @@ void java_call_function_handler jmethodID co = (*jenv)->GetMethodID(jenv, JG(reflect_class), "CreateObject", "(Ljava/lang/String;[Ljava/lang/Object;J)V"); - jstring className=(*jenv)->NewStringUTF(jenv, arguments[0]->value.str.val); + jstring className; (pval*)(long)result = object; + if (ZEND_NUM_ARGS() < 1) { + php_error(E_ERROR, "Missing classname in new Java() call"); + return; + } + + className=(*jenv)->NewStringUTF(jenv, arguments[0]->value.str.val); (*jenv)->CallVoidMethod(jenv, JG(php_reflect), co, className, _java_makeArray(arg_count-1, arguments+1 JG_CC), result); |