US 11,860,996 B1
Security concepts for web frameworks
Filip J. Pizlo, Capitola, CA (US); Yin Zin Mark Lam, Milpitas, CA (US); Jean-Francois Bastien, Sunnyvale, CA (US); and Michael L. Saboff, San Jose, CA (US)
Assigned to Apple Inc., Cupertino, CA (US)
Filed by Apple Inc., Cupertino, CA (US)
Filed on Apr. 5, 2019, as Appl. No. 16/376,091.
Claims priority of provisional application 62/653,608, filed on Apr. 6, 2018.
Int. Cl. G06F 21/54 (2013.01); G06F 21/12 (2013.01); G06F 9/455 (2018.01); G06F 9/445 (2018.01); G06F 8/41 (2018.01)
CPC G06F 21/54 (2013.01) [G06F 8/434 (2013.01); G06F 9/44568 (2013.01); G06F 9/45558 (2013.01); G06F 21/125 (2013.01); G06F 21/126 (2013.01); G06F 2009/45587 (2013.01)] 32 Claims
OG exemplary drawing
 
1. A data processing system comprising:
memory to store instructions which, when executed, provide a virtual machine; one or more processors to execute the instructions, wherein the instructions cause the one or more processors to:
load program code into the virtual machine;
identify a pointer within the program code loaded into the virtual machine, the pointer having a first value;
modify, during execution of the program code in the virtual machine, the pointer with a first key value to change the pointer to a second value; and
before a dereference of the pointer, apply a second key value to the pointer, wherein the pointer is restored to the first value when the first key value equals the second key value.