Memory corruption detection
First Claim
Patent Images
1. A processing system, comprising:
- a processing core including a register to store a base address of a memory corruption detection (MCD) table;
wherein the processing core is to;
receive a memory access instruction referencing a pointer to a memory buffer;
compare a first value derived from a first sequence of bits comprising a first pre-defined number of upper bits of the pointer to a second value stored in the MCD table at an offset referenced by a second sequence of bits comprising a second pre-defined number of lower bits of the pointer; and
responsive to ascertaining that the first value matches the second value, cause the memory access instruction to be executed.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for memory corruption detection. An example processing system comprises a processing core including a register to store a base address of a memory corruption detection (MCD) table. The processing core is configured to validate a pointer referenced by a memory access instruction, by comparing a first value derived from a first portion of the pointer to a second value stored in the MCD table at an offset referenced by a second portion of the pointer.
-
Citations
16 Claims
-
1. A processing system, comprising:
-
a processing core including a register to store a base address of a memory corruption detection (MCD) table; wherein the processing core is to; receive a memory access instruction referencing a pointer to a memory buffer; compare a first value derived from a first sequence of bits comprising a first pre-defined number of upper bits of the pointer to a second value stored in the MCD table at an offset referenced by a second sequence of bits comprising a second pre-defined number of lower bits of the pointer; and responsive to ascertaining that the first value matches the second value, cause the memory access instruction to be executed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method, comprising:
-
storing, in a register of a processing core, a base address of a memory corruption detection (MCD) table associated with an application being executed by the processing core; receiving, by the processing core, a memory access instruction referencing a pointer; comparing a first value derived from a first sequence of bits comprising a first pre-defined number of upper bits of the pointer to a second value stored in the MCD table at an offset referenced by a second sequence of bits comprising a second pre-defined number of lower bits of the pointer; and responsive to ascertaining that the first value matches the second value, causing the memory access instruction to be executed. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a processor, cause the processor to:
-
responsive to receiving a memory allocation request, allocate a memory buffer; generate a memory corruption detection (MCD) value to be assigned to the memory buffer; initialize, using the MCD value, an MCD table entry identified by an offset referenced by a first sequence of bits comprising a first pre-defined number of lower bits of an address of the memory buffer; produce, using the MCD value, a second sequence of bits; and store the second sequence of bits derived from the MCD value within a second pre-defined number of upper bits of a pointer referencing the memory buffer.
-
Specification