BYTE LEVEL GRANULARITY BUFFER OVERFLOW DETECTION FOR MEMORY CORRUPTION DETECTION ARCHITECTURES
First Claim
1. A processor comprising:
- a memory to store data from an application, wherein the memory comprises a memory corruption detection (MCD) table and a memory object; and
a processor core coupled to the memory, wherein the processing core is to;
receive, from the application, a memory access request to access data of the memory object with a contiguous memory block in a memory object of the memory, wherein the memory access request comprises;
a pointer indicating a location in the memory of the memory object; and
a first MCD unique identifier (ID);
retrieve data stored in the contiguous memory block based on the location indicated by the pointer;
retrieve, from the MCD table, allocation information associated with the contiguous memory block, wherein the allocation information comprises;
a second MCD unique identifier associated with the contiguous memory block; and
a MCD border value indicating a size of a first memory region of the contiguous memory block; and
send, to the application, a fault message when a fault event associated with the retrieved data occurs based on the allocation information.
1 Assignment
0 Petitions
Accused Products
Abstract
Memory corruption detection technologies are described. A processor can include a memory to store data from an application, wherein the memory comprises a memory corruption detection (MCD) table. The processor can also include processor core coupled to the memory. The processor core can receive, from an application, a memory access request to access data of one or more contiguous memory blocks in a memory object of the memory. The processor core can also retrieve data stored in the one or more contiguous memory blocks based on the location indicated by the pointer. The processor core can also retrieve, from the MCD table, allocation information associated with the one or more contiguous memory blocks. The processor core can also send, to the application, a fault message when a fault event associated with the retrieved data occurs based on the allocation information.
27 Citations
20 Claims
-
1. A processor comprising:
-
a memory to store data from an application, wherein the memory comprises a memory corruption detection (MCD) table and a memory object; and a processor core coupled to the memory, wherein the processing core is to; receive, from the application, a memory access request to access data of the memory object with a contiguous memory block in a memory object of the memory, wherein the memory access request comprises; a pointer indicating a location in the memory of the memory object; and a first MCD unique identifier (ID); retrieve data stored in the contiguous memory block based on the location indicated by the pointer; retrieve, from the MCD table, allocation information associated with the contiguous memory block, wherein the allocation information comprises; a second MCD unique identifier associated with the contiguous memory block; and a MCD border value indicating a size of a first memory region of the contiguous memory block; and send, to the application, a fault message when a fault event associated with the retrieved data occurs based on the allocation information. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A processor, comprising:
-
a memory to store data from an application, wherein the memory comprises a memory corruption detection (MCD) table; and a processor core coupled to the memory, wherein the processing core is to; receive, from the application, an allocation request for an allocation of a memory object with one or more contiguous memory blocks in the memory; allocate the one or more contiguous memory blocks for the memory object in view of a size of the memory object requested, wherein a contiguous memory block of the one or more contiguous memory blocks comprise a first memory region and a second memory region; and write, into the MCD table, a MCD meta-data word, wherein the MCD meta-data word comprises; a first MCD unique identifier associated with the contiguous memory block; and a MCD border value indicating a size of the first memory region of the contiguous memory block. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system on a chip (SoC) comprising:
-
a processor; a memory device, coupled to the processor, to store data from an application, wherein the memory comprises a memory corruption detection (MCD) table and a memory object; and a memory controller coupled to the memory device, the memory controller to; receive, from the application, a memory access request to access data of the memory object with a contiguous memory block, wherein the memory access request comprises; a pointer indicating a location in the memory of the memory object; and a first MCD unique identifier (ID); retrieve data stored in the contiguous memory block based on the location indicated by the pointer; retrieve, from the MCD table, allocation information associated with the contiguous memory block, wherein the allocation information comprises; a second MCD unique identifier associated with the contiguous memory block; and a MCD border value indicating a size of a first memory region of the contiguous memory block; and determine when the retrieved data is from a usable region of memory based on the allocation information; and send, to the application, the retrieved data. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification