Skip to content
This repository has been archived by the owner on Jul 25, 2023. It is now read-only.

It is SUGGESTED that the project use a configuration for at least some dynamic analysis (such as testing or fuzzing) which enables many assertions. In many cases these assertions should not be enabled in production builds. #471

Open
v0lkan opened this issue Jul 5, 2023 · 0 comments
Labels

Comments

@v0lkan
Copy link
Contributor

v0lkan commented Jul 5, 2023

This criterion does not suggest enabling assertions during production; that is entirely up to the project and its users to decide. This criterion's focus is instead to improve fault detection during dynamic analysis before deployment. Enabling assertions in production use is completely different from enabling assertions during dynamic analysis (such as testing). In some cases enabling assertions in production use is extremely unwise (especially in high-integrity components). There are many arguments against enabling assertions in production, e.g., libraries should not crash callers, their presence may cause rejection by app stores, and/or activating an assertion in production may expose private data such as private keys. Beware that in many Linux distributions NDEBUG is not defined, so C/C++ assert() will by default be enabled for production in those environments. It may be important to use a different assertion mechanism or defining NDEBUG for production in those environments.

@v0lkan v0lkan added this to Aegis Jul 4, 2023
@v0lkan v0lkan converted this from a draft issue Jul 5, 2023
@v0lkan v0lkan added the openssf label Jul 5, 2023
@v0lkan v0lkan removed this from Aegis Jul 5, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
Status: No status
Development

No branches or pull requests

1 participant