The following issues were found
Modules/_multiprocessing/semaphore.c
4 issues
Line: 500
Column: 9
CWE codes:
120
Suggestion:
Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused)
if (name_copy == NULL) {
return PyErr_NoMemory();
}
strcpy(name_copy, name);
}
SEM_CLEAR_ERROR();
handle = SEM_CREATE(name, value, maxvalue);
/* On Windows we should fail if GetLastError()==ERROR_ALREADY_EXISTS */
Reported by FlawFinder.
Line: 552
Column: 9
CWE codes:
120
Suggestion:
Consider using snprintf, strcpy_s, or strlcpy (warning: strncpy easily misused)
name_copy = PyMem_Malloc(strlen(name) + 1);
if (name_copy == NULL)
return PyErr_NoMemory();
strcpy(name_copy, name);
}
#ifndef MS_WINDOWS
if (name != NULL) {
handle = sem_open(name, 0);
Reported by FlawFinder.
Line: 496
Column: 34
CWE codes:
126
}
if (!unlink) {
name_copy = PyMem_Malloc(strlen(name) + 1);
if (name_copy == NULL) {
return PyErr_NoMemory();
}
strcpy(name_copy, name);
}
Reported by FlawFinder.
Line: 549
Column: 34
CWE codes:
126
char *name_copy = NULL;
if (name != NULL) {
name_copy = PyMem_Malloc(strlen(name) + 1);
if (name_copy == NULL)
return PyErr_NoMemory();
strcpy(name_copy, name);
}
Reported by FlawFinder.
Objects/clinic/bytesobject.c.h
4 issues
Line: 643
Column: 13
CWE codes:
126
if (encoding == NULL) {
goto exit;
}
if (strlen(encoding) != (size_t)encoding_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
if (!--noptargs) {
goto skip_optional_pos;
Reported by FlawFinder.
Line: 660
Column: 9
CWE codes:
126
if (errors == NULL) {
goto exit;
}
if (strlen(errors) != (size_t)errors_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
skip_optional_pos:
return_value = bytes_decode_impl(self, encoding, errors);
Reported by FlawFinder.
Line: 854
Column: 13
CWE codes:
126
if (encoding == NULL) {
goto exit;
}
if (strlen(encoding) != (size_t)encoding_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
if (!--noptargs) {
goto skip_optional_pos;
Reported by FlawFinder.
Line: 871
Column: 9
CWE codes:
126
if (errors == NULL) {
goto exit;
}
if (strlen(errors) != (size_t)errors_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
skip_optional_pos:
return_value = bytes_new_impl(type, x, encoding, errors);
Reported by FlawFinder.
Lib/test/tracedmodules/testmod.py
4 issues
Line: 1
Column: 1
def func(x):
b = x + 1
return b + 2
def func2():
"""Test function for issue 9936 """
return (1,
2,
3)
Reported by Pylint.
Line: 1
Column: 1
def func(x):
b = x + 1
return b + 2
def func2():
"""Test function for issue 9936 """
return (1,
2,
3)
Reported by Pylint.
Line: 1
Column: 1
def func(x):
b = x + 1
return b + 2
def func2():
"""Test function for issue 9936 """
return (1,
2,
3)
Reported by Pylint.
Line: 2
Column: 5
def func(x):
b = x + 1
return b + 2
def func2():
"""Test function for issue 9936 """
return (1,
2,
3)
Reported by Pylint.
Objects/clinic/bytearrayobject.c.h
4 issues
Line: 46
Column: 13
CWE codes:
126
if (encoding == NULL) {
goto exit;
}
if (strlen(encoding) != (size_t)encoding_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
if (!--noptargs) {
goto skip_optional_pos;
Reported by FlawFinder.
Line: 63
Column: 9
CWE codes:
126
if (errors == NULL) {
goto exit;
}
if (strlen(errors) != (size_t)errors_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
skip_optional_pos:
return_value = bytearray___init___impl((PyByteArrayObject *)self, arg, encoding, errors);
Reported by FlawFinder.
Line: 870
Column: 13
CWE codes:
126
if (encoding == NULL) {
goto exit;
}
if (strlen(encoding) != (size_t)encoding_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
if (!--noptargs) {
goto skip_optional_pos;
Reported by FlawFinder.
Line: 887
Column: 9
CWE codes:
126
if (errors == NULL) {
goto exit;
}
if (strlen(errors) != (size_t)errors_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
skip_optional_pos:
return_value = bytearray_decode_impl(self, encoding, errors);
Reported by FlawFinder.
Lib/tkinter/test/test_tkinter/test_messagebox.py
4 issues
Line: 14
Column: 27
class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
def test_showinfo(self):
def test_callback(dialog, master):
nonlocal ismapped
master.update()
ismapped = master.winfo_ismapped()
raise ZeroDivisionError
Reported by Pylint.
Line: 1
Column: 1
import unittest
import tkinter
from test.support import requires, run_unittest, swap_attr
from tkinter.test.support import AbstractDefaultRootTest
from tkinter.commondialog import Dialog
from tkinter.messagebox import showinfo
requires('gui')
Reported by Pylint.
Line: 11
Column: 1
requires('gui')
class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
def test_showinfo(self):
def test_callback(dialog, master):
nonlocal ismapped
master.update()
Reported by Pylint.
Line: 13
Column: 5
class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
def test_showinfo(self):
def test_callback(dialog, master):
nonlocal ismapped
master.update()
ismapped = master.winfo_ismapped()
raise ZeroDivisionError
Reported by Pylint.
Lib/test/test_wait4.py
4 issues
Line: 32
Column: 26
break
time.sleep(0.1)
self.assertEqual(spid, cpid)
self.assertEqual(os.waitstatus_to_exitcode(status), exitcode)
self.assertTrue(rusage)
def tearDownModule():
support.reap_children()
Reported by Pylint.
Line: 16
Column: 1
support.get_attribute(os, 'wait4')
class Wait4Test(ForkWait):
def wait_impl(self, cpid, *, exitcode):
option = os.WNOHANG
if sys.platform.startswith('aix'):
# Issue #11185: wait4 is broken on AIX and will always return 0
# with WNOHANG.
Reported by Pylint.
Line: 35
Column: 1
self.assertEqual(os.waitstatus_to_exitcode(status), exitcode)
self.assertTrue(rusage)
def tearDownModule():
support.reap_children()
if __name__ == "__main__":
unittest.main()
Reported by Pylint.
Line: 35
Column: 1
self.assertEqual(os.waitstatus_to_exitcode(status), exitcode)
self.assertTrue(rusage)
def tearDownModule():
support.reap_children()
if __name__ == "__main__":
unittest.main()
Reported by Pylint.
Lib/test/test_tix.py
4 issues
Line: 1
Column: 1
import sys
import unittest
from test import support
from test.support import import_helper
# Skip this test if the _tkinter module wasn't built.
_tkinter = import_helper.import_module('_tkinter')
# Skip test if tk cannot be initialized.
Reported by Pylint.
Line: 14
Column: 1
# Suppress the deprecation warning
tix = import_helper.import_module('tkinter.tix', deprecated=True)
from tkinter import TclError
class TestTix(unittest.TestCase):
def setUp(self):
Reported by Pylint.
Line: 17
Column: 1
from tkinter import TclError
class TestTix(unittest.TestCase):
def setUp(self):
try:
self.root = tix.Tk()
except TclError:
Reported by Pylint.
Line: 29
Column: 5
else:
self.addCleanup(self.root.destroy)
def test_tix_available(self):
# this test is just here to make setUp run
pass
if __name__ == '__main__':
Reported by Pylint.
Python/formatter_unicode.c
4 issues
Line: 693
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
return 0;
}
static const char no_grouping[1] = {CHAR_MAX};
/* Find the decimal point character(s?), thousands_separator(s?), and
grouping description, either for the current locale if type is
LT_CURRENT_LOCALE, a hard-coded locale if LT_DEFAULT_LOCALE or
LT_UNDERSCORE_LOCALE/LT_UNDER_FOUR_LOCALE, or none if LT_NO_LOCALE. */
Reported by FlawFinder.
Line: 1094
Column: 16
CWE codes:
126
&float_type);
if (buf == NULL)
goto done;
n_digits = strlen(buf);
if (add_pct) {
/* We know that buf has a trailing zero (since we just called
strlen() on it), and we don't use that fact any more. So we
can just write over the trailing zero. */
Reported by FlawFinder.
Line: 1279
Column: 19
CWE codes:
126
if (im_buf == NULL)
goto done;
n_re_digits = strlen(re_buf);
n_im_digits = strlen(im_buf);
/* Since there is no unicode version of PyOS_double_to_string,
just use the 8 bit version and then convert to unicode. */
re_unicode_tmp = _PyUnicode_FromASCII(re_buf, n_re_digits);
Reported by FlawFinder.
Line: 1280
Column: 19
CWE codes:
126
goto done;
n_re_digits = strlen(re_buf);
n_im_digits = strlen(im_buf);
/* Since there is no unicode version of PyOS_double_to_string,
just use the 8 bit version and then convert to unicode. */
re_unicode_tmp = _PyUnicode_FromASCII(re_buf, n_re_digits);
if (re_unicode_tmp == NULL)
Reported by FlawFinder.
Tools/c-analyzer/c_common/strutil.py
4 issues
Line: 23
Column: 21
try:
infile = open(filename)
except FileNotFoundError:
logger.debug(f'ignored in parse_entries(): +{filename}')
return
with infile:
# We read the entire file here to ensure the file
# gets closed sooner rather than later. Note that
# the file would stay open if this iterator is never
Reported by Pylint.
Line: 1
Column: 1
import logging
logger = logging.getLogger(__name__)
def unrepr(value):
raise NotImplementedError
Reported by Pylint.
Line: 7
Column: 1
logger = logging.getLogger(__name__)
def unrepr(value):
raise NotImplementedError
def parse_entries(entries, *, ignoresep=None):
for entry in entries:
Reported by Pylint.
Line: 11
Column: 1
raise NotImplementedError
def parse_entries(entries, *, ignoresep=None):
for entry in entries:
if ignoresep and ignoresep in entry:
subentries = [entry]
else:
subentries = entry.strip().replace(',', ' ').split()
Reported by Pylint.
Lib/tkinter/test/test_tkinter/test_text.py
4 issues
Line: 1
Column: 1
import unittest
import tkinter
from test.support import requires, run_unittest
from tkinter.test.support import AbstractTkTest
requires('gui')
class TextTest(AbstractTkTest, unittest.TestCase):
Reported by Pylint.
Line: 8
Column: 1
requires('gui')
class TextTest(AbstractTkTest, unittest.TestCase):
def setUp(self):
super().setUp()
self.text = tkinter.Text(self.root)
Reported by Pylint.
Line: 14
Column: 5
super().setUp()
self.text = tkinter.Text(self.root)
def test_debug(self):
text = self.text
olddebug = text.debug()
try:
text.debug(0)
self.assertEqual(text.debug(), 0)
Reported by Pylint.
Line: 26
Column: 5
text.debug(olddebug)
self.assertEqual(text.debug(), olddebug)
def test_search(self):
text = self.text
# pattern and index are obligatory arguments.
self.assertRaises(tkinter.TclError, text.search, None, '1.0')
self.assertRaises(tkinter.TclError, text.search, 'a', None)
Reported by Pylint.