The following issues were found
Tools/c-analyzer/c_common/misc.py
3 issues
Line: 1
Column: 1
class Labeled:
__slots__ = ('_label',)
def __init__(self, label):
self._label = label
def __repr__(self):
return f'<{self._label}>'
Reported by Pylint.
Line: 2
Column: 1
class Labeled:
__slots__ = ('_label',)
def __init__(self, label):
self._label = label
def __repr__(self):
return f'<{self._label}>'
Reported by Pylint.
Line: 2
Column: 1
class Labeled:
__slots__ = ('_label',)
def __init__(self, label):
self._label = label
def __repr__(self):
return f'<{self._label}>'
Reported by Pylint.
Modules/_tracemalloc.c
3 issues
Line: 141
Column: 5
CWE codes:
134
Suggestion:
Use a constant for the format specification
va_list ap;
fprintf(stderr, "tracemalloc: ");
va_start(ap, format);
vfprintf(stderr, format, ap);
va_end(ap);
fprintf(stderr, "\n");
fflush(stderr);
}
#endif
Reported by FlawFinder.
Line: 448
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
#endif
return NULL;
}
memcpy(copy, traceback, traceback_size);
if (_Py_hashtable_set(tracemalloc_tracebacks, copy, NULL) < 0) {
raw_free(copy);
#ifdef TRACE_DEBUG
tracemalloc_error("failed to intern the traceback: putdata failed");
Reported by FlawFinder.
Line: 1476
Column: 55
CWE codes:
126
}
#define PUTS(fd, str) _Py_write_noraise(fd, str, (int)strlen(str))
static void
_PyMem_DumpFrame(int fd, frame_t * frame)
{
PUTS(fd, " File \"");
Reported by FlawFinder.
Modules/_ctypes/libffi_osx/include/ffi.h
3 issues
Line: 196
Column: 2
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
ffi_sarg sint;
ffi_arg uint;
float flt;
char data[FFI_SIZEOF_ARG];
void* ptr;
} ffi_raw;
void
ffi_raw_call(
Reported by FlawFinder.
Line: 254
Column: 2
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 FFI_CLOSURES
typedef struct ffi_closure {
char tramp[FFI_TRAMPOLINE_SIZE];
ffi_cif* cif;
void (*fun)(ffi_cif*,void*,void**,void*);
void* user_data;
} ffi_closure;
Reported by FlawFinder.
Line: 271
Column: 2
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 *ffi_closure_alloc (size_t size, void **code);
typedef struct ffi_raw_closure {
char tramp[FFI_TRAMPOLINE_SIZE];
ffi_cif* cif;
#if !FFI_NATIVE_RAW_API
/* if this is enabled, then a raw closure has the same layout
as a regular closure. We use this to install an intermediate
Reported by FlawFinder.
Python/pyhash.c
3 issues
Line: 241
Column: 34
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
# error SIZEOF_PY_UHASH_T must be 4 or 8
# endif /* SIZEOF_PY_UHASH_T */
#else /* not Windows */
# define PY_UHASH_CPY(dst, src) memcpy(dst, src, SIZEOF_PY_UHASH_T)
#endif /* _MSC_VER */
#if Py_HASH_ALGORITHM == Py_HASH_FNV
/* **************************************************************************
Reported by FlawFinder.
Line: 257
Column: 18
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
Py_ssize_t remainder, blocks;
union {
Py_uhash_t value;
unsigned char bytes[SIZEOF_PY_UHASH_T];
} block;
#ifdef Py_DEBUG
assert(_Py_HashSecret_Initialized);
#endif
Reported by FlawFinder.
Line: 404
Column: 17
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
case 7: pt[6] = in[6]; /* fall through */
case 6: pt[5] = in[5]; /* fall through */
case 5: pt[4] = in[4]; /* fall through */
case 4: memcpy(pt, in, sizeof(uint32_t)); break;
case 3: pt[2] = in[2]; /* fall through */
case 2: pt[1] = in[1]; /* fall through */
case 1: pt[0] = in[0]; /* fall through */
}
b |= _le64toh(t);
Reported by FlawFinder.
Python/pythonrun.c
3 issues
Line: 342
Column: 14
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
text mode, the bytes 3 and 4 of the magic (\r\n) might not
be read as they are on disk. */
unsigned int halfmagic = PyImport_GetMagicNumber() & 0xFFFF;
unsigned char buf[2];
/* Mess: In case of -x, the stream is NOT at its start now,
and ungetc() was used to push back the first newline,
which makes the current stream position formally undefined,
and a x-platform nightmare.
Unfortunately, we have no direct way to know whether -x
Reported by FlawFinder.
Line: 647
Column: 22
CWE codes:
126
}
/* Calculate text length excluding trailing newline */
Py_ssize_t len = strlen(text);
if (len > 0 && text[len-1] == '\n') {
len--;
}
/* Clip offset to at most len */
Reported by FlawFinder.
Line: 1436
Column: 9
CWE codes:
126
return NULL;
}
if (strlen(str) != (size_t)size) {
PyErr_SetString(PyExc_ValueError,
"source code string cannot contain null bytes");
Py_CLEAR(*cmd_copy);
return NULL;
}
Reported by FlawFinder.
Modules/expat/siphash.h
3 issues
Line: 140
Column: 12
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 siphash {
uint64_t v0, v1, v2, v3;
unsigned char buf[8], *p;
uint64_t c;
}; /* struct siphash */
#define SIP_KEYLEN 16
Reported by FlawFinder.
Line: 295
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
static int
sip24_valid(void) {
/* clang-format off */
static const unsigned char vectors[64][8] = {
{ 0x31, 0x0e, 0x0e, 0xdd, 0x47, 0xdb, 0x6f, 0x72, },
{ 0xfd, 0x67, 0xdc, 0x93, 0xc5, 0x39, 0xf8, 0x74, },
{ 0x5a, 0x4f, 0xa9, 0xd9, 0x09, 0x80, 0x6c, 0x0d, },
{ 0x2d, 0x7e, 0xfb, 0xd7, 0x96, 0x66, 0x67, 0x85, },
{ 0xb7, 0x87, 0x71, 0x27, 0xe0, 0x94, 0x27, 0xcf, },
Reported by FlawFinder.
Line: 363
Column: 12
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
};
/* clang-format on */
unsigned char in[64];
struct sipkey k;
size_t i;
sip_tokey(&k, "\000\001\002\003\004\005\006\007\010\011"
"\012\013\014\015\016\017");
Reported by FlawFinder.
Modules/_ctypes/libffi_osx/powerpc/ppc-ffi_darwin.c
3 issues
Line: 276
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
dest_cpy += 4 - size_al;
}
memcpy((char*)dest_cpy, (char*)*p_argv, size_al);
next_arg += (size_al + 3) / 4;
#else
#error undefined architecture
#endif
break;
Reported by FlawFinder.
Line: 1183
Column: 7
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
}
else
{
memcpy(&outStruct[destMarker],
&inGPRs[srcGMarker], inType->size);
srcGMarker += inType->size;
destMarker += inType->size;
i += inType->size - 1;
}
Reported by FlawFinder.
Line: 1479
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
*(long*)&outGPRs[destGMarker] =
*(long*)&inStruct[srcMarker];
else
memcpy(&outGPRs[destGMarker],
&inStruct[srcMarker], inType->size);
}
srcMarker += inType->size;
destGMarker += inType->size;
Reported by FlawFinder.
Tools/freeze/makemakefile.py
3 issues
Line: 1
Column: 1
# Write the actual Makefile.
import os
def makemakefile(outfp, makevars, files, target):
outfp.write("# Makefile generated by freeze.py script\n\n")
keys = sorted(makevars.keys())
for key in keys:
Reported by Pylint.
Line: 5
Column: 1
import os
def makemakefile(outfp, makevars, files, target):
outfp.write("# Makefile generated by freeze.py script\n\n")
keys = sorted(makevars.keys())
for key in keys:
outfp.write("%s=%s\n" % (key, makevars[key]))
Reported by Pylint.
Line: 14
Column: 5
outfp.write("\nall: %s\n\n" % target)
deps = []
for i in range(len(files)):
file = files[i]
if file[-2:] == '.c':
base = os.path.basename(file)
dest = base[:-2] + '.o'
outfp.write("%s: %s\n" % (dest, file))
Reported by Pylint.
Modules/clinic/pyexpat.c.h
3 issues
Line: 97
Column: 9
CWE codes:
126
if (base == NULL) {
goto exit;
}
if (strlen(base) != (size_t)base_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
return_value = pyexpat_xmlparser_SetBase_impl(self, base);
Reported by FlawFinder.
Line: 296
Column: 17
CWE codes:
126
if (encoding == NULL) {
goto exit;
}
if (strlen(encoding) != (size_t)encoding_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
}
else {
Reported by FlawFinder.
Line: 319
Column: 17
CWE codes:
126
if (namespace_separator == NULL) {
goto exit;
}
if (strlen(namespace_separator) != (size_t)namespace_separator_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
}
else {
Reported by FlawFinder.
Objects/interpreteridobject.c
3 issues
Line: 191
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
}
interpid *id = (interpid *)self;
int equal;
if (PyObject_TypeCheck(other, &_PyInterpreterID_Type)) {
interpid *otherid = (interpid *)other;
equal = (id->id == otherid->id);
}
else if (PyLong_CheckExact(other)) {
Reported by FlawFinder.
Line: 218
Column: 52
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
Py_RETURN_NOTIMPLEMENTED;
}
if ((op == Py_EQ && equal) || (op == Py_NE && !equal)) {
Py_RETURN_TRUE;
}
Py_RETURN_FALSE;
}
Reported by FlawFinder.
Line: 218
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
Py_RETURN_NOTIMPLEMENTED;
}
if ((op == Py_EQ && equal) || (op == Py_NE && !equal)) {
Py_RETURN_TRUE;
}
Py_RETURN_FALSE;
}
Reported by FlawFinder.