summaryrefslogtreecommitdiffstats
path: root/Misc/coverity_model.c
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2015-04-16 18:25:03 (GMT)
committerChristian Heimes <christian@python.org>2015-04-16 18:25:03 (GMT)
commita8e3f7a884061f3d251d4aec210fd274ff5b2925 (patch)
tree54c24bffb658b707f422512f304653a164864437 /Misc/coverity_model.c
parent29fbd21d73dfecc1bb05e98d6da7fbab55ad15b4 (diff)
downloadcpython-a8e3f7a884061f3d251d4aec210fd274ff5b2925.zip
cpython-a8e3f7a884061f3d251d4aec210fd274ff5b2925.tar.gz
cpython-a8e3f7a884061f3d251d4aec210fd274ff5b2925.tar.bz2
Update coverity modeling file to silence datetime warnings
Diffstat (limited to 'Misc/coverity_model.c')
-rw-r--r--Misc/coverity_model.c58
1 files changed, 57 insertions, 1 deletions
diff --git a/Misc/coverity_model.c b/Misc/coverity_model.c
index 421d54d..493e7c1 100644
--- a/Misc/coverity_model.c
+++ b/Misc/coverity_model.c
@@ -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;
+}
+