The following issues were found
src/third_party/boost/boost/random/bernoulli_distribution.hpp
2 issues
Line: 26
Column: 11
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
#include <boost/random/detail/operators.hpp>
namespace boost {
namespace random {
/**
* Instantiations of class template \bernoulli_distribution model a
* \random_distribution. Such a random distribution produces bool values
* distributed with probabilities P(true) = p and P(false) = 1-p. p is
Reported by FlawFinder.
Line: 193
Column: 7
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
} // namespace random
using random::bernoulli_distribution;
} // namespace boost
#endif // BOOST_RANDOM_BERNOULLI_DISTRIBUTION_HPP
Reported by FlawFinder.
src/third_party/boost/boost/container/node_handle.hpp
2 issues
Line: 219
Column: 37
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
node_handle & operator=(BOOST_RV_REF(node_handle) nh) BOOST_NOEXCEPT
{
BOOST_ASSERT(this->empty() || nator_traits::propagate_on_container_move_assignment::value
|| nator_traits::equal(node_alloc(), nh.node_alloc()));
bool const was_this_non_null = !this->empty();
bool const was_nh_non_null = !nh.empty();
if(was_nh_non_null){
Reported by FlawFinder.
Line: 324
Column: 37
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
BOOST_NOEXCEPT_IF(nator_traits::propagate_on_container_swap::value || nator_traits::is_always_equal::value)
{
BOOST_ASSERT(this->empty() || nh.empty() || nator_traits::propagate_on_container_swap::value
|| nator_traits::equal(node_alloc(), nh.node_alloc()));
bool const was_this_non_null = !this->empty();
bool const was_nh_non_null = !nh.empty();
if(was_nh_non_null){
Reported by FlawFinder.
src/third_party/s2/util/coding/varint.cc
2 issues
Line: 177
Column: 3
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
}
void Varint::Append32Slow(string* s, uint32 value) {
char buf[Varint::kMax32];
const char* p = Varint::Encode32(buf, value);
s->append(buf, p - buf);
}
void Varint::Append64Slow(string* s, uint64 value) {
Reported by FlawFinder.
Line: 183
Column: 3
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
}
void Varint::Append64Slow(string* s, uint64 value) {
char buf[Varint::kMax64];
const char* p = Varint::Encode64(buf, value);
s->append(buf, p - buf);
}
void Varint::EncodeTwo32Values(string* s, uint32 a, uint32 b) {
Reported by FlawFinder.
src/third_party/scons-3.1.2/scons-local-3.1.2/SCons/Tool/MSCommon/__init__.py
2 issues
Line: 24
Column: 1
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
__revision__ = "src/engine/SCons/Tool/MSCommon/__init__.py bee7caf9defd6e108fc2998a2520ddb36a967691 2019-12-17 02:07:09 bdeegan"
__doc__ = """
Common functions for Microsoft Visual Studio and Visual C/C++.
"""
Reported by Pylint.
Line: 33
Suggestion:
https://bandit.readthedocs.io/en/latest/blacklists/blacklist_imports.html#b404-import-subprocess
import copy
import os
import re
import subprocess
import SCons.Errors
import SCons.Platform.win32
import SCons.Util
Reported by Bandit.
src/third_party/boost/boost/asio/detail/resolve_endpoint_op.hpp
2 issues
Line: 83
Column: 7
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
// the resolver operation.
// Perform the blocking endpoint resolution operation.
char host_name[NI_MAXHOST];
char service_name[NI_MAXSERV];
socket_ops::background_getnameinfo(o->cancel_token_, o->endpoint_.data(),
o->endpoint_.size(), host_name, NI_MAXHOST, service_name, NI_MAXSERV,
o->endpoint_.protocol().type(), o->ec_);
o->results_ = results_type::create(o->endpoint_, host_name, service_name);
Reported by FlawFinder.
Line: 84
Column: 7
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
// Perform the blocking endpoint resolution operation.
char host_name[NI_MAXHOST];
char service_name[NI_MAXSERV];
socket_ops::background_getnameinfo(o->cancel_token_, o->endpoint_.data(),
o->endpoint_.size(), host_name, NI_MAXHOST, service_name, NI_MAXSERV,
o->endpoint_.protocol().type(), o->ec_);
o->results_ = results_type::create(o->endpoint_, host_name, service_name);
Reported by FlawFinder.
src/third_party/boost/boost/container/detail/transform_iterator.hpp
2 issues
Line: 92
Column: 15
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
}
friend bool operator== (const transform_iterator& i, const transform_iterator& i2)
{ return i.equal(i2); }
friend bool operator!= (const transform_iterator& i, const transform_iterator& i2)
{ return !(i == i2); }
/*
Reported by FlawFinder.
Line: 152
Column: 9
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
void decrement()
{ --m_it; }
bool equal(const transform_iterator &other) const
{ return m_it == other.m_it; }
bool less(const transform_iterator &other) const
{ return other.m_it < m_it; }
Reported by FlawFinder.
src/third_party/boost/boost/container/detail/thread_mutex.hpp
2 issues
Line: 109
Column: 49
CWE codes:
Suggestion:
Use InitializeCriticalSectionAndSpinCount instead
#ifdef BOOST_PLAT_WINDOWS_UWP
extern "C" __declspec(dllimport) int __stdcall InitializeCriticalSectionEx(::_RTL_CRITICAL_SECTION *, unsigned long, unsigned long);
#else
extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(::_RTL_CRITICAL_SECTION *);
#endif
extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(::_RTL_CRITICAL_SECTION *);
extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(::_RTL_CRITICAL_SECTION *);
extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(::_RTL_CRITICAL_SECTION *);
Reported by FlawFinder.
Line: 147
Column: 8
CWE codes:
Suggestion:
Use InitializeCriticalSectionAndSpinCount instead
#ifdef BOOST_PLAT_WINDOWS_UWP
(InitializeCriticalSectionEx)(reinterpret_cast< ::_RTL_CRITICAL_SECTION* >(&m_crit_sect), 4000, 0);
#else
(InitializeCriticalSection)(reinterpret_cast< ::_RTL_CRITICAL_SECTION* >(&m_crit_sect));
#endif
}
void lock()
{
Reported by FlawFinder.
src/third_party/boost/boost/system/detail/system_category_win32.hpp
2 issues
Line: 23
Column: 11
CWE codes:
78
Suggestion:
try using a library call that implements the same functionality if available
namespace boost
{
namespace system
{
namespace detail
{
Reported by FlawFinder.
Line: 163
Column: 5
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
inline std::string unknown_message_win32( int ev )
{
char buffer[ 38 ];
return unknown_message_win32( ev, buffer, sizeof( buffer ) );
}
inline std::string system_category_message_win32( int ev )
{
Reported by FlawFinder.
src/third_party/boost/boost/random/additive_combine.hpp
2 issues
Line: 30
Column: 11
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
#include <boost/random/linear_congruential.hpp>
namespace boost {
namespace random {
/**
* An instantiation of class template @c additive_combine_engine models a
* \pseudo_random_number_generator. It combines two multiplicative
* \linear_congruential_engine number generators, i.e. those with @c c = 0.
Reported by FlawFinder.
Line: 279
Column: 7
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
} // namespace random
using random::ecuyer1988;
} // namespace boost
#endif // BOOST_RANDOM_ADDITIVE_COMBINE_HPP
Reported by FlawFinder.
src/third_party/boost/boost/property_tree/stream_translator.hpp
2 issues
Line: 148
Column: 19
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
{
s.clear(); // guarantees eof to be unset
e = 0;
s.setstate(std::ios_base::badbit);
return;
}
e = (signed char)i;
if(!s.eof()) {
s >> std::ws;
Reported by FlawFinder.
Line: 171
Column: 19
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
if(i > (std::numeric_limits<unsigned char>::max)()) {
s.clear(); // guarantees eof to be unset
e = 0;
s.setstate(std::ios_base::badbit);
return;
}
e = (unsigned char)i;
if(!s.eof()) {
s >> std::ws;
Reported by FlawFinder.