Byte level granularity buffer overflow detection for memory corruption detection architectures
AssigneeIntel Corporation
InventorsTomer Stark, Ady Tal, Ron Gabor, Joseph Nuzman
Life of this patent
Estimating the term…
Abstract
Memory corruption detection technologies are described. A processor can include a memory to store a memory corruption detection (MCD) table. A processor core of the processor can receive, from an application, an allocation request for an allocation of a memory object within a contiguous memory block in the memory. The processor core can allocate the contiguous memory block in view of a size of the memory object requested and write MCD meta-data into the MCD table, including a MCD identifier (ID) associated with the contiguous memory block and a MCD border value indicating a size of a memory region of the contiguous memory block.
Claims20
A processor comprising:
- a memory to store a memory corruption detection (MCD) table;
- and
- a processor core coupled to the memory, wherein the processing core is to:
- receive, from an application, an allocation request for an allocation of a memory object within a contiguous memory block in the memory;
- allocate the contiguous memory block in view of a size of the memory object requested;
- and
- write a MCD meta-data into the MCD table, wherein the MCD meta-data comprises:
- a MCD identifier (ID) associated with the contiguous memory block;
- and
- a MCD border value indicating how many bytes of the contiguous memory block are unusable.
A processor comprising:
- a memory;
- and
- a processor core coupled to the memory, wherein the processing core is to:
- receive, from an application an allocation request for a memory object to be stored within one or more contiguous memory blocks in the memory, wherein the allocation request specifies a size of the memory object;
- allocate the one or more contiguous memory blocks for the memory object in view of the size of the memory object;
- and
- write allocation data into the memory, the allocation data comprising for each one of the one or more contiguous memory blocks a unique identifier associated with the memory object and a border value indicating how many bytes of the respective one of the one or more contiguous memory blocks are unusable.
A processor comprising:
- a memory;
- and
- a processor core coupled to the memory, wherein the processing core is to:
- receive, from an application an allocation request for a memory object to be stored within one or more contiguous memory blocks in the memory, wherein the allocation request specifies a size of the memory object;
- allocate the one or more contiguous memory blocks for the memory object in view of the size of the memory object, 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 allocation data into the memory, the allocation data comprising a unique identifier associated with the memory object and a border value indicating a size of the first memory region, wherein the allocation data comprises a first byte for the unique identifier and a second byte for the border value.
A system comprising:
- a memory device to store data according to a fixed-size memory blocks;
- and
- a processor coupled to the memory device, wherein the processor is to:
- receive, from an application, an allocation request for an allocation of a memory object within a contiguous memory block in the memory, wherein the allocation request specifies a size of the memory object;
- allocate the contiguous memory block in view of the size of the memory object;
- and
- write meta-data into at a table accessible by the processor, the meta-data comprising:
- an identifier (ID) associated with the contiguous memory block;
- and
- a border value indicating how many bytes of the contiguous memory block are unusable.
Dependencies are inferred from the claim text.