[Python-checkins] cpython: Update coverity modeling file to silence datetime warnings

christian.heimes python-checkins at python.org
Thu Apr 16 20:26:28 CEST 2015


https://hg.python.org/cpython/rev/caf9f2df05d4
changeset:   95694:caf9f2df05d4
parent:      95692:5612dc5e6af9
user:        Christian Heimes <christian at python.org>
date:        Thu Apr 16 20:25:03 2015 +0200
summary:
  Update coverity modeling file to silence datetime warnings

files:
  Misc/coverity_model.c |  58 ++++++++++++++++++++++++++++++-
  1 files changed, 57 insertions(+), 1 deletions(-)


diff --git a/Misc/coverity_model.c b/Misc/coverity_model.c
--- a/Misc/coverity_model.c
+++ b/Misc/coverity_model.c
@@ -122,7 +122,8 @@
 
 /* Coverity doesn't understand that fdopendir() may take ownership of fd. */
 
-DIR *fdopendir(int fd) {
+DIR *fdopendir(int fd)
+{
     DIR *d;
     if (d) {
         __coverity_close__(fd);
@@ -130,3 +131,58 @@
     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;
+}
+

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list