summaryrefslogtreecommitdiffstats
path: root/Misc/coverity_model.c
diff options
context:
space:
mode:
Diffstat (limited to 'Misc/coverity_model.c')
-rw-r--r--Misc/coverity_model.c60
1 files changed, 58 insertions, 2 deletions
diff --git a/Misc/coverity_model.c b/Misc/coverity_model.c
index 57f3aeb..493e7c1 100644
--- a/Misc/coverity_model.c
+++ b/Misc/coverity_model.c
@@ -85,7 +85,7 @@ PyObject *PyErr_SetFromErrnoWithFilename(PyObject *exc, const char *filename)
}
/* Python/fileutils.c */
-wchar_t *_Py_char2wchar(const char* arg, size_t *size)
+wchar_t *Py_DecodeLocale(const char* arg, size_t *size)
{
wchar_t *w;
__coverity_tainted_data_sink__(arg);
@@ -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;
+}
+