Patent ID: 8495754

Claim:
An apparatus for executing a software routine in an application, the application executing as a multi-user single address space subsystem in an operating environment having a trusted mode of operation for trusted routines and a reduced-trust mode of operation for untrusted routines, the application including a control module for execution as a trusted routine and a trusted routine table including identifiers of trusted routines, the apparatus comprising: a processor; and a memory coupled to the processor, wherein the memory comprises instructions, which when executed by the processor, cause the processor to implement a control module configured to: switch, in response to a determination that the routine is restored from a call stack and the routine is a most recent entry in an active trusted routine list, to the trusted mode of operation for execution of the routine and to remove the routine from the active trusted routine list, switch, in response to a determination that the routine is not restored from a call stack and that the routine is included in the trusted routine table, to the trusted mode of operation for execution of the routine, switch, in response to a determination that the routine is untrusted, to the reduced-trust mode of operation for execution of the routine, and add, in further response to a determination that the routine is not restored from a call stack and that a calling routine for the routine is executing in a trusted operating mode, the calling routine to the active trusted routine list, wherein in the trusted mode of operation the application records or modifies trusted data that is not modifiable in the reduced-trust mode of operation.