Memory corruption protection by tracing memory

US2016335021A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016335021-A1
Application numberUS-201514708490-A
CountryUS
Kind codeA1
Filing dateMay 11, 2015
Priority dateMay 11, 2015
Publication dateNov 17, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

This application discloses a computing system configured to request that an operating system implemented by the computing system allocate a virtual address space, which is designated for use by an application implemented by the computing system, to a memory verification tool implemented by the computing system. The computing system is configured to utilize the virtual address space to form a memory pool having multiple protectable slots available for allocation to the application. The computing system is further configured to intercept a memory allocation request issued by the application to the operating system of the computing system, and allocate at least one of the protectable slots in the memory pool to the application in response to the intercepted memory allocation request.

First claim

Opening claim text (preview).

1 . A method comprising: requesting that an operating system implemented by a computing system allocate a virtual address space, which is designated for use by an application implemented by the computing system, to a memory verification tool implemented by the computing system; utilizing, by the memory verification tool implemented by the computing system, the virtual address space to form a memory pool having multiple protectable slots available for allocation to the application; intercepting, by the memory verification tool implemented by the computing system, a memory allocation request issued by the application to the operating system of the computing system; and allocating, by the memory verification tool implemented by the computing system, at least one of the protectable slots in the memory pool to the application in response to the intercepted memory allocation request. 2 . The method of claim 1 , further comprising setting, by the memory verification tool implemented by the computing system, memory access protection on unallocated protectable slots in the memory pool, wherein the memory access protection is configured to cause the computing system to trigger an exception in response to a memory access by the application to the unallocated protectable slots in the memory pool. 3 . The method of claim 1 , wherein the memory pool arranges the protectable slots in a first-in-first-out format for allocation to the application. 4 . The method of claim 1 , further comprising: intercepting, by the memory verification tool implemented by the computing system, a memory de-allocation request issued by the application to the operating system of the computing system; and returning, by the memory verification tool implemented by the computing system, the at least one of the protectable slots back to the memory pool controlled by the memory verification tool in response to the intercepted memory de-allocation request. 5 . The method of claim 4 , wherein de-allocating the at least one of the protectable slots in the memory pool from the application further comprises releasing addresses in a physical memory of the computing system associated with the at least one of the protectable slots. 6 . The method of claim 1 , wherein each protectable slot, when allocated to the application implemented by the computing system, includes at least one data page corresponding to addresses in a physical memory of the computing system that are capable of being accessed by the application, and includes at least one guard page that does not correspond to addresses in the physical memory. 7 . The method of claim 1 , wherein allocating at least one of the protectable slots in the memory pool to the application further comprises requesting the computing system allocate addresses in a physical memory of the computing system associated with the at least one of the protectable slots. 8 . A system comprising: a memory system configured to store computer-executable instructions; and a computing system, in response to execution of the computer-executable instructions, is configured to: request that an operating system implemented by the computing system allocate a virtual address space, which is designated for use by an application implemented by the computing system, to a memory verification tool implemented by the computing system; utilize the virtual address space to form a memory pool having multiple protectable slots available for allocation to the application; intercept a memory allocation request issued by the application to the operating system of the computing system; and allocate at least one of the protectable slots in the memory pool to the application in response to the intercepted memory allocation request. 9 . The system of claim 8 , wherein the computing system, in response to execution of the computer-executable instructions, is further configured to set memory access protection on unallocated protectable slots in the memory pool, wherein the memory access protection is configured to cause the computing system to trigger an exception in response to a memory access by the application to the unallocated protectable slots in the memory pool. 10 . The system of claim 8 , wherein the memory pool arranges the protectable slots in a first-in-first-out format for allocation to the application. 11 . The system of claim 8 , wherein the computing system, in response to execution of the computer-executable instructions, is further configured to: intercept a memory de-allocation request issued by the application to the operating system of the computing system; and return the at least one of the protectable slots back to the memory pool controlled by the memory verification tool in response to the intercepted memory de-allocation request. 12 . The system of claim 11 , wherein returning the at least one of the protectable slots back to the memory pool further comprises releasing addresses in a physical memory associated with the at least one of the protectable slots. 13 . The system of claim 8 , wherein each protectable slot, when allocated to the application implemented by the computing system, includes at least one data page corresponding to addresses in a physical memory of the computing system that are capable of being accessed by the application, and includes at least one guard page that does not correspond to addresses in the physical memory. 14 . An apparatus comprising at least one computer-readable memory device storing instructions configured to cause one or more processing devices to perform operations comprising: requesting that an operating system implemented by the one or more processing devices allocate a virtual address space, which is designated for use by an application implemented by the one or more processing devices, to a memory verification tool implemented by the one or more processing devices; utilizing the virtual address space to form a memory pool having multiple protectable slots available for allocation to the application; intercepting a memory allocation request issued by the application to the operating system of the one or more processing devices; and allocating at least one of the protectable slots in the memory pool to the application in response to the intercepted memory allocation request. 15 . The apparatus of claim 14 , wherein the instructions are configured to cause the one or more processing devices to perform operations further comprising setting memory access protection on unallocated protectable slots in the memory pool, and wherein the memory access protection is configured to cause the one or more processing devices to trigger an exception in response to a memory access by the application to the unallocated protectable slots in the memory pool. 16 . The apparatus of claim 14 , wherein the memory pool arranges the protectable slots in a first-in-first-out format for allocation to the application. 17 . The apparatus of claim 14 , wherein the instructions are configured to cause the one or more processing devices to perform operations further comprising: intercepting, by the memory verification tool implemented by the computing system, a memory de-allocation request issued by the application to the operating system of the computing system; and returning, by the memory verification tool implemented by the computing system, the at least one of the protectable slots back to the memory pool controlled by the memory verification tool in response to the intercepted memory de-allocation request. 18 . The apparatus of c

Assignees

Inventors

Classifications

  • G06F11/366Primary

    using diagnostics (G06F11/0703 takes precedence) · CPC title

  • Improving or facilitating administration, e.g. storage management · CPC title

  • Single storage device · CPC title

  • Organizing or formatting or addressing of data · CPC title

  • in relation to access · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016335021A1 cover?
This application discloses a computing system configured to request that an operating system implemented by the computing system allocate a virtual address space, which is designated for use by an application implemented by the computing system, to a memory verification tool implemented by the computing system. The computing system is configured to utilize the virtual address space to form a me…
Who is the assignee on this patent?
Mentor Graphics Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/366. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Nov 17 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).