US Patent:
20120159463, Jun 21, 2012
Inventors:
Ian Druch - San Francisco CA, US
Sujatha Srinivasa Gopalan - Foster City CA, US
Assignee:
ORACLE INTERNATIONAL CORPORATION - Redwood Shores CA
International Classification:
G06F 9/45
G06F 9/44
Abstract:
Embodiments of the present disclosure involve a method for creating, applying, and removing a software fix for an application without terminating the application. To create the fix, the system converts an unresolved internal reference in a source code section to an external imported reference, generates a header file which includes a re-definition of the external imported reference, and generates a binary representation for the fix by compiling the source code section using the generated header file and linking the complied object. To apply the fix, the system loads the binary representation into a virtual address space, places a long jump operator in a compiler-generated padding prior to the start of an affected function, and replaces a no-operation prologue at the start of the function with a short jump operator in an atomic write operation. To remove the fix, the system replaces the short jump operator with the no-operation prologue, removes the long jump operator, and unloads the software fix.