IP Library Granted Patent US 11,625,171
Granted Patent B2
US 11,625,171 · App. 17/476,779 · Granted Apr 11, 2023

Hardware support for memory safety with an overflow table

Inventors: Richard H. Boivie (Monroe, CT); Tong Chen (Yorktown Heights, NY); Alper Buyuktosunoglu (White Plains, NY); Benjamin P Segal (Hyde Park, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0619G06F3/0653G06F3/0679G06F9/3004G06F21/52G06F9/00G06F9/30043G06F21/00G06F2212/1052
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,625,171
App. No.
17/476,779
Granted
Apr 11, 2023
Kind
B2
Abstract

A method, system and apparatus for protecting from out of bounds memory references, including establishing a threshold number of active objects for examination for an out of bounds memory reference, determining whether a number of active objects for an application exceeds the threshold, and when the number of active objects exceeds the threshold, storing at least part of information about the active objects in an overflow table in a memory.

Claims (47)

1. A method of protecting from out of bounds memory references, the method comprising:

establishing a threshold number of active objects for examination for an out of bounds memory reference;

determining whether a number of active objects for an application exceeds the threshold; and

when the number of active objects exceeds the threshold, storing at least part of information about the active objects in an overflow table in a memory.

2. The method according to claim 1 , further comprising when the number of active objects is at the threshold or below the threshold, using a set of unused bits in a pointer to store an index into a bounds information table in the memory.

3. The method according to claim 1 , further comprising responsive to using a pointer in a load or store operation, determining if the pointer reference is an in-bounds memory reference, or out-of-bounds memory reference, or another form of invalid memory reference.

4. The method according to claim 1 , further comprising linking in the overflow table entries that correspond to the same buffer.

5. The method according to claim 1 , further comprising when the number of active objects is at the threshold or below the threshold, storing an index into a bounds information table in the memory,

wherein the overflow table comprises a hash table, and

wherein the overflow table is separate from the bounds information table in the memory.

6. The method according to claim 1 , further comprising:

when the number of active objects is at the threshold or below the threshold, using a set of unused bits in a pointer to store an index; and

responsive to using the pointer in a load or store operation, determining if the pointer reference is an in-bounds memory reference, or out-of-bounds memory reference, or another form of invalid memory reference.

7. The method of claim 1 , further comprising:

determining whether a pointer reference is an in-bounds memory reference, or out-of-bounds memory reference, or another form of invalid memory reference,

wherein index bits for objects that are stored in the overflow table all have a same reserved value.

8. A system for protecting from out of bounds memory references, comprising:

a memory storing computer instructions; and

a processor configured to execute the computer instructions to:

establish a threshold number of active objects for examination for an out of bounds memory reference;

determine whether a number of active objects for an application exceeds the threshold; and

when the number of active objects exceeds the threshold, store at least part of information about the active objects in an overflow table in a memory.

9. The system according to claim 8 , further comprising the processor configured to execute the computer instructions to when the number of active objects is at the threshold or below the threshold, use a set of unused bits in a pointer to store an index into a bounds information table in the memory.

10. The system according to claim 8 , further comprising the processor configured to execute the computer instructions to responsive to using a pointer in a load or store operation, determine if the pointer reference is an in-bounds memory reference, or out-of-bounds memory reference, or another form of invalid memory reference.

11. The system according to claim 8 , further comprising the processor configured to execute the computer instructions to link in the overflow table entries that correspond to the same buffer.

12. The system according to claim 8 , further comprising the processor configured to execute the computer instructions to when the number of active objects is at the threshold or below the threshold, store an index into a bounds information table in the memory,

wherein the overflow table comprises a hash table, and

wherein the overflow table is separate from the bounds information table in the memory.

13. The system according to claim 8 , further comprising the processor configured to execute the computer instructions to:

when the number of active objects is at the threshold or below the threshold, use a set of unused bits in a pointer to store an index; and

responsive to using the pointer in a load or store operation, determine if the pointer reference is an in-bounds memory reference, or out-of-bounds memory reference, or another form of invalid memory reference.

14. The system according to claim 8 , further comprising the processor configured to execute the computer instructions to determine whether the pointer reference is an in-bounds memory reference, or out-of-bounds memory reference, or another form of invalid memory reference,

wherein index bits for objects that are stored in the overflow table all have a same reserved value.

15. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and executable by a computer to cause the computer to perform a method for protecting from bounds memory references, comprising:

establishing a threshold number of active objects for examination for an out of bounds memory reference;

determining whether a number of active objects for an application exceeds the threshold; and

when the number of active objects exceeds the threshold, storing at least part of information about the active objects in an overflow table in a memory.

16. The computer program product according to claim 15 , further comprising when the number of active objects is at the threshold or below the threshold, using a set of unused bits in a pointer to store an index into a bounds information table in the memory.

17. The computer program product according to claim 15 , further comprising responsive to using a pointer in a load or store operation, determining if the pointer reference is an in-bounds memory reference, or out-of-bounds memory reference, or another form of invalid memory reference.

18. The computer program product according to claim 15 , further comprising linking in the overflow table entries that correspond to a single buffer.

19. The computer program product according to claim 15 , further comprising when the number of active objects is at the threshold or below the threshold, storing an index into a bounds information table in the memory,

wherein the overflow table comprises a hash table, and

wherein the overflow table is separate from the bounds information table in the memory.

20. The computer program product according to claim 15 , further comprising:

when the number of active objects is at the threshold or below the threshold, using a set of unused bits in a pointer to store an index; and

responsive to using the pointer in a load or store operation, determining if the pointer reference is an in-bounds memory reference, or out-of-bounds memory reference, or another form of invalid memory reference, and

wherein index bits for objects that are stored in the overflow table all have a same reserved value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2021
From: BOIVIE, RICHARD H.; CHEN, TONG; BUYUKTOSUNOGLU, ALPER; SEGAL, BENJAMIN P
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 057578/0481 →
Continuity (1)
Related Publication 20230078428A1 · Mar 16, 2023
Cited By (1)
US 12,487,822