Efficient patching
First Claim
1. A method in a computing system for augmenting software, comprising:
- receiving in a target computer system an augmentation specification specifying (a) a function to be augmented, the specified function being among software executed in the computing system, (b) a parameter of the function to be tested, (c) a test to apply to the specified parameter, and (d) a modification to perform to the behavior of the function if the specified test is not satisfied by the specified parameter; and
when the specified function is invoked on the target computer system, if the specified test is not satisfied by the specified parameter, performing the specified modification to the behavior of the specified function.
4 Assignments
0 Petitions
Accused Products
Abstract
A facility for augmenting software in a target computer system is described. The facility receives and augmentation specification in the target computer system. The augmentations specification specifies: (a) a function to be augmented, (b) a parameter of the function to be tested, (c) a test to apply to the specified parameter, and (d) and modification to perform to the behavior of the function if the specified test is not satisfied by the specified parameter. When the specified function is invoked on the target computer system, if the specified tested is not satisfied by the specified parameter, the facility performs the specified modification to the behavior of the specified function.
-
Citations
42 Claims
-
1. A method in a computing system for augmenting software, comprising:
-
receiving in a target computer system an augmentation specification specifying (a) a function to be augmented, the specified function being among software executed in the computing system, (b) a parameter of the function to be tested, (c) a test to apply to the specified parameter, and (d) a modification to perform to the behavior of the function if the specified test is not satisfied by the specified parameter; and
when the specified function is invoked on the target computer system, if the specified test is not satisfied by the specified parameter, performing the specified modification to the behavior of the specified function. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30)
-
-
28. A computing system that enables augmentation of software present in the computing system, comprising:
-
a storage device containing software;
a patch receiver that receives in the computing system a patch specifying (a) a point at which the software is to be augmented, (b) a value associated with the function to be tested at the specified point, (c) a test to apply to the specified value, and (d) a modification to perform to the behavior of the software if the specified test is not satisfied by the specified value; and
a patching agent that injects code into the software at the specified point such that, when execution of the software reaches the specified point on the target computer system, if the specified test is not satisfied by the specified value, the specified modification to the behavior of the software is performed.
-
-
29. A computer-readable medium whose contents cause a target computing system to perform a method for adding value validation to software available in the target computing system, comprising:
-
receiving in the computing system an augmentation specification specifying (a) a function to which value validation is to be added, the specified function being among software available in the computing system, (b) data to be tested that exists in the target computing system during execution of the function, (c) a test to apply to the specified data, and (d) a modification to perform to the behavior of the function if the specified test is not satisfied by the specified data; and
when the specified function is invoked on the target computer system, if the specified test is not satisfied by the specified data, performing the specified modification to the behavior of the specified function.
-
-
31. A generated data signal conveying a patch data structure, comprising:
-
information identifying a function to which value validation is to be added;
information identifying data to be tested that exists during execution of the function;
information identifying a test to apply to the specified data; and
to information identifying a modification to perform to the behavior of the function if the specified test is not satisfied by the specified data, such that, if the data signal is received on a target computer system on which the specified function is executed, the contents of the data structure may be used to perform the specified modification to the behavior of the specified function if the specified test is not satisfied by the specified data when the specified function is invoked on the target computer system. - View Dependent Claims (32, 33)
-
-
34. A method for adding value validation to software available in the target computing system, comprising:
-
receiving in the computing system an augmentation specification specifying (a) software to which value validation is to be added, (b) a point in the specified software at which value validation is to be added, (c) data to be tested that exists in the target computing system during execution of the specified software at the specified point, (d) a test to apply to the specified data, and (e) a modification to perform to the behavior of the software if the specified test is not satisfied by the specified data;
enabling a user to configure an operational mode for the received augmentation specification; and
when the specified software is executed at the specified point on the target computer system, applying the received augmentation specification in a manner consistent with the operational mode configured for the received augmentation specification. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42)
-
Specification