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, wherein the contiguous memory block comprise a memory region;
- 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 a size of the memory region of the contiguous memory block.
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.
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, wherein the contiguous memory block comprise a usable memory region and an unusable memory region;
- 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 a size of the usable memory region of the contiguous memory block.
Dependencies are inferred from the claim text.