IP Library Granted Patent US 12,242,598
Granted Patent B2
US 12,242,598 · App. 18/489,545 · Granted Mar 4, 2025

Function pointer protection

Inventor: Michael Tsirkin (Westford, MA)
Assignee: Red Hat, Inc.
G06F21/54G06F9/547
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,242,598
App. No.
18/489,545
Granted
Mar 4, 2025
Kind
B2
Abstract

A system includes a memory and a processor in communication with the memory. The processor is configured to supply a library with a list of safe callback values, protect the list of safe callback values, invoke a callback, and validate the callback against the list of safe callback values to determine a status of the callback. The status of the callback is one of safe and unsafe. Additionally, the processor is configured to execute the callback responsive to determining the status of the callback is safe. The processor is also configured to abort the callback responsive to determining the status of the callback is unsafe.

Claims (37)

1. A system, comprising:

a memory; and

a processor in communication with the memory, wherein the processor is configured to:

load a first library for executing an application having a function with a callback,

access, via the first library, a second library to execute the function,

supply the second library with a list of safe callback values, wherein the list of safe callback values include instruction pointer addresses that are safe to jump to when executing the function of the application,

prevent the list of safe callback values from being modified,

validate the callback against the list of safe callback values to determine a status of the callback by at least comparing an instruction pointer address of the callback with the instruction pointer addresses of the list of safe callback values,

responsive to determining the status of the callback is safe, execute the callback, and

responsive to determining the status of the callback is unsafe, abort the callback.

2. The system of claim 1 , wherein the first library stores function pointers and performs calls or callbacks to execute the function of the application.

3. The system of claim 1 , wherein the processor is further configured to load an application programming interface (API) to the second library to validate the callback, wherein the API includes the list of safe callback values.

4. The system of claim 3 , wherein the callback is associated with memory allocation functions.

5. The system of claim 4 , wherein the API is configured to specify the memory allocation functions for determining the status of the callback.

6. A computer-implemented method, comprising:

loading a first library for executing an application having a function with a callback;

accessing, via the first library, a second library to execute the function;

supplying the second library with a list of safe callback values, wherein the list of safe callback values include instruction pointer addresses that are safe to jump to when executing the function of the application;

preventing the list of safe callback values from being modified;

validating the callback against the list of safe callback values to determine a status of the callback by at least comparing an instruction pointer address of the callback with the instruction pointer addresses of the list of safe callback values;

responsive to determining the status of the callback is safe, executing the callback; and

responsive to determining the status of the callback is unsafe, aborting the callback.

7. The computer-implemented method of claim 6 , wherein the first library stores function pointers and performs calls or callbacks to execute the function of the application.

8. The computer-implemented method of claim 6 , further comprising loading an application programming interface (API) to the second library to validate the callback, wherein the API includes the list of safe callback values.

9. The computer-implemented method of claim 8 , wherein the callback is associated with memory allocation functions.

10. The computer-implemented method of claim 9 , further comprising specifying, via the API, the memory allocation functions for determining the status of the callback.

11. A non-transitory machine-readable medium storing code which, when executed by a processor is configured to:

load a first library for executing an application having a function with a callback;

access, via the first library, a second library to execute the function;

supply the second library with a list of safe callback values, wherein the list of safe callback values include instruction pointer addresses that are safe to jump to when executing the function of the application;

prevent the list of safe callback values from being modified;

validate the callback against the list of safe callback values to determine a status of the callback by at least comparing an instruction pointer address of the callback with the instruction pointer addresses of the list of safe callback values;

responsive to determining the status of the callback is safe, execute the callback; and

responsive to determining the status of the callback is unsafe, abort the callback.

12. The non-transitory machine-readable medium of claim 11 , wherein the first library stores function pointers and performs calls or callbacks to execute the function of the application.

13. The non-transitory machine-readable medium of claim 11 , wherein the processor is further configured to load an application programming interface (API) to the second library to validate the callback, wherein the API includes the list of safe callback values.

14. The non-transitory machine-readable medium of claim 13 , wherein the callback is associated with memory allocation functions, wherein the API is configured to specify the memory allocation functions for determining the status of the callback.

Assignments (1)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →