<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="c14b5a9f-df94-4f2b-9027-eb2a75253b41"><ac:parameter ac:name=""> asynchronous-safe</ac:parameter></ac:structured-macro>
asynchronous-safe [[GNU Pth]]
A function is asynchronous-safe, or asynchronous-signal safe, if it can be called safely and without side effects from within a signal handler context. That is, it must be able to be interrupted at any point and run linearly out of sequence without causing an inconsistent state. Some asynchronous-safe operations are listed below:
- call the
signal()
function to reinstall a signal handler - unconditionally modify a
volatile sig_atomic_t
variable (as modification to this type is atomic) - call the
_Exit()
function to immediately terminate program execution - invoke an asynchronous-safe function, as specified by your implementation
Few functions are asynchronous-safe. If a function performs any other operations, it is probably not asynchronous-safe.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="d94f2de6-639b-4e87-ba20-df6ad0ccd9d2"><ac:parameter ac:name=""> exploit</ac:parameter></ac:structured-macro>
exploit [[Seacord 05]]
An exploit is a piece of software or technique that takes advantage of a security vulnerability to violate an explicit or implicit security policy.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="4ac74a36-d0eb-4922-b8b4-51e2000c1861"><ac:parameter ac:name=""> freestanding environment</ac:parameter></ac:structured-macro>
freestanding environment [[ISO/IEC 9899-1999]]
An environment in which C program execution may take place without any benefit of an operating system. Program startup might occur at some function other than main()
, complex types might not be implemented, and only certain minimal library facilities are guaranteed to be available.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="aacf7bbe-d559-43a2-9b95-269f535b7f2b"><ac:parameter ac:name=""> hosted environment</ac:parameter></ac:structured-macro>
hosted environment [[ISO/IEC 9899-1999]]
An environment that is not freestanding. Program startup occurs at main()
, complex types are implemented, and all C standard library facilities are available.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="3f83497e-7e05-4900-9e6b-04e4e8ea0cd5"><ac:parameter ac:name=""> implementation</ac:parameter></ac:structured-macro>
implementation [[ISO/IEC 9899-1999]]
Particular set of software, running in a particular translation environment under particular control options, that performs translation of programs for, and supports execution of functions in, a particular execution environment.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="b91db812-6c1c-441e-937c-ad47f4741f9e"><ac:parameter ac:name=""> implementation-defined behavior</ac:parameter></ac:structured-macro>
implementation-defined behavior [[ISO/IEC 9899-1999]]
Unspecified behavior where each implementation documents how the choice is made.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="c64f1132-14b9-4169-afca-fc6e8b008425"><ac:parameter ac:name=""> locale-specific behavior</ac:parameter></ac:structured-macro>
locale-specific behavior [[ISO/IEC 9899-1999]]
Behavior that depends on local conventions of nationality, culture, and language that each implementation documents.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="a5d782eb-5570-42e2-93d9-10bf2048e911"><ac:parameter ac:name=""> lvalue</ac:parameter></ac:structured-macro>
lvalue [[ISO/IEC 9899-1999]]
An lvalue is an expression with an object type or an incomplete type other than void
. The name "lvalue" comes originally from the assignment expression E1 = E2
, in which the left operand E1
is required to be a (modifiable) lvalue. It is perhaps better considered as representing an object "locator value".
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="0374f947-7ca9-49be-a554-eed3f001dd8a"><ac:parameter ac:name=""> mitigation</ac:parameter></ac:structured-macro>
mitigation [[Seacord 05]]
Mitigations are methods, techniques, processes, tools, or runtime libraries that can prevent or limit exploits against vulnerabilities.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="e5e837a7-37a0-4f68-a1e5-cb60ed933b22"><ac:parameter ac:name=""> reentrant</ac:parameter></ac:structured-macro>
reentrant [[Dowd 06]]
A function is reentrant if multiple instances of the same function can run in the same address space concurrently without creating the potential for inconsistent states.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="a4406756-62a4-4ebb-bd25-f123c36a9b2c"><ac:parameter ac:name=""> rvalue</ac:parameter></ac:structured-macro>
rvalue [[ISO/IEC 9899-1999]]
Value of an expression.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="6cb41710-6d89-4ab4-8c09-ec234c6bada1"><ac:parameter ac:name=""> security flaw</ac:parameter></ac:structured-macro>
security flaw [[Seacord 05]]
A security flaw is a software defect that poses a potential security risk.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="2b2ebfc2-8e5e-420e-9762-e9ee19a63f9b"><ac:parameter ac:name=""> security policy</ac:parameter></ac:structured-macro>
security policy [[Internet Society 00]]
A set of rules and practices that specify or regulate how a system or organization provides security services to protect sensitive and critical system resources.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="82272375-f4bc-4f86-8a69-90984a6dc1a8"><ac:parameter ac:name=""> undefined behavior</ac:parameter></ac:structured-macro>
undefined behavior [[ISO/IEC 9899-1999]]
Behavior, upon use of a nonportable or erroneous program construct or of erroneous data, for which the standard imposes no requirements. An example of undefined behavior is the behavior on integer overflow.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="744dadfb-0ec0-4a73-945a-dba1ea9f7031"><ac:parameter ac:name=""> unspecified behavior</ac:parameter></ac:structured-macro>
unspecified behavior [[ISO/IEC 9899-1999]]
Behavior where the standard provides two or more possibilities and imposes no further requirements on which is chosen in any instance.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="4a252ed7-e8da-41d7-831a-6c7340b2eebb"><ac:parameter ac:name=""> validation</ac:parameter></ac:structured-macro>
validation [[IEC 61508-4]]
Confirmation by examination and provision of objective evidence that the particular requirements for a specific intended use are fulfilled.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="c2a32126-e554-4e07-bf4c-d5cf3f434185"><ac:parameter ac:name=""> verification</ac:parameter></ac:structured-macro>
verification [[IEC 61508-4]]
Confirmation by examination and provision of objective evidence that the requirements have been fulfilled.
<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="f0c89c55-319b-4857-9814-e328501be552"><ac:parameter ac:name=""> vulnerability</ac:parameter></ac:structured-macro>
vulnerability [[Seacord 05]]
A vulnerability is a set of conditions that allows an attacker to violate an explicit or implicit security policy.