]> granicus.if.org Git - python/commitdiff
Update coverity modeling file to silence datetime warnings
authorChristian Heimes <christian@python.org>
Thu, 16 Apr 2015 18:25:03 +0000 (20:25 +0200)
committerChristian Heimes <christian@python.org>
Thu, 16 Apr 2015 18:25:03 +0000 (20:25 +0200)
Misc/coverity_model.c

index 421d54d4191d71a770b16fcf628e187b88a8a2aa..493e7c1b30f116d77914a1f1807d8eeea2712a25 100644 (file)
@@ -122,7 +122,8 @@ static long r_long(RFILE *p)
 
 /* 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 @@ DIR *fdopendir(int 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;
+}
+