The following issues were found
src/third_party/boost/boost/range/detail/implementation_help.hpp
2 issues
Line: 37
Column: 24
CWE codes:
126
inline const char* str_end( const char* s, const char* )
{
return s + strlen( s );
}
#ifndef BOOST_NO_CWCHAR
inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
{
Reported by FlawFinder.
Line: 43
Column: 24
CWE codes:
126
#ifndef BOOST_NO_CWCHAR
inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
{
return s + wcslen( s );
}
#else
inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
{
if( s == 0 || s[0] == 0 )
Reported by FlawFinder.
src/third_party/boost/boost/random/mixmax.hpp
2 issues
Line: 28
Column: 11
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
#include <boost/random/detail/seed_impl.hpp>
namespace boost {
namespace random {
/**
* Instantiations of class template mixmax_engine model,
* \pseudo_random_number_generator .
* It uses the MIXMAX generator algorithms from:
Reported by FlawFinder.
Line: 151
Column: 12
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
if (sum == savedsum && counter>0 && counter<Ndim){
me.S.V=vec; me.S.counter = counter; me.S.sumtot=savedsum;
}else{
in.setstate(std::ios::failbit);
}
return in;
}
friend bool operator==(const mixmax_engine & x,
Reported by FlawFinder.
src/third_party/icu4c-57.1/source/i18n/tmutfmt.cpp
2 issues
Line: 183
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
int32_t longestParseDistance = 0;
UnicodeString* countOfLongestMatch = NULL;
#ifdef TMUTFMT_DEBUG
char res[1000];
source.extract(0, source.length(), res, "UTF-8");
std::cout << "parse source: " << res << "\n";
#endif
// parse by iterating through all available patterns
// and looking for the longest match.
Reported by FlawFinder.
Line: 532
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
return;
}
UErrorCode status = U_ZERO_ERROR;
char parentLocale[ULOC_FULLNAME_CAPACITY];
uprv_strcpy(parentLocale, localeName);
int32_t locNameLen;
U_ASSERT(countToPatterns != NULL);
while ((locNameLen = uloc_getParent(parentLocale, parentLocale,
ULOC_FULLNAME_CAPACITY, &status)) >= 0){
Reported by FlawFinder.
src/third_party/icu4c-57.1/source/i18n/translit.cpp
2 issues
Line: 1326
CWE codes:
476
}
umtx_unlock(®istryMutex);
U_ASSERT(result != NULL); // fail if no registry
return *result;
}
StringEnumeration* U_EXPORT2 Transliterator::getAvailableIDs(UErrorCode& ec) {
if (U_FAILURE(ec)) return NULL;
StringEnumeration* result = NULL;
Reported by Cppcheck.
Line: 759
Column: 9
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
// build the char* key
if (uprv_isInvariantUString(ID.getBuffer(), ID.length())) {
char key[200];
uprv_strcpy(key, RB_DISPLAY_NAME_PREFIX);
int32_t length=(int32_t)uprv_strlen(RB_DISPLAY_NAME_PREFIX);
ID.extract(0, (int32_t)(sizeof(key)-length), key+length, (int32_t)(sizeof(key)-length), US_INV);
// Try to retrieve a UnicodeString from the bundle.
Reported by FlawFinder.
src/third_party/mozjs-60/extract/mfbt/Assertions.cpp
2 issues
Line: 54
Column: 13
CWE codes:
134
Suggestion:
Use a constant for the format specification
}
va_list aArgs;
va_start(aArgs, aFormat);
int ret = vsnprintf(sPrintfCrashReason, sPrintfCrashReasonSize,
aFormat, aArgs);
va_end(aArgs);
MOZ_RELEASE_ASSERT(ret >= 0 && size_t(ret) < sPrintfCrashReasonSize,
"Could not write the explanation string to the supplied buffer!");
#ifdef DEBUG
Reported by FlawFinder.
Line: 36
Column: 8
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
MOZ_REALLY_CRASH(aLine);
}
static char sPrintfCrashReason[sPrintfCrashReasonSize] = {};
static mozilla::Atomic<bool> sCrashing(false);
#ifndef DEBUG
MFBT_API MOZ_COLD MOZ_NORETURN MOZ_NEVER_INLINE MOZ_FORMAT_PRINTF(2, 3) void
MOZ_CrashPrintf(int aLine, const char* aFormat, ...)
Reported by FlawFinder.
src/third_party/icu4c-57.1/source/i18n/ucol_imp.h
2 issues
Line: 122
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 CollationCacheEntry *rootEntry;
Locale validLocale;
Locale locale;
char type[16];
char defaultType[16];
uint32_t typesTried;
UBool typeFallback;
UResourceBundle *bundle;
UResourceBundle *collations;
Reported by FlawFinder.
Line: 123
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
Locale validLocale;
Locale locale;
char type[16];
char defaultType[16];
uint32_t typesTried;
UBool typeFallback;
UResourceBundle *bundle;
UResourceBundle *collations;
UResourceBundle *data;
Reported by FlawFinder.
src/third_party/mozjs-60/extract/mfbt/BufferList.h
2 issues
Line: 408
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if (!data) {
return false;
}
memcpy(data, aData + copied, toCopy);
copied += toCopy;
}
return true;
}
Reported by FlawFinder.
Line: 458
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
// We've run out of data in the last segment.
return false;
}
memcpy(aData + copied, aIter.Data(), toCopy);
copied += toCopy;
remaining -= toCopy;
aIter.Advance(*this, toCopy);
}
Reported by FlawFinder.
src/third_party/boost/boost/filesystem/path.hpp
2 issues
Line: 696
Column: 10
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
const path& dereference() const { return m_element; }
bool equal(const iterator & rhs) const
{
return m_path_ptr == rhs.m_path_ptr && m_pos == rhs.m_pos;
}
// iterator_facade derived classes don't seem to like implementations in
Reported by FlawFinder.
Line: 738
Column: 10
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 class boost::filesystem::path;
const path& dereference() const { return m_element; }
bool equal(const reverse_iterator& rhs) const { return m_itr == rhs.m_itr; }
void increment()
{
--m_itr;
if (m_itr != m_itr.m_path_ptr->begin())
{
Reported by FlawFinder.
src/third_party/boost/boost/filesystem/directory.hpp
2 issues
Line: 326
Column: 8
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 increment() { detail::directory_iterator_increment(*this, 0); }
bool equal(const directory_iterator& rhs) const BOOST_NOEXCEPT
{
return m_imp == rhs.m_imp || (is_end() && rhs.is_end());
}
bool is_end() const BOOST_NOEXCEPT
Reported by FlawFinder.
Line: 570
Column: 8
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 increment() { detail::recursive_directory_iterator_increment(*this, 0); }
bool equal(const recursive_directory_iterator& rhs) const BOOST_NOEXCEPT
{
return m_imp == rhs.m_imp || (is_end() && rhs.is_end());
}
bool is_end() const BOOST_NOEXCEPT
Reported by FlawFinder.
src/third_party/boost/libs/log/src/thread_id.cpp
2 issues
Line: 99
Column: 14
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
thread::id::native_type int_id = 0;
pthread_t pthread_id = pthread_self();
#if BOOST_ENDIAN_BIG_BYTE || BOOST_ENDIAN_BIG_WORD
std::memcpy(reinterpret_cast< unsigned char* >(&int_id) + headroom_size, &pthread_id, tid_size);
#else
std::memcpy(&int_id, &pthread_id, tid_size);
#endif
return thread::id(int_id);
}
Reported by FlawFinder.
Line: 101
Column: 14
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
#if BOOST_ENDIAN_BIG_BYTE || BOOST_ENDIAN_BIG_WORD
std::memcpy(reinterpret_cast< unsigned char* >(&int_id) + headroom_size, &pthread_id, tid_size);
#else
std::memcpy(&int_id, &pthread_id, tid_size);
#endif
return thread::id(int_id);
}
} // namespace
Reported by FlawFinder.