Use-after-free exploit prevention architecture
AssigneeIntel Corporation
InventorsRodrigo R. Branco, Kekai Hu, Ke Sun
Life of this patent
Estimating the term…
Abstract
Various systems and methods for memory management are described herein. A system for managing memory includes a memory management unit to: receive an indication of a memory allocation request; identify a memory region to satisfy the memory allocation request; determine whether the memory region has a tracking record in a tracking data structure, the tracking data structure configured to track whether a particular memory region has any references pointing to it; and revise the tracking record in the tracking data structure when the memory region has the tracking record.
Claims20
A system for managing memory, the system comprising:
- a memory management unit to:
- receive an indication of a memory allocation request;
- identify a memory region to satisfy the memory allocation request;
- determine whether the memory region has a tracking record in a tracking data structure, the tracking data structure configured to track whether a particular memory region has any references pointing to it;
- revise the tracking record in the tracking data structure when the memory region has the tracking record, wherein to revise the tracking record, the memory management unit is to increment a pointer counter, the pointer counter representing a number of pointers used to reference the memory region;
- receive a memory deallocation request to free the memory region;
- in response to the deallocation request, decrement the pointer counter;
- determine whether the pointer counter equals zero;
- and
- in response to the pointer counter being equal to zero, set a valid bit to indicate that the memory region is not validly allocated.
A method of managing memory, the method comprising:
- receiving an indication of a memory allocation request;
- identifying a memory region to satisfy the memory allocation request;
- determining whether the memory region has a tracking record in a tracking data structure, the tracking data structure configured to track whether a particular memory region has any references pointing to it;
- revising the tracking record in the tracking data structure in response to the memory allocation request, when the memory region has the tracking record, wherein revising the tracking record comprises incrementing a pointer counter, the pointer counter representing a number of pointers used to reference the memory region;
- receiving a memory deallocation request to free the memory region;
- in response to the memory deallocation request, decrementing the pointer counter;
- determine if the pointer counter is equal to zero;
- and
- in response to the pointer counter being equal to zero, setting a valid bit to indicate that the memory region is not validly allocated.
At least one non-transitory machine-readable medium including instructions for managing memory, the instructions when executed by a machine, cause the machine to perform operations comprising:
- receiving an indication of a memory allocation request;
- identifying a memory region to satisfy the memory allocation request;
- determining whether the memory region has a tracking record in a tracking data structure, the tracking data structure configured to track whether a particular memory region has any references pointing to it;
- revising the tracking record in the tracking data structure in response to the memory allocation request, when the memory region has the tracking record, wherein revising the tracking record comprises incrementing a pointer counter, the pointer counter representing a number of pointers used to reference the memory region;
- receiving a memory deallocation request, to free the memory region;
- in response to the memory deallocation request, decrementing the pointer counter;
- determine if the pointer counter is equal to zero;
- and
- in response to the pointer counter being equal to zero, setting a valid bit to indicate that the memory region is not validly allocated.
Dependencies are inferred from the claim text.