aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS.d/next/Documentation/2024-09-24-11-52-36.gh-issue-124457.yrCjSV.rst2
-rw-r--r--Misc/README1
-rw-r--r--Misc/README.coverity22
-rw-r--r--Misc/coverity_model.c179
4 files changed, 2 insertions, 202 deletions
diff --git a/Misc/NEWS.d/next/Documentation/2024-09-24-11-52-36.gh-issue-124457.yrCjSV.rst b/Misc/NEWS.d/next/Documentation/2024-09-24-11-52-36.gh-issue-124457.yrCjSV.rst
new file mode 100644
index 00000000000..f9da7b8a572
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2024-09-24-11-52-36.gh-issue-124457.yrCjSV.rst
@@ -0,0 +1,2 @@
+Remove coverity scan from the CPython repo. It has not been used since 2020
+and is currently unmaintained.
diff --git a/Misc/README b/Misc/README
index 3dab768ba1a..cbad9b72dc7 100644
--- a/Misc/README
+++ b/Misc/README
@@ -17,7 +17,6 @@ python.man UNIX man page for the python interpreter
python.pc.in Package configuration info template for pkg-config
README The file you're reading now
README.AIX Information about using Python on AIX
-README.coverity Information about running Coverity's Prevent on Python
README.valgrind Information for Valgrind users, see valgrind-python.supp
SpecialBuilds.txt Describes extra symbols you can set for debug builds
svnmap.txt Map of old SVN revs and branches to hg changeset ids,
diff --git a/Misc/README.coverity b/Misc/README.coverity
deleted file mode 100644
index f5e1bf6f28d..00000000000
--- a/Misc/README.coverity
+++ /dev/null
@@ -1,22 +0,0 @@
-
-Coverity has a static analysis tool (Prevent) which is similar to Klocwork.
-They run their tool on the Python source code (SVN head) on a daily basis.
-The results are available at:
-
- http://scan.coverity.com/
-
-About 20 people have access to the analysis reports. Other
-people can be added by request.
-
-Prevent was first run on the Python 2.5 source code in March 2006.
-There were originally about 100 defects reported. Some of these
-were false positives. Over 70 issues were uncovered.
-
-Each warning has a unique id and comments that can be made on it.
-When checking in changes due to a warning, the unique id
-as reported by the tool was added to the SVN commit message.
-
-False positives were annotated so that the comments can
-be reviewed and reversed if the analysis was incorrect.
-
-Contact python-dev@python.org for more information.
diff --git a/Misc/coverity_model.c b/Misc/coverity_model.c
deleted file mode 100644
index 90c72c7baa3..00000000000
--- a/Misc/coverity_model.c
+++ /dev/null
@@ -1,179 +0,0 @@
-/* Coverity Scan model
- *
- * This is a modeling file for Coverity Scan. Modeling helps to avoid false
- * positives.
- *
- * - A model file can't import any header files.
- * - Therefore only some built-in primitives like int, char and void are
- * available but not wchar_t, NULL etc.
- * - Modeling doesn't need full structs and typedefs. Rudimentary structs
- * and similar types are sufficient.
- * - An uninitialized local pointer is not an error. It signifies that the
- * variable could be either NULL or have some data.
- *
- * Coverity Scan doesn't pick up modifications automatically. The model file
- * must be uploaded by an admin in the analysis settings of
- * http://scan.coverity.com/projects/200
- */
-
-/* dummy definitions, in most cases struct fields aren't required. */
-
-#define NULL (void *)0
-#define assert(op) /* empty */
-typedef int sdigit;
-typedef long Py_ssize_t;
-typedef unsigned short wchar_t;
-typedef struct {} PyObject;
-typedef struct {} grammar;
-typedef struct {} DIR;
-typedef struct {} RFILE;
-
-/* Python/pythonrun.c
- * resource leak false positive */
-
-void Py_FatalError(const char *msg) {
- __coverity_panic__();
-}
-
-/* Objects/longobject.c
- * NEGATIVE_RETURNS false positive */
-
-static PyObject *get_small_int(sdigit ival)
-{
- /* Never returns NULL */
- PyObject *p;
- assert(p != NULL);
- return p;
-}
-
-PyObject *PyLong_FromLong(long ival)
-{
- PyObject *p;
- int maybe;
-
- if ((ival >= -5) && (ival < 257 + 5)) {
- p = get_small_int(ival);
- assert(p != NULL);
- return p;
- }
- if (maybe)
- return p;
- else
- return NULL;
-}
-
-PyObject *PyLong_FromLongLong(long long ival)
-{
- return PyLong_FromLong((long)ival);
-}
-
-PyObject *PyLong_FromSsize_t(Py_ssize_t ival)
-{
- return PyLong_FromLong((long)ival);
-}
-
-/* tainted sinks
- *
- * Coverity considers argv, environ, read() data etc as tainted.
- */
-
-PyObject *PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)
-{
- __coverity_tainted_data_sink__(filename);
- return NULL;
-}
-
-/* Python/fileutils.c */
-wchar_t *Py_DecodeLocale(const char* arg, size_t *size)
-{
- wchar_t *w;
- __coverity_tainted_data_sink__(arg);
- __coverity_tainted_data_sink__(size);
- return w;
-}
-
-/* Python/marshal.c */
-
-static Py_ssize_t r_string(char *s, Py_ssize_t n, RFILE *p)
-{
- __coverity_tainted_string_argument__(s);
- return 0;
-}
-
-static long r_long(RFILE *p)
-{
- long l;
- unsigned char buffer[4];
-
- r_string((char *)buffer, 4, p);
- __coverity_tainted_string_sanitize_content__(buffer);
- l = (long)buffer;
- return l;
-}
-
-/* Coverity doesn't understand that fdopendir() may take ownership of fd. */
-
-DIR *fdopendir(int fd)
-{
- DIR *d;
- if (d) {
- __coverity_close__(fd);
- }
- return d;
-}
-
-/* Modules/_datetime.c
- *
- * Coverity thinks that the input values for these function come from a
- * tainted source PyDateTime_DATE_GET_* macros use bit shifting.
- */
-static PyObject *
-build_struct_time(int y, int m, int d, int hh, int mm, int ss, int dstflag)
-{
- PyObject *result;
-
- __coverity_tainted_data_sanitize__(y);
- __coverity_tainted_data_sanitize__(m);
- __coverity_tainted_data_sanitize__(d);
- __coverity_tainted_data_sanitize__(hh);
- __coverity_tainted_data_sanitize__(mm);
- __coverity_tainted_data_sanitize__(ss);
- __coverity_tainted_data_sanitize__(dstflag);
-
- return result;
-}
-
-static int
-ymd_to_ord(int year, int month, int day)
-{
- int ord = 0;
-
- __coverity_tainted_data_sanitize__(year);
- __coverity_tainted_data_sanitize__(month);
- __coverity_tainted_data_sanitize__(day);
-
- return ord;
-}
-
-static int
-normalize_date(int *year, int *month, int *day)
-{
- __coverity_tainted_data_sanitize__(*year);
- __coverity_tainted_data_sanitize__(*month);
- __coverity_tainted_data_sanitize__(*day);
-
- return 0;
-}
-
-static int
-weekday(int year, int month, int day)
-{
- int w = 0;
-
- __coverity_tainted_data_sanitize__(year);
- __coverity_tainted_data_sanitize__(month);
- __coverity_tainted_data_sanitize__(day);
-
- return w;
-}
-