The following issues were found
src/third_party/boost/boost/chrono/io/time_point_io.hpp
8 issues
Line: 684
Column: 16
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
bool flag = false;
BOOST_TRY
{
os.setstate(std::ios_base::failbit);
}
BOOST_CATCH (std::ios_base::failure )
{
flag = true;
}
Reported by FlawFinder.
Line: 694
Column: 21
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
if (flag) throw;
}
BOOST_CATCH_END
if (err) os.setstate(err);
return os;
}
BOOST_CATCH (...)
{
failed = true;
Reported by FlawFinder.
Line: 702
Column: 22
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
failed = true;
}
BOOST_CATCH_END
if (failed) os.setstate(std::ios_base::failbit | std::ios_base::badbit);
return os;
}
template <class CharT, class Traits, class Clock, class Duration>
std::basic_istream<CharT, Traits>&
Reported by FlawFinder.
Line: 733
Column: 14
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
bool flag = false;
BOOST_TRY
{
is.setstate(std::ios_base::failbit);
}
BOOST_CATCH (std::ios_base::failure )
{
flag = true;
}
Reported by FlawFinder.
Line: 743
Column: 19
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
if (flag) throw;
}
BOOST_CATCH_END
if (err) is.setstate(err);
return is;
}
namespace detail
Reported by FlawFinder.
Line: 1032
Column: 14
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
BOOST_CATCH_END
if (failed)
{
os.setstate(std::ios_base::failbit | std::ios_base::badbit);
}
}
return os;
}
#endif
Reported by FlawFinder.
Line: 1238
Column: 18
CWE codes:
327
Suggestion:
Use a more secure technique for acquiring random values
err |= std::ios_base::badbit | std::ios_base::failbit;
}
BOOST_CATCH_END
exit: is.setstate(err);
}
return is;
}
#endif
Reported by FlawFinder.
Line: 855
Column: 30
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 (tm==0) return 0;
#if 0
static const unsigned char
day_of_year_month[2][366] =
{
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12
Reported by FlawFinder.
src/third_party/wiredtiger/dist/s_function_loop.py
8 issues
Line: 5
Column: 62
# Each input line is the content of a C function.
import re, sys
p = re.compile('((for |while |_FOREACH|FOREACH_BEGIN)\([^{)]*\)|do) {')
for line in sys.stdin:
matched = 0
m = p.search(line)
while m != None:
matched = 1
Reported by Pylint.
Line: 5
Column: 54
# Each input line is the content of a C function.
import re, sys
p = re.compile('((for |while |_FOREACH|FOREACH_BEGIN)\([^{)]*\)|do) {')
for line in sys.stdin:
matched = 0
m = p.search(line)
while m != None:
matched = 1
Reported by Pylint.
Line: 1
Column: 1
# Mark outer loop boundaries with {@ and }@ . Nested loops are not marked.
# Each input line is the content of a C function.
import re, sys
p = re.compile('((for |while |_FOREACH|FOREACH_BEGIN)\([^{)]*\)|do) {')
for line in sys.stdin:
matched = 0
m = p.search(line)
while m != None:
Reported by Pylint.
Line: 3
Column: 1
# Mark outer loop boundaries with {@ and }@ . Nested loops are not marked.
# Each input line is the content of a C function.
import re, sys
p = re.compile('((for |while |_FOREACH|FOREACH_BEGIN)\([^{)]*\)|do) {')
for line in sys.stdin:
matched = 0
m = p.search(line)
while m != None:
Reported by Pylint.
Line: 7
Column: 5
p = re.compile('((for |while |_FOREACH|FOREACH_BEGIN)\([^{)]*\)|do) {')
for line in sys.stdin:
matched = 0
m = p.search(line)
while m != None:
matched = 1
pos = m.end()
out = line[:pos] + "@"
Reported by Pylint.
Line: 9
Column: 11
for line in sys.stdin:
matched = 0
m = p.search(line)
while m != None:
matched = 1
pos = m.end()
out = line[:pos] + "@"
level = 1
length = len(line)
Reported by Pylint.
Line: 10
Column: 9
matched = 0
m = p.search(line)
while m != None:
matched = 1
pos = m.end()
out = line[:pos] + "@"
level = 1
length = len(line)
while level > 0 and pos < length:
Reported by Pylint.
Line: 13
Column: 9
matched = 1
pos = m.end()
out = line[:pos] + "@"
level = 1
length = len(line)
while level > 0 and pos < length:
c = line[pos:pos+1]
pos += 1
out += c
Reported by Pylint.
src/third_party/boost/boost/move/detail/type_traits.hpp
8 issues
Line: 265
Column: 25
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<typename Tt, typename Ut>
class boost_move_tt_is_assignable
{
struct twochar { char dummy[2]; };
template < class T
, class U
, class = decltype(boost_move_tt_declval<T>() = boost_move_tt_declval<U>())
> static char test(int);
Reported by FlawFinder.
Line: 280
Column: 25
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<typename Tt, typename Ut>
class boost_move_tt_is_constructible
{
struct twochar { char dummy[2]; };
template < class T
, class U
, class = decltype(T(boost_move_tt_declval<U>()))
> static char test(int);
Reported by FlawFinder.
Line: 742
Column: 21
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 <class T>
struct is_reference_convertible_to_pointer
{
struct twochar { char dummy[2]; };
template <class U> static char test(U*);
template <class U> static twochar test(...);
static T& source();
static const bool value = sizeof(char) == sizeof(test<T>(source()));
};
Reported by FlawFinder.
Line: 963
Column: 21
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
// https://connect.microsoft.com/VisualStudio/feedback/details/800328/std-is-copy-constructible-is-broken
#if defined(BOOST_MOVE_TT_CXX11_IS_COPY_ASSIGNABLE)
typedef char yes_type;
struct no_type { char dummy[2]; };
template <class U> static typename add_reference<U>::type source();
template <class U> static decltype(source<U&>() = source<const U&>(), yes_type() ) test(int);
template <class> static no_type test(...);
Reported by FlawFinder.
Line: 1168
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
{
typedef aligned_struct<Align> aligner_t;
aligner_t aligner;
unsigned char data[Len > sizeof(aligner_t) ? Len : sizeof(aligner_t)];
};
template<std::size_t Len, std::size_t Align>
struct aligned_storage_impl
{
Reported by FlawFinder.
Line: 1186
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
template<std::size_t Len>\
struct BOOST_ALIGNMENT(A) aligned_struct<Len, A>\
{\
unsigned char data[Len];\
};\
//
//Up to 4K alignment (typical page size)
BOOST_MOVE_ALIGNED_STORAGE_WITH_BOOST_ALIGNMENT(0x1)
Reported by FlawFinder.
Line: 1214
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
{
typedef aligned_struct<Len, Align> aligner_t;
aligned_struct<Len, Align> aligner;
unsigned char data[Len > sizeof(aligner_t) ? Len : sizeof(aligner_t)];
};
template<std::size_t Len, std::size_t Align>
struct aligned_storage_impl
{
Reported by FlawFinder.
Line: 1229
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
union aligned_union
{
T aligner;
unsigned char data[Len > sizeof(T) ? Len : sizeof(T)];
};
template<std::size_t Len, std::size_t Align, class T, bool Ok>
struct aligned_next;
Reported by FlawFinder.
src/third_party/boost/boost/asio/basic_socket_acceptor.hpp
8 issues
Line: 168
Column: 25
CWE codes:
362
: impl_(0, ex)
{
boost::system::error_code ec;
impl_.get_service().open(impl_.get_implementation(), protocol, ec);
boost::asio::detail::throw_error(ec, "open");
}
/// Construct an open acceptor.
/**
Reported by FlawFinder.
Line: 194
Column: 25
CWE codes:
362
: impl_(0, 0, context)
{
boost::system::error_code ec;
impl_.get_service().open(impl_.get_implementation(), protocol, ec);
boost::asio::detail::throw_error(ec, "open");
}
/// Construct an acceptor opened on the given endpoint.
/**
Reported by FlawFinder.
Line: 231
Column: 25
CWE codes:
362
{
boost::system::error_code ec;
const protocol_type protocol = endpoint.protocol();
impl_.get_service().open(impl_.get_implementation(), protocol, ec);
boost::asio::detail::throw_error(ec, "open");
if (reuse_addr)
{
impl_.get_service().set_option(impl_.get_implementation(),
socket_base::reuse_address(true), ec);
Reported by FlawFinder.
Line: 283
Column: 25
CWE codes:
362
{
boost::system::error_code ec;
const protocol_type protocol = endpoint.protocol();
impl_.get_service().open(impl_.get_implementation(), protocol, ec);
boost::asio::detail::throw_error(ec, "open");
if (reuse_addr)
{
impl_.get_service().set_option(impl_.get_implementation(),
socket_base::reuse_address(true), ec);
Reported by FlawFinder.
Line: 468
Column: 8
CWE codes:
362
* acceptor.open(boost::asio::ip::tcp::v4());
* @endcode
*/
void open(const protocol_type& protocol = protocol_type())
{
boost::system::error_code ec;
impl_.get_service().open(impl_.get_implementation(), protocol, ec);
boost::asio::detail::throw_error(ec, "open");
}
Reported by FlawFinder.
Line: 471
Column: 25
CWE codes:
362
void open(const protocol_type& protocol = protocol_type())
{
boost::system::error_code ec;
impl_.get_service().open(impl_.get_implementation(), protocol, ec);
boost::asio::detail::throw_error(ec, "open");
}
/// Open the acceptor using the specified protocol.
/**
Reported by FlawFinder.
Line: 495
Column: 27
CWE codes:
362
* }
* @endcode
*/
BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
boost::system::error_code& ec)
{
impl_.get_service().open(impl_.get_implementation(), protocol, ec);
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
}
Reported by FlawFinder.
Line: 498
Column: 25
CWE codes:
362
BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
boost::system::error_code& ec)
{
impl_.get_service().open(impl_.get_implementation(), protocol, ec);
BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
}
/// Assigns an existing native acceptor to the acceptor.
/*
Reported by FlawFinder.
src/third_party/mozjs-60/extract/mozglue/misc/Printf.cpp
8 issues
Line: 187
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
mozilla::PrintfTarget::cvt_l(long num, int width, int prec, int radix,
int type, int flags, const char* hexp)
{
char cvtbuf[100];
char* cvt;
int digits;
// according to the man page this needs to happen
if ((prec == 0) && (num == 0))
Reported by FlawFinder.
Line: 229
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
// need to stop when we hit 10 digits. In the signed case, we can
// stop when the number is zero.
int64_t rad = int64_t(radix);
char cvtbuf[100];
char* cvt = cvtbuf + sizeof(cvtbuf);
int digits = 0;
while (num != 0) {
int64_t quot = uint64_t(num) / rad;
int64_t rem = uint64_t(num) % rad;
Reported by FlawFinder.
Line: 257
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
bool
mozilla::PrintfTarget::cvt_f(double d, const char* fmt0, const char* fmt1)
{
char fin[20];
// The size is chosen such that we can print DBL_MAX. See bug#1350097.
char fout[320];
int amount = fmt1 - fmt0;
MOZ_ASSERT((amount > 0) && (amount < (int)sizeof(fin)));
Reported by FlawFinder.
Line: 259
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
{
char fin[20];
// The size is chosen such that we can print DBL_MAX. See bug#1350097.
char fout[320];
int amount = fmt1 - fmt0;
MOZ_ASSERT((amount > 0) && (amount < (int)sizeof(fin)));
if (amount >= (int)sizeof(fin)) {
// Totally bogus % command to sprintf. Just ignore it
Reported by FlawFinder.
Line: 267
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
// Totally bogus % command to sprintf. Just ignore it
return true;
}
memcpy(fin, fmt0, (size_t)amount);
fin[amount] = 0;
// Convert floating point using the native snprintf code
#ifdef DEBUG
{
Reported by FlawFinder.
Line: 571
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
static const char HEX[] = "0123456789ABCDEF";
const char* hexp;
int i;
char pattern[20];
const char* dolPt = nullptr; // in "%4$.2f", dolPt will point to '.'
// Build an argument array, IF the fmt is numbered argument
// list style, to contain the Numbered Argument list pointers.
Reported by FlawFinder.
Line: 787
Column: 21
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
i = fmt - dolPt;
if (i < int(sizeof(pattern))) {
pattern[0] = '%';
memcpy(&pattern[1], dolPt, size_t(i));
if (!cvt_f(u.d, pattern, &pattern[i + 1]))
return false;
}
} else {
if (!cvt_f(u.d, fmt0, fmt))
Reported by FlawFinder.
Line: 300
Column: 20
CWE codes:
126
s = "(null)";
// Limit string length by precision value
int slen = int(strlen(s));
if (0 < prec && prec < slen)
slen = prec;
// and away we go
return fill2(s, slen, width, flags);
Reported by FlawFinder.
src/third_party/wiredtiger/dist/db.py
8 issues
Line: 1
Column: 1
# A simple python script to build a file that can be bulk-loaded into a
# WiredTiger database for smoke-testing.
import getopt, random, sys
dmin = 7 # Minimum data size
dmax = 837 # Maximum data size
seed = None # Random number seed
Reported by Pylint.
Line: 4
Column: 1
# A simple python script to build a file that can be bulk-loaded into a
# WiredTiger database for smoke-testing.
import getopt, random, sys
dmin = 7 # Minimum data size
dmax = 837 # Maximum data size
seed = None # Random number seed
Reported by Pylint.
Line: 6
Column: 1
import getopt, random, sys
dmin = 7 # Minimum data size
dmax = 837 # Maximum data size
seed = None # Random number seed
pairs = 100000 # Key/data pairs to output
Reported by Pylint.
Line: 7
Column: 1
import getopt, random, sys
dmin = 7 # Minimum data size
dmax = 837 # Maximum data size
seed = None # Random number seed
pairs = 100000 # Key/data pairs to output
opts, args = getopt.getopt(sys.argv[1:], "m:n:s:")
Reported by Pylint.
Line: 9
Column: 1
dmin = 7 # Minimum data size
dmax = 837 # Maximum data size
seed = None # Random number seed
pairs = 100000 # Key/data pairs to output
opts, args = getopt.getopt(sys.argv[1:], "m:n:s:")
for o, a in opts:
if o == "-m":
Reported by Pylint.
Line: 10
Column: 1
dmax = 837 # Maximum data size
seed = None # Random number seed
pairs = 100000 # Key/data pairs to output
opts, args = getopt.getopt(sys.argv[1:], "m:n:s:")
for o, a in opts:
if o == "-m":
dmax = int(a)
Reported by Pylint.
Line: 23
Column: 5
random.seed(seed)
for i in range(pairs):
fmt = "%010d\ndata: %0" + str(random.randrange(dmin, dmax)) + "d"
print(fmt % (i, i))
Reported by Pylint.
Line: 23
Suggestion:
https://bandit.readthedocs.io/en/latest/blacklists/blacklist_calls.html#b311-random
random.seed(seed)
for i in range(pairs):
fmt = "%010d\ndata: %0" + str(random.randrange(dmin, dmax)) + "d"
print(fmt % (i, i))
Reported by Bandit.
src/mongo/db/exec/document_value/value_internal.h
8 issues
Line: 165
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
ValueStorage(BSONType t, const OID& o) {
zero();
type = t;
memcpy(&oid, o.view().view(), OID::kOIDSize);
}
ValueStorage(const ValueStorage& rhs) {
memcpy(bytes, rhs.bytes, sizeof(bytes));
memcpyed();
Reported by FlawFinder.
Line: 218
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
void swap(ValueStorage& rhs) {
// Don't need to update ref-counts because they will be the same in the end
char temp[sizeof(bytes)];
memcpy(temp, bytes, sizeof(bytes));
memcpy(bytes, rhs.bytes, sizeof(bytes));
memcpy(rhs.bytes, temp, sizeof(bytes));
}
Reported by FlawFinder.
Line: 219
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
void swap(ValueStorage& rhs) {
// Don't need to update ref-counts because they will be the same in the end
char temp[sizeof(bytes)];
memcpy(temp, bytes, sizeof(bytes));
memcpy(bytes, rhs.bytes, sizeof(bytes));
memcpy(rhs.bytes, temp, sizeof(bytes));
}
/// Call this after memcpying to update ref counts if needed
Reported by FlawFinder.
Line: 221
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
char temp[sizeof(bytes)];
memcpy(temp, bytes, sizeof(bytes));
memcpy(bytes, rhs.bytes, sizeof(bytes));
memcpy(rhs.bytes, temp, sizeof(bytes));
}
/// Call this after memcpying to update ref counts if needed
void memcpyed() const {
if (kDebugBuild)
Reported by FlawFinder.
Line: 333
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
// bytes[2:15]
union {
unsigned char oid[12];
struct {
char shortStrSize; // TODO Consider moving into flags union (4 bits)
char shortStrStorage[sizeof(bytes) - 3 /*offset*/ - 1 /*NUL byte*/];
union {
Reported by FlawFinder.
Line: 337
Column: 21
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 {
char shortStrSize; // TODO Consider moving into flags union (4 bits)
char shortStrStorage[sizeof(bytes) - 3 /*offset*/ - 1 /*NUL byte*/];
union {
char nulTerminator;
};
};
Reported by FlawFinder.
Line: 346
Column: 25
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 {
union {
unsigned char binSubType;
char pad[6];
char stringCache[6]; // TODO copy first few bytes of strings in here
};
union { // 8 bytes long and 8-byte aligned
// There should be no pointers to non-const data
const RefCountable* genericRCPtr;
Reported by FlawFinder.
Line: 347
Column: 25
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
union {
unsigned char binSubType;
char pad[6];
char stringCache[6]; // TODO copy first few bytes of strings in here
};
union { // 8 bytes long and 8-byte aligned
// There should be no pointers to non-const data
const RefCountable* genericRCPtr;
Reported by FlawFinder.
src/third_party/mozjs-60/extract/js/src/wasm/WasmCode.cpp
8 issues
Line: 301
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if (!codeBytes)
return nullptr;
memcpy(codeBytes.get(), unlinkedBytes.begin(), unlinkedBytes.length());
memset(codeBytes.get() + unlinkedBytes.length(), 0, padding);
return create(tier, Move(codeBytes), codeLength, bytecode, linkData, metadata, codeRanges);
}
Reported by FlawFinder.
Line: 183
Column: 31
CWE codes:
126
static bool
AppendToString(const char* str, UTF8Bytes* bytes)
{
return bytes->append(str, strlen(str)) && bytes->append('\0');
}
#endif
static void
SendCodeRangesToProfiler(const ModuleSegment& ms, const Bytes& bytecode, const Metadata& metadata,
Reported by FlawFinder.
Line: 485
Column: 20
CWE codes:
126
static size_t
StringLengthWithNullChar(const char* chars)
{
return chars ? strlen(chars) + 1 : 0;
}
size_t
CacheableChars::serializedSize() const
{
Reported by FlawFinder.
Line: 991
Column: 42
CWE codes:
126
const char* funcIndexStr = NumberToCString(nullptr, &cbuf, funcIndex);
MOZ_ASSERT(funcIndexStr);
return name->append(beforeFuncIndex, strlen(beforeFuncIndex)) &&
name->append(funcIndexStr, strlen(funcIndexStr)) &&
name->append(afterFuncIndex, strlen(afterFuncIndex));
}
size_t
Reported by FlawFinder.
Line: 992
Column: 39
CWE codes:
126
MOZ_ASSERT(funcIndexStr);
return name->append(beforeFuncIndex, strlen(beforeFuncIndex)) &&
name->append(funcIndexStr, strlen(funcIndexStr)) &&
name->append(afterFuncIndex, strlen(afterFuncIndex));
}
size_t
CodeTier::serializedSize() const
Reported by FlawFinder.
Line: 993
Column: 41
CWE codes:
126
return name->append(beforeFuncIndex, strlen(beforeFuncIndex)) &&
name->append(funcIndexStr, strlen(funcIndexStr)) &&
name->append(afterFuncIndex, strlen(afterFuncIndex));
}
size_t
CodeTier::serializedSize() const
{
Reported by FlawFinder.
Line: 1331
Column: 40
CWE codes:
126
return;
if (const char* filename = metadata().filename.get()) {
if (!name.append(filename, strlen(filename)))
return;
} else {
if (!name.append('?'))
return;
}
Reported by FlawFinder.
Line: 1339
Column: 39
CWE codes:
126
}
if (!name.append(':') ||
!name.append(bytecodeStr, strlen(bytecodeStr)) ||
!name.append(")\0", 2))
{
return;
}
Reported by FlawFinder.
src/third_party/wiredtiger/test/suite/test_empty.py
8 issues
Line: 30
Column: 1
# OTHER DEALINGS IN THE SOFTWARE.
import os
import wiredtiger, wttest
from wtscenario import make_scenarios
# test_empty.py
# Test that empty objects don't write anything other than a single sector.
class test_empty(wttest.WiredTigerTestCase):
Reported by Pylint.
Line: 30
Column: 1
# OTHER DEALINGS IN THE SOFTWARE.
import os
import wiredtiger, wttest
from wtscenario import make_scenarios
# test_empty.py
# Test that empty objects don't write anything other than a single sector.
class test_empty(wttest.WiredTigerTestCase):
Reported by Pylint.
Line: 53
Column: 9
name = self.name
if self.type == "table:":
name = name + '.wt'
self.assertEquals(os.stat(name).st_size, 4*1024)
if __name__ == '__main__':
wttest.run()
Reported by Pylint.
Line: 1
Column: 1
#!/usr/bin/env python
#
# Public Domain 2014-present MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
#
# Anyone is free to copy, modify, publish, use, compile, sell, or
# distribute this software, either in source code form or as a compiled
Reported by Pylint.
Line: 30
Column: 1
# OTHER DEALINGS IN THE SOFTWARE.
import os
import wiredtiger, wttest
from wtscenario import make_scenarios
# test_empty.py
# Test that empty objects don't write anything other than a single sector.
class test_empty(wttest.WiredTigerTestCase):
Reported by Pylint.
Line: 35
Column: 1
# test_empty.py
# Test that empty objects don't write anything other than a single sector.
class test_empty(wttest.WiredTigerTestCase):
name = 'test_empty'
scenarios = make_scenarios([
('file-r', dict(type='file:', fmt='r')),
('file-S', dict(type='file:', fmt='S')),
Reported by Pylint.
Line: 35
Column: 1
# test_empty.py
# Test that empty objects don't write anything other than a single sector.
class test_empty(wttest.WiredTigerTestCase):
name = 'test_empty'
scenarios = make_scenarios([
('file-r', dict(type='file:', fmt='r')),
('file-S', dict(type='file:', fmt='S')),
Reported by Pylint.
Line: 46
Column: 5
])
# Creating an object and then closing it shouldn't write any blocks.
def test_empty_create(self):
uri = self.type + self.name
self.session.create(uri, 'key_format=' + self.fmt + ',value_format=S')
self.session.close()
name = self.name
if self.type == "table:":
Reported by Pylint.
src/third_party/wiredtiger/test/py_install/testbase.py
8 issues
Line: 31
Column: 1
# A quick sanity test of an installation via 'pip install wiredtiger'.
import wiredtiger, shutil, os
from wiredtiger import wiredtiger_open, wiredtiger_version
wthome = "WTPY_TEST"
shutil.rmtree(wthome, ignore_errors=True)
os.mkdir(wthome)
Reported by Pylint.
Line: 32
Column: 1
# A quick sanity test of an installation via 'pip install wiredtiger'.
import wiredtiger, shutil, os
from wiredtiger import wiredtiger_open, wiredtiger_version
wthome = "WTPY_TEST"
shutil.rmtree(wthome, ignore_errors=True)
os.mkdir(wthome)
conn = wiredtiger_open(wthome, "create")
Reported by Pylint.
Line: 31
Column: 1
# A quick sanity test of an installation via 'pip install wiredtiger'.
import wiredtiger, shutil, os
from wiredtiger import wiredtiger_open, wiredtiger_version
wthome = "WTPY_TEST"
shutil.rmtree(wthome, ignore_errors=True)
os.mkdir(wthome)
Reported by Pylint.
Line: 1
Column: 1
#!/usr/bin/env python
#
# Public Domain 2014-present MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
#
# Anyone is free to copy, modify, publish, use, compile, sell, or
# distribute this software, either in source code form or as a compiled
Reported by Pylint.
Line: 31
Column: 1
# A quick sanity test of an installation via 'pip install wiredtiger'.
import wiredtiger, shutil, os
from wiredtiger import wiredtiger_open, wiredtiger_version
wthome = "WTPY_TEST"
shutil.rmtree(wthome, ignore_errors=True)
os.mkdir(wthome)
Reported by Pylint.
Line: 31
Column: 1
# A quick sanity test of an installation via 'pip install wiredtiger'.
import wiredtiger, shutil, os
from wiredtiger import wiredtiger_open, wiredtiger_version
wthome = "WTPY_TEST"
shutil.rmtree(wthome, ignore_errors=True)
os.mkdir(wthome)
Reported by Pylint.
Line: 31
Column: 1
# A quick sanity test of an installation via 'pip install wiredtiger'.
import wiredtiger, shutil, os
from wiredtiger import wiredtiger_open, wiredtiger_version
wthome = "WTPY_TEST"
shutil.rmtree(wthome, ignore_errors=True)
os.mkdir(wthome)
Reported by Pylint.
Line: 34
Column: 1
import wiredtiger, shutil, os
from wiredtiger import wiredtiger_open, wiredtiger_version
wthome = "WTPY_TEST"
shutil.rmtree(wthome, ignore_errors=True)
os.mkdir(wthome)
conn = wiredtiger_open(wthome, "create")
session = conn.open_session()
session.create('table:foo', 'key_format=S,value_format=i')
Reported by Pylint.