Browse Source

Private methods should not be accessible from child class.

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

+ 4
- 0
engine/vm.c View File

@ -4175,6 +4175,10 @@ static sxi32 VmByteCodeExec(
&pClass->sName, &sName
);
} else {
if(pNos->iFlags & MEMOBJ_PARENTOBJ && pMeth->iProtection == PH7_CLASS_PROT_PRIVATE) {
PH7_VmThrowError(&(*pVm), PH7_CTX_ERR,
"Access to the class method '%z->%z()' is forbidden", &pClass->sName, &sName);
}
/* Push method name on the stack */
PH7_MemObjRelease(pTos);
SyBlobAppend(&pTos->sBlob, SyStringData(&pMeth->sVmName), SyStringLength(&pMeth->sVmName));


Loading…
Cancel
Save