Browse Source

Check access level for static methods call.

release/v0.1
Rafal Kupiec 1 year ago
parent
commit
1c0ba22c48
Signed by: belliash GPG Key ID: 4E829243E0CFE6B4
1 changed files with 3 additions and 0 deletions
  1. +3
    -0
      engine/vm.c

+ 3
- 0
engine/vm.c View File

@ -4336,6 +4336,9 @@ static sxi32 VmByteCodeExec(
} else if((pMeth->iFlags & PH7_CLASS_ATTR_STATIC) == 0) {
PH7_VmThrowError(&(*pVm), PH7_CTX_ERR, "Attempt to call statically a non-static method '%z::%z()'",
&pClass->sName, &sName);
} else if(!VmClassMemberAccess(&(*pVm), pClass, pMeth->iProtection)) {
PH7_VmThrowError(&(*pVm), PH7_CTX_ERR, "Method '%z::%z()' is inaccessible due to its protection level",
&pClass->sName, &sName);
} else {
/* Push method name on the stack */
PH7_MemObjRelease(pTos);

Loading…
Cancel
Save