The following issues were found
src/third_party/boost/boost/random/random_device.hpp
2 issues
Line: 28
Column: 11
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
#include <boost/system/config.hpp> // force autolink to find Boost.System
namespace boost {
namespace random {
/**
* Class \random_device models a \nondeterministic_random_number_generator.
* It uses one or more implementation-defined stochastic processes to
* generate a sequence of uniformly distributed non-deterministic random
Reported by FlawFinder.
Line: 139
Column: 7
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
} // namespace random
using random::random_device;
} // namespace boost
#endif /* BOOST_RANDOM_RANDOM_DEVICE_HPP */
Reported by FlawFinder.
src/third_party/icu4c-57.1/source/i18n/csdetect.cpp
2 issues
Line: 447
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
status = U_MEMORY_ALLOCATION_ERROR;
return 0;
}
memcpy(en, &gCSDetEnumeration, sizeof(UEnumeration));
en->context = (void*)NEW_ARRAY(Context, 1);
if (en->context == NULL) {
status = U_MEMORY_ALLOCATION_ERROR;
DELETE_ARRAY(en);
return 0;
Reported by FlawFinder.
Line: 470
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
status = U_MEMORY_ALLOCATION_ERROR;
return 0;
}
memcpy(en, &gCSDetEnumeration, sizeof(UEnumeration));
en->context = (void*)NEW_ARRAY(Context, 1);
if (en->context == NULL) {
status = U_MEMORY_ALLOCATION_ERROR;
DELETE_ARRAY(en);
return 0;
Reported by FlawFinder.
src/third_party/mozjs-60/extract/js/src/threading/posix/Thread.cpp
2 issues
Line: 182
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
#if (defined(__APPLE__) && defined(__MACH__)) || defined(__linux__)
// On linux and OS X the name may not be longer than 16 bytes, including
// the null terminator. Truncate the name to 15 characters.
char nameBuf[16];
strncpy(nameBuf, name, sizeof nameBuf - 1);
nameBuf[sizeof nameBuf - 1] = '\0';
name = nameBuf;
#endif
Reported by FlawFinder.
Line: 184
Column: 3
CWE codes:
120
// the null terminator. Truncate the name to 15 characters.
char nameBuf[16];
strncpy(nameBuf, name, sizeof nameBuf - 1);
nameBuf[sizeof nameBuf - 1] = '\0';
name = nameBuf;
#endif
int rv;
Reported by FlawFinder.
src/third_party/mozjs-60/extract/js/src/util/NativeStack.cpp
2 issues
Line: 109
Column: 20
CWE codes:
362
// The volatile keyword should stop the compiler from trying to omit
// the stack copy in the future (hopefully).
volatile char path[] = "/proc/self/maps";
FILE* fs = fopen((const char*)path, "r");
if (fs) {
char line[100];
unsigned long stackAddr = (unsigned long)&sattr;
while (fgets(line, sizeof(line), fs) != nullptr) {
Reported by FlawFinder.
Line: 112
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
FILE* fs = fopen((const char*)path, "r");
if (fs) {
char line[100];
unsigned long stackAddr = (unsigned long)&sattr;
while (fgets(line, sizeof(line), fs) != nullptr) {
unsigned long stackStart;
unsigned long stackEnd;
if (sscanf(line, "%lx-%lx ", &stackStart, &stackEnd) == 2 &&
Reported by FlawFinder.
src/third_party/boost/boost/system/detail/error_category_impl.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
{
// error_category default implementation
inline error_condition error_category::default_error_condition( int ev ) const BOOST_NOEXCEPT
Reported by FlawFinder.
Line: 72
Column: 14
CWE codes:
120
# endif
# endif
std::strncpy( buffer, m.c_str(), len - 1 );
buffer[ len-1 ] = 0;
# if defined( BOOST_MSVC )
# pragma warning( pop )
# elif defined(__clang__) && defined(__has_warning)
Reported by FlawFinder.
src/third_party/boost/boost/intrusive/unordered_set.hpp
2 issues
Line: 447
Column: 34
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
< value_traits
, typename packed_options::key_of_value
, typename packed_options::hash
, typename packed_options::equal
, typename packed_options::size_type
, bucket_traits
, (std::size_t(true)*hash_bool_flags::unique_keys_pos)
| (std::size_t(packed_options::constant_time_size)*hash_bool_flags::constant_time_size_pos)
| (std::size_t(packed_options::power_2_buckets)*hash_bool_flags::power_2_buckets_pos)
Reported by FlawFinder.
Line: 899
Column: 34
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
< value_traits
, typename packed_options::key_of_value
, typename packed_options::hash
, typename packed_options::equal
, typename packed_options::size_type
, bucket_traits
, (std::size_t(false)*hash_bool_flags::unique_keys_pos)
| (std::size_t(packed_options::constant_time_size)*hash_bool_flags::constant_time_size_pos)
| (std::size_t(packed_options::power_2_buckets)*hash_bool_flags::power_2_buckets_pos)
Reported by FlawFinder.
src/third_party/boost/boost/intrusive/options.hpp
2 issues
Line: 97
Column: 29
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
//!This option setter specifies the equality
//!functor for the value type
BOOST_INTRUSIVE_OPTION_TYPE(equal, Equal, Equal, equal)
//!This option setter specifies the priority comparison
//!functor for the value type
BOOST_INTRUSIVE_OPTION_TYPE(priority, Priority, Priority, priority)
Reported by FlawFinder.
Line: 97
Column: 50
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
//!This option setter specifies the equality
//!functor for the value type
BOOST_INTRUSIVE_OPTION_TYPE(equal, Equal, Equal, equal)
//!This option setter specifies the priority comparison
//!functor for the value type
BOOST_INTRUSIVE_OPTION_TYPE(priority, Priority, Priority, priority)
Reported by FlawFinder.
src/third_party/boost/boost/asio/execution/any_executor.hpp
2 issues
Line: 657
Column: 25
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 false;
if (target_fns_ != other.target_fns_)
return false;
return target_fns_->equal(*this, other);
}
template <typename Ex>
Ex& object()
{
Reported by FlawFinder.
Line: 812
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
#else // !defined(BOOST_ASIO_NO_TYPEID)
const void* (*target_type)();
#endif // !defined(BOOST_ASIO_NO_TYPEID)
bool (*equal)(const any_executor_base&, const any_executor_base&);
void (*execute)(const any_executor_base&, BOOST_ASIO_MOVE_ARG(function));
void (*blocking_execute)(const any_executor_base&, function_view);
};
#if !defined(BOOST_ASIO_NO_TYPEID)
Reported by FlawFinder.
src/third_party/mozjs-60/extract/js/src/vm/DateTime.cpp
2 issues
Line: 338
DateTimeInfo::instance = nullptr;
}
JS_PUBLIC_API(void)
JS::ResetTimeZone()
{
js::DateTimeInfo::updateTimeZoneAdjustment();
#if ENABLE_INTL_API && defined(ICU_TZ_HAS_RECREATE_DEFAULT)
Reported by Cppcheck.
Line: 411
Column: 31
CWE codes:
807
20
Suggestion:
Check environment variables carefully before using them
// If TZ is set and its value is valid under Windows' and IANA's time
// zone identifier rules, update the ICU default time zone to use this
// value.
const char* tz = std::getenv("TZ");
if (tz && IsOlsonCompatibleWindowsTimeZoneId(tz)) {
icu::UnicodeString tzid(tz, -1, US_INV);
mozilla::UniquePtr<icu::TimeZone> newTimeZone(icu::TimeZone::createTimeZone(tzid));
MOZ_ASSERT(newTimeZone);
if (*newTimeZone != icu::TimeZone::getUnknown()) {
Reported by FlawFinder.
src/third_party/icu4c-57.1/source/i18n/dayperiodrules.cpp
2 issues
Line: 385
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
if(U_FAILURE(errorCode)) { return NULL; }
const char *localeCode = locale.getName();
char name[ULOC_FULLNAME_CAPACITY];
char parentName[ULOC_FULLNAME_CAPACITY];
if (uprv_strlen(localeCode) < ULOC_FULLNAME_CAPACITY) {
uprv_strcpy(name, localeCode);
Reported by FlawFinder.
Line: 386
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
const char *localeCode = locale.getName();
char name[ULOC_FULLNAME_CAPACITY];
char parentName[ULOC_FULLNAME_CAPACITY];
if (uprv_strlen(localeCode) < ULOC_FULLNAME_CAPACITY) {
uprv_strcpy(name, localeCode);
// Treat empty string as root.
Reported by FlawFinder.