IP Library Granted Patent US 10,586,039
Granted Patent B2
US 10,586,039 · App. 16/111,694 · Granted Mar 10, 2020

Information processing apparatus

Inventor: Yoshihisa Morizumi (Kawasaki, JP)
Assignee: FUJITSU LIMITED
G06F21/52G06F11/1004G06F12/16H03M13/09H03M13/2906
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 10,586,039
App. No.
16/111,694
Granted
Mar 10, 2020
Kind
B2
Abstract

An information processing apparatus includes a memory and a processor. The memory stores a first string of error detection codes each corresponding to a used partial area of a stack area allocated to a program. The processor generates, when execution of the program is interrupted, a differential string of error detection codes each corresponding to a used partial area of a difference between used partial areas at the time of generating the first string and used partial areas at the interruption. The processor obtains a second string of error detection codes by reflecting the differential string to the first string. The processor generates, when the execution of the program is resumed, a third string of error detection codes each corresponding to a used partial area of the stack area at the resumption. The processor detects stack destruction based on collation between the second string and the third string.

Claims (46)

1. An information processing apparatus comprising:

a memory configured to store a first string of error detection codes each corresponding to a used partial area of a stack area allocated to a program; and

a processor coupled to the memory and the processor configured to:

generate, when execution of the program is interrupted, a differential string of error detection codes each corresponding to a used partial area of a difference between used partial areas at the time of generating the first string of error detection codes and used partial areas at the interruption;

obtain a second string of error detection codes by reflecting the differential string of error detection codes to the first string of error detection codes stored in the memory;

generate, when the execution of the program is resumed, a third string of error detection codes each corresponding to a used partial area of the stack area at the resumption; and

detect stack destruction based on collation between the second string of error detection codes and the third string of error detection codes.

2. The information processing apparatus according to claim 1 , wherein

the processor is configured to:

collate first error detection codes included in the first string of error detection codes with second error detection codes each corresponding to a used partial area at the interruption in order from a smaller address among addresses corresponding to partial areas of the stack area; and

determine, as the difference, partial areas corresponding to addresses smaller than an address of a partial area for which the first error detection code and the second error detection code first match each other.

3. The information processing apparatus according to claim 1 , wherein

the processor is configured to acquire the second string of error detection codes by performing at least one of replacement of a code included in the first string of error detection codes with a code included in the differential string of error detection codes or an addition of a code included in the differential string of error detection codes to the first string of error detection codes.

4. The information processing apparatus according to claim 1 , wherein

the processor is configured to:

determine, from among used partial areas of the stack area, a first partial area corresponding to a first address in accordance with a stack pointer; and

determine a second partial area corresponding to a second address larger than the first address in accordance with a frame pointer included in the first partial area.

5. The information processing apparatus according to claim 1 , wherein

the processor is configured to:

omit, at the interruption, update of error detection codes corresponding to the used partial areas of the stack area other than the difference; and

omit, at the resumption, generation and collation of error detection codes corresponding to unused partial areas of the stack area.

6. The information processing apparatus according to claim 1 , wherein

the first string of error detection codes is a string of error detection codes corresponding to used partial areas of the stack area at a previous interruption of execution of the program.

7. The information processing apparatus according to claim 1 , wherein

the processor is configured to interrupt execution of the program when an execution target is switched from the program to another program.

8. A non-transitory computer-readable recording medium having stored therein a first program that causes a computer to execute a process, the process comprising:

acquiring a first string of error detection codes each corresponding to a used partial area of a stack area allocated to a second program;

generating, when execution of the second program is interrupted, a differential string of error detection codes each corresponding to a used partial area of a difference between used partial areas at the time of generating the first string of error detection codes and used partial areas at the interruption;

obtaining a second string of error detection codes by reflecting the differential string of error detection codes to the first string of error detection codes stored in the memory;

generating, when the execution of the second program is resumed, a third string of error detection codes each corresponding to a used partial area of the stack area at the resumption; and

detecting stack destruction based on collation between the second string of error detection codes and the third string of error detection codes.

9. The non-transitory computer-readable recording medium according to claim 8 , the process further comprising:

collating first error detection codes included in the first string of error detection codes with second error detection codes each corresponding to a used partial area at the interruption in order from a smaller address among addresses corresponding to partial areas of the stack area; and

determining, as the difference, partial areas corresponding to addresses smaller than an address of a partial area for which the first error detection code and the second error detection code first match each other.

10. The non-transitory computer-readable recording medium according to claim 8 , the process further comprising

acquiring the second string of error detection codes by performing at least one of replacement of a code included in the first string of error detection codes with a code included in the differential string of error detection codes or an addition of a code included in the differential string of error detection codes to the first string of error detection codes.

11. The non-transitory computer-readable recording medium according to claim 8 , the process further comprising:

determining, from among used partial areas of the stack area, a first partial area corresponding to a first address in accordance with a stack pointer; and

determining a second partial area corresponding to a second address larger than the first address in accordance with a frame pointer included in the first partial area.

12. The non-transitory computer-readable recording medium according to claim 8 , the process further comprising:

omitting, at the interruption, update of error detection codes corresponding to the used partial areas of the stack area other than the difference; and

omitting, at the resumption, generation and collation of error detection codes corresponding to unused partial areas of the stack area.

13. The non-transitory computer-readable recording medium according to claim 8 , wherein

the first string of error detection codes is a string of error detection codes corresponding to used partial areas of the stack area at a previous interruption of execution of the second program.

14. The non-transitory computer-readable recording medium according to claim 8 , the process further comprising

interrupting execution of the second program when an execution target is switched from the second program to another program.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2024
From: FUJITSU LIMITED
To: FSAS TECHNOLOGIES INC.
Reel/Frame 069272/0546 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2018
From: MORIZUMI, YOSHIHISA
To: FUJITSU LIMITED
Reel/Frame 046697/0632 →
Priority Claims (1)
JP 2017-168720 · Sep 1, 2017 · national
Continuity (1)
Related Publication 20190073260A1 · Mar 7, 2019