Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler.
Number of rules (primarily dangerous function names) in C/C++ ruleset: 223
Examining data/camp-0.8.4/doc/api/mainpage.hpp
Examining data/camp-0.8.4/include/camp-xml/common.hpp
Examining data/camp-0.8.4/include/camp-xml/libxml.hpp
Examining data/camp-0.8.4/include/camp-xml/qtxml.hpp
Examining data/camp-0.8.4/include/camp-xml/rapidxml.hpp
Examining data/camp-0.8.4/include/camp-xml/tinyxml.hpp
Examining data/camp-0.8.4/include/camp-xml/xerces.hpp
Examining data/camp-0.8.4/include/camp/args.hpp
Examining data/camp-0.8.4/include/camp/arraymapper.hpp
Examining data/camp-0.8.4/include/camp/arrayproperty.hpp
Examining data/camp-0.8.4/include/camp/camptype.hpp
Examining data/camp-0.8.4/include/camp/class.hpp
Examining data/camp-0.8.4/include/camp/classbuilder.hpp
Examining data/camp-0.8.4/include/camp/classcast.hpp
Examining data/camp-0.8.4/include/camp/classget.hpp
Examining data/camp-0.8.4/include/camp/classvisitor.hpp
Examining data/camp-0.8.4/include/camp/config.hpp
Examining data/camp-0.8.4/include/camp/constructor.hpp
Examining data/camp-0.8.4/include/camp/detail/arraypropertyimpl.hpp
Examining data/camp-0.8.4/include/camp/detail/callhelper.hpp
Examining data/camp-0.8.4/include/camp/detail/classmanager.hpp
Examining data/camp-0.8.4/include/camp/detail/constructorimpl.hpp
Examining data/camp-0.8.4/include/camp/detail/enummanager.hpp
Examining data/camp-0.8.4/include/camp/detail/enumpropertyimpl.hpp
Examining data/camp-0.8.4/include/camp/detail/functionimpl.hpp
Examining data/camp-0.8.4/include/camp/detail/functiontraits.hpp
Examining data/camp-0.8.4/include/camp/detail/getter.hpp
Examining data/camp-0.8.4/include/camp/detail/issmartpointer.hpp
Examining data/camp-0.8.4/include/camp/detail/objectholder.hpp
Examining data/camp-0.8.4/include/camp/detail/objecttraits.hpp
Examining data/camp-0.8.4/include/camp/detail/observernotifier.hpp
Examining data/camp-0.8.4/include/camp/detail/propertyfactory.hpp
Examining data/camp-0.8.4/include/camp/detail/rawtype.hpp
Examining data/camp-0.8.4/include/camp/detail/returntype.hpp
Examining data/camp-0.8.4/include/camp/detail/simplepropertyimpl.hpp
Examining data/camp-0.8.4/include/camp/detail/typeid.hpp
Examining data/camp-0.8.4/include/camp/detail/userpropertyimpl.hpp
Examining data/camp-0.8.4/include/camp/detail/valueimpl.hpp
Examining data/camp-0.8.4/include/camp/detail/valueprovider.hpp
Examining data/camp-0.8.4/include/camp/detail/yesnotype.hpp
Examining data/camp-0.8.4/include/camp/enum.hpp
Examining data/camp-0.8.4/include/camp/enumbuilder.hpp
Examining data/camp-0.8.4/include/camp/enumget.hpp
Examining data/camp-0.8.4/include/camp/enumobject.hpp
Examining data/camp-0.8.4/include/camp/enumproperty.hpp
Examining data/camp-0.8.4/include/camp/error.hpp
Examining data/camp-0.8.4/include/camp/errors.hpp
Examining data/camp-0.8.4/include/camp/function.hpp
Examining data/camp-0.8.4/include/camp/observer.hpp
Examining data/camp-0.8.4/include/camp/property.hpp
Examining data/camp-0.8.4/include/camp/qt/qlist.hpp
Examining data/camp-0.8.4/include/camp/qt/qstring.hpp
Examining data/camp-0.8.4/include/camp/qt/qt.hpp
Examining data/camp-0.8.4/include/camp/qt/qtfunction.hpp
Examining data/camp-0.8.4/include/camp/qt/qthelper.hpp
Examining data/camp-0.8.4/include/camp/qt/qtmapper.hpp
Examining data/camp-0.8.4/include/camp/qt/qtsimpleproperty.hpp
Examining data/camp-0.8.4/include/camp/qt/qvector.hpp
Examining data/camp-0.8.4/include/camp/simpleproperty.hpp
Examining data/camp-0.8.4/include/camp/tagholder.hpp
Examining data/camp-0.8.4/include/camp/type.hpp
Examining data/camp-0.8.4/include/camp/userobject.hpp
Examining data/camp-0.8.4/include/camp/userproperty.hpp
Examining data/camp-0.8.4/include/camp/value.hpp
Examining data/camp-0.8.4/include/camp/valuemapper.hpp
Examining data/camp-0.8.4/include/camp/valuevisitor.hpp
Examining data/camp-0.8.4/src/args.cpp
Examining data/camp-0.8.4/src/arrayproperty.cpp
Examining data/camp-0.8.4/src/camptype.cpp
Examining data/camp-0.8.4/src/class.cpp
Examining data/camp-0.8.4/src/classcast.cpp
Examining data/camp-0.8.4/src/classmanager.cpp
Examining data/camp-0.8.4/src/classvisitor.cpp
Examining data/camp-0.8.4/src/enum.cpp
Examining data/camp-0.8.4/src/enumbuilder.cpp
Examining data/camp-0.8.4/src/enummanager.cpp
Examining data/camp-0.8.4/src/enumobject.cpp
Examining data/camp-0.8.4/src/enumproperty.cpp
Examining data/camp-0.8.4/src/error.cpp
Examining data/camp-0.8.4/src/errors.cpp
Examining data/camp-0.8.4/src/function.cpp
Examining data/camp-0.8.4/src/observer.cpp
Examining data/camp-0.8.4/src/observernotifier.cpp
Examining data/camp-0.8.4/src/outofrange.cpp
Examining data/camp-0.8.4/src/property.cpp
Examining data/camp-0.8.4/src/simpleproperty.cpp
Examining data/camp-0.8.4/src/tagholder.cpp
Examining data/camp-0.8.4/src/userobject.cpp
Examining data/camp-0.8.4/src/userproperty.cpp
Examining data/camp-0.8.4/src/value.cpp
Examining data/camp-0.8.4/test/arrayproperty.cpp
Examining data/camp-0.8.4/test/arrayproperty.hpp
Examining data/camp-0.8.4/test/class.cpp
Examining data/camp-0.8.4/test/class.hpp
Examining data/camp-0.8.4/test/classvisitor.cpp
Examining data/camp-0.8.4/test/classvisitor.hpp
Examining data/camp-0.8.4/test/constructor.cpp
Examining data/camp-0.8.4/test/constructor.hpp
Examining data/camp-0.8.4/test/enum.cpp
Examining data/camp-0.8.4/test/enum.hpp
Examining data/camp-0.8.4/test/enumobject.cpp
Examining data/camp-0.8.4/test/enumobject.hpp
Examining data/camp-0.8.4/test/enumproperty.cpp
Examining data/camp-0.8.4/test/enumproperty.hpp
Examining data/camp-0.8.4/test/function.cpp
Examining data/camp-0.8.4/test/function.hpp
Examining data/camp-0.8.4/test/functionaccess.cpp
Examining data/camp-0.8.4/test/functionaccess.hpp
Examining data/camp-0.8.4/test/inheritance.cpp
Examining data/camp-0.8.4/test/inheritance.hpp
Examining data/camp-0.8.4/test/main.cpp
Examining data/camp-0.8.4/test/mapper.cpp
Examining data/camp-0.8.4/test/mapper.hpp
Examining data/camp-0.8.4/test/property.cpp
Examining data/camp-0.8.4/test/property.hpp
Examining data/camp-0.8.4/test/propertyaccess.cpp
Examining data/camp-0.8.4/test/propertyaccess.hpp
Examining data/camp-0.8.4/test/qt/functionmapping.cpp
Examining data/camp-0.8.4/test/qt/functionmapping.hpp
Examining data/camp-0.8.4/test/qt/logger.hpp
Examining data/camp-0.8.4/test/qt/main.cpp
Examining data/camp-0.8.4/test/qt/propertymapping.cpp
Examining data/camp-0.8.4/test/qt/propertymapping.hpp
Examining data/camp-0.8.4/test/qt/qstringmapping.cpp
Examining data/camp-0.8.4/test/tagholder.cpp
Examining data/camp-0.8.4/test/tagholder.hpp
Examining data/camp-0.8.4/test/userobject.cpp
Examining data/camp-0.8.4/test/userobject.hpp
Examining data/camp-0.8.4/test/userproperty.cpp
Examining data/camp-0.8.4/test/userproperty.hpp
Examining data/camp-0.8.4/test/value.cpp
Examining data/camp-0.8.4/test/value.hpp

FINAL RESULTS:

data/camp-0.8.4/include/camp-xml/xerces.hpp:105:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char buffer[256];
data/camp-0.8.4/include/camp/detail/yesnotype.hpp:53:16:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
struct TypeNo {char padding[8];};
data/camp-0.8.4/include/camp/valuemapper.hpp:267:33:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    static std::string to(const char source[N]) {return std::string(source);}
data/camp-0.8.4/include/camp/valuemapper.hpp:273:33:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
    static std::string to(const char source[N]) {return std::string(source);}
data/camp-0.8.4/test/function.hpp:62:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char padding[10];
data/camp-0.8.4/test/userobject.hpp:43:9:  [2] (buffer) char:
  Statically-sized arrays can be improperly restricted, leading to potential
  overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use
  functions that limit length, or ensure that the size is larger than the
  maximum possible length.
        char padding[15];
data/camp-0.8.4/include/camp/qt/qtsimpleproperty.hpp:79:56:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        return QtHelper::variantToValue(m_metaProperty.read(object.get<T*>()));
data/camp-0.8.4/test/enumobject.cpp:90:22:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
BOOST_AUTO_TEST_CASE(equal)
data/camp-0.8.4/test/value.cpp:389:22:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
BOOST_AUTO_TEST_CASE(equal)

ANALYSIS SUMMARY:

Hits = 9
Lines analyzed = 19191 in approximately 0.62 seconds (31162 lines/second)
Physical Source Lines of Code (SLOC) = 8154
Hits@level = [0]   0 [1]   3 [2]   6 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]   9 [1+]   9 [2+]   6 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 1.10375 [1+] 1.10375 [2+] 0.735835 [3+]   0 [4+]   0 [5+]   0
Dot directories skipped = 1 (--followdotdir overrides)
Minimum risk level = 1
Not every hit is necessarily a security vulnerability.
There may be other security vulnerabilities; review your code!
See 'Secure Programming HOWTO'
(https://dwheeler.com/secure-programs) for more information.