The following issues were found
src/third_party/boost/boost/token_iterator.hpp
1 issues
Line: 63
Column: 12
CWE codes:
126
Suggestion:
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
return tok_;
}
template<class Other>
bool equal(const Other& a) const{
return (a.valid_ && valid_)
?( (a.begin_==begin_) && (a.end_ == end_) )
:(a.valid_==valid_);
}
Reported by FlawFinder.
src/third_party/boost/boost/type_index/detail/compile_time_type_info.hpp
1 issues
Line: 240
Column: 26
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
template <char... C>
struct cstring {
static constexpr unsigned int size_ = sizeof...(C);
static constexpr char data_[size_] = { C... };
};
template <char... C>
constexpr char cstring<C...>::data_[];
#endif
Reported by FlawFinder.
src/third_party/boost/boost/type_traits/detail/yes_no_type.hpp
1 issues
Line: 20
Column: 4
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
typedef char yes_type;
struct no_type
{
char padding[8];
};
} // namespace type_traits
} // namespace boost
Reported by FlawFinder.
src/third_party/boost/boost/type_traits/is_complete.hpp
1 issues
Line: 44
Column: 33
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
namespace detail{
template <unsigned N>
struct ok_tag { double d; char c[N]; };
template <class T>
ok_tag<sizeof(T)> check_is_complete(int);
template <class T>
char check_is_complete(...);
Reported by FlawFinder.
src/third_party/boost/boost/assign/list_of.hpp
1 issues
Line: 280
Column: 48
CWE codes:
126
Suggestion:
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
template< class T, class I, class Range >
inline bool operator==( const converter<T,I>& l, const Range& r )
{
return ::boost::iterator_range_detail::equal( l, r );
}
template< class T, class I, class Range >
inline bool operator==( const Range& l, const converter<T,I>& r )
{
Reported by FlawFinder.
src/third_party/boost/boost/variant/detail/has_result_type.hpp
1 issues
Line: 25
Column: 22
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
struct has_result_type {
private:
typedef char yes;
typedef struct { char array[2]; } no;
template<typename C> static yes test(typename boost::remove_reference<typename C::result_type>::type*);
template<typename C> static no test(...);
public:
Reported by FlawFinder.
src/third_party/boost/boost/variant/recursive_variant.hpp
1 issues
Line: 98
Column: 16
CWE codes:
126
Suggestion:
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
public:
typedef typename mpl::if_<
mpl::equal<initial_types, types, ::boost::is_same<mpl::_1, mpl::_2> >
, ::boost::variant<
::boost::detail::variant::over_sequence< T0 >
, BOOST_VARIANT_ENUM_SHIFTED_PARAMS(T)
>
, ::boost::variant< over_sequence<types> >
Reported by FlawFinder.
src/third_party/boost/boost/vmd/detail/assert.hpp
1 issues
Line: 23
Column: 13
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
#define BOOST_VMD_DETAIL_ASSERT_VC_GEN_ERROR_OUTPUT(errstr) \
BOOST_PP_ASSERT(0) \
typedef char errstr[-1]; \
/**/
#define BOOST_VMD_DETAIL_ASSERT_VC_GEN_ERROR_DEFAULT(...) \
BOOST_VMD_DETAIL_ASSERT_VC_GEN_ERROR_OUTPUT(BOOST_VMD_ASSERT_ERROR) \
/**/
Reported by FlawFinder.
src/third_party/boost/boost/xpressive/detail/core/list.hpp
1 issues
Line: 64
Column: 18
CWE codes:
126
Suggestion:
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
Ref dereference() const { return static_cast<node *>(_node)->_value; }
void increment() { _node = _node->_next; }
void decrement() { _node = _node->_prev; }
bool equal(list_iterator const &it) const { return _node == it._node; }
node_base *_node;
};
public:
typedef T *pointer;
Reported by FlawFinder.
src/third_party/boost/boost/regex/v4/regex_raw_buffer.hpp
1 issues
Line: 139
Column: 18
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
pointer ptr = static_cast<pointer>(::operator new(newsize));
BOOST_REGEX_NOEH_ASSERT(ptr)
if (start)
std::memcpy(ptr, start, datasize);
// get rid of old buffer:
::operator delete(start);
// and set up pointers:
Reported by FlawFinder.