Title: AA. Bibliography  
Author: Fred Long Jul 25, 2006
Last Changed by: David Svoboda Dec 17, 2021
Tiny Link: (useful for email) https://wiki.sei.cmu.edu/confluence/x/zXw-BQ
Export As: Word · PDF  
Incoming Links
SEI CERT C++ Coding Standard (86)
    Page: DCL58-CPP. Do not modify the standard namespaces
    Page: STR53-CPP. Range check element access
    Page: CTR53-CPP. Use valid iterator ranges
    Page: EXP52-CPP. Do not rely on side effects in unevaluated operands
    Page: MEM50-CPP. Do not access freed memory
    Page: CTR56-CPP. Do not use pointer arithmetic on polymorphic objects
    Page: DCL57-CPP. Do not let exceptions escape from destructors or deallocation functions
    Page: MEM54-CPP. Provide placement new with properly aligned pointers to sufficient storage capacity
    Page: ERR60-CPP. Exception objects must be nothrow copy constructible
    Page: ERR55-CPP. Honor exception specifications
    Page: EXP51-CPP. Do not delete an array through a pointer of the incorrect type
    Page: EXP56-CPP. Do not call a function with a mismatched language linkage
    Page: CON54-CPP. Wrap functions that can spuriously wake up in a loop
    Page: CTR52-CPP. Guarantee that library functions do not overflow
    Page: DCL60-CPP. Obey the one-definition rule
    Page: EXP59-CPP. Use offsetof() on valid types and members
    Page: MEM53-CPP. Explicitly construct and destruct objects when manually managing object lifetime
    Page: ERR51-CPP. Handle all exceptions
    Page: CON52-CPP. Prevent data races when accessing bit-fields from multiple threads
    Page: DCL52-CPP. Never qualify a reference type with const or volatile
    Page: OOP50-CPP. Do not invoke virtual functions from constructors or destructors
    Page: EXP57-CPP. Do not cast or delete pointers to incomplete classes
    Page: EXP60-CPP. Do not pass a nonstandard-layout type object across execution boundaries
    Page: MEM57-CPP. Avoid using default operator new for over-aligned types
    Page: MEM52-CPP. Detect and handle memory allocation errors
    Page: Scope
    Page: MSC50-CPP. Do not use std::rand() for generating pseudorandom numbers
    Page: ERR59-CPP. Do not throw an exception across execution boundaries
    Page: STR50-CPP. Guarantee that storage for strings has sufficient space for character data and the null terminator
    Page: INT50-CPP. Do not cast to an out-of-range enumeration value
    Page: DCL56-CPP. Avoid cycles during initialization of static objects
    Page: CTR54-CPP. Do not subtract iterators that do not refer to the same container
    Page: MSC52-CPP. Value-returning functions must return a value from all exit paths
    Page: CTR51-CPP. Use valid references, pointers, and iterators to reference elements of a container
    Page: CON51-CPP. Ensure actively held locks are released on exceptional conditions
    Page: OOP52-CPP. Do not delete a polymorphic object without a virtual destructor
    Page: CTR58-CPP. Predicate function objects should not be mutable
    Page: MEM55-CPP. Honor replacement dynamic storage management requirements
    Page: CON53-CPP. Avoid deadlock by locking in a predefined order
    Page: STR51-CPP. Do not attempt to create a std::string from a null pointer
    Page: OOP57-CPP. Prefer special member functions and overloaded operators to C Standard Library functions
    Page: ERR56-CPP. Guarantee exception safety
    Page: DCL50-CPP. Do not define a C-style variadic function
    Page: EXP58-CPP. Pass an object of the correct type to va_start
    Page: MEM56-CPP. Do not store an already-owned pointer value in an unrelated smart pointer
    Page: EXP53-CPP. Do not read uninitialized memory
    Page: OOP54-CPP. Gracefully handle self-copy assignment
    Page: OOP55-CPP. Do not use pointer-to-member operators to access nonexistent members
    Page: ERR57-CPP. Do not leak resources when handling exceptions
    Page: OOP56-CPP. Honor replacement handler requirements
    Page: ERR58-CPP. Handle all exceptions thrown before main() begins executing
    Page: EXP50-CPP. Do not depend on the order of evaluation for side effects
    Page: ERR52-CPP. Do not use setjmp() or longjmp()
    Page: CTR55-CPP. Do not use an additive operator on an iterator if the result would overflow
    Page: ERR50-CPP. Do not abruptly terminate the program
    Page: ERR53-CPP. Do not reference base classes or class data members in a constructor or destructor function-try-block handler
    Page: EXP61-CPP. A lambda object must not outlive any of its reference captured objects
    Page: MEM51-CPP. Properly deallocate dynamically allocated resources
    Page: OOP51-CPP. Do not slice derived objects
    Page: MSC53-CPP. Do not return from a function declared [[noreturn]]
    Page: How this Coding Standard Is Organized
    Page: BB. Definitions
    Page: EXP62-CPP. Do not access the bits of an object representation that are not part of the object's value representation
    Page: EXP63-CPP. Do not rely on the value of a moved-from object
    Page: EXP54-CPP. Do not access an object outside of its lifetime
    Page: CON56-CPP. Do not speculatively lock a non-recursive mutex that is already owned by the calling thread
    Page: Conformance Testing
    Page: EXP55-CPP. Do not access a cv-qualified object through a cv-unqualified type
    Page: OOP53-CPP. Write constructor member initializers in the canonical order
    Page: FIO50-CPP. Do not alternately input and output from a file stream without an intervening positioning call
    Page: STR52-CPP. Use valid references, pointers, and iterators to reference elements of a basic_string
    Page: MSC51-CPP. Ensure your random number generator is properly seeded
    Page: ERR54-CPP. Catch handlers should order their parameter types from most derived to least derived
    Page: CTR50-CPP. Guarantee that container indices and iterators are within the valid range
    Page: Government Regulations
    Page: MSC54-CPP. A signal handler must be a plain old function
    Page: DCL59-CPP. Do not define an unnamed namespace in a header file
    Page: CTR57-CPP. Provide a valid ordering predicate
    Page: DCL54-CPP. Overload allocation and deallocation functions as a pair in the same scope
    Page: ERR61-CPP. Catch exceptions by lvalue reference
    Page: CON50-CPP. Do not destroy a mutex while it is locked
    Page: DCL53-CPP. Do not write syntactically ambiguous declarations
    Page: DCL55-CPP. Avoid information leakage when passing a class object across a trust boundary
    Page: DCL51-CPP. Do not declare or define a reserved identifier
    Page: FIO51-CPP. Close files when they are no longer needed
    Page: OOP58-CPP. Copy operations must not mutate the source object
Hierarchy
Parent Page
    Page: 3 Back Matter
Labels
Global Labels (4)
Outgoing Links
External Links (57)
    www.stroustrup.com/except.pdf
    www.graphics.cornell.edu/~martin/docs/c++-faq
    ieeexplore.ieee.org/servlet/opac?punumber=6506089
    ftp://ftp.rfc-editor.org/in-notes/rfc2828.txt
    www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html
    www.boost.org/doc/libs/1_44_0/doc/html/thread.html
    https://iasecontent.disa.mil/stigs/zip/U_ASD_V4R8_STIG.zip
    cwe.mitre.org/data/definitions/330.html
    ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=159342
    samate.nist.gov/docs/source_code_security_analysis_spec_SP5…
    msdn.microsoft.com/en-us/library/aa379942.aspx
    www.sgi.com/tech/stl/basic_string.html
    www.stroustrup.com/bs_faq2.html
    www.informit.com/store/art-of-software-security-assessment-…
    www.fortifysoftware.com/vulncat/
    www.kb.cert.org/vuls/id/925211
    www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1856.html
    www.embedded.com/columns/programmingpointers/9900661?_reque…
    https://refspecs.linuxbase.org/cxxabi-1.86.html#array-cooki…
    www.opengroup.org/onlinepubs/009695399/toc.htm
    cansecwest.com/csw07/Vector-Rewrite-Attack.pdf
    https://computing.llnl.gov/tutorials/pthreads/
    https://groups.google.com/a/isocpp.org/d/msg/std-discussion…
    https://msdn.microsoft.com/en-us/library/49147z04.aspx
    https://mentorembedded.github.io/cxx-abi/abi.html
    docs.sun.com/source/806-3568/ncg_goldberg.html
    em386.blogspot.com/2009/06/fun-with-erase.html
    www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2521.pdf
    www.dansaks.com/articles/1999-02%20const%20T%20vs%20T%20con…
    gcc.gnu.org/onlinedocs
    www.opengroup.org/onlinepubs/9699919799/toc.htm
    www.kb.cert.org/vuls/id/159523
    www.mypearsonstore.com/bookstore/industrial-strength-c-plus…
    doi.acm.org/10.1145/956641.956647
    https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html
    cwe.mitre.org/
    support.microsoft.com/kb/813810
    www.devx.com/SpecialReports/Article/38883/1954
    www.securesoftware.com/process/
    www.misra.org.uk/
    iase.disa.mil/stigs/Documents/U_Application_Security_and_De…
    www.kb.cert.org/vuls/id/162289
    www.informit.com/store/concurrent-programming-in-java-desig…
    xorl.wordpress.com/
    www.securityfocus.com/advisories/198
    shop.oreilly.com/product/9780596002428.do
    www.boost.org/community/error_handling.html
    en.wikisource.org/wiki/Ariane_501_Inquiry_Board_report
    www.kb.cert.org/vuls/id/623332
    cwe.mitre.org/data/definitions/327.html
    www.phy.duke.edu/~rgb/General/c_book/c_book/index.html
    samate.nist.gov/SRD/
    www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3026.html…
    https://http//www.open-std.org/jtcl/sc22/wg21/docs/papers/2…
    www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n3000.pdf
    iasecontent.disa.mil/stigs/zip/Aug2016/U_ASD_V4R1_STIG.zip
    www.stroustrup.com/JSF-AV-rules.pdf