From c71bbac357f0ac722e1bcb2edfa925b68cca23c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 12 Nov 2020 16:55:56 +0100 Subject: reader: make PY_SSIZE_T_CLEAN --- systemd/_reader.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/systemd/_reader.c b/systemd/_reader.c index 8de7f6a..3b6a4d0 100644 --- a/systemd/_reader.c +++ b/systemd/_reader.c @@ -18,7 +18,12 @@ along with python-systemd; If not, see . ***/ +#define PY_SSIZE_T_CLEAN +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wredundant-decls" #include +#pragma GCC diagnostic pop + #include #include #include @@ -710,11 +715,17 @@ PyDoc_STRVAR(Reader_add_match__doc__, "Match is a string of the form \"FIELD=value\"."); static PyObject* Reader_add_match(Reader *self, PyObject *args, PyObject *keywds) { char *match; - int match_len, r; + Py_ssize_t match_len; + int r; if (!PyArg_ParseTuple(args, "s#:add_match", &match, &match_len)) return NULL; - r = sd_journal_add_match(self->j, match, match_len); + if (match_len > INT_MAX) { + set_error(-ENOBUFS, NULL, NULL); + return NULL; + } + + r = sd_journal_add_match(self->j, match, (int) match_len); if (set_error(r, NULL, "Invalid match") < 0) return NULL; -- cgit v1.2.1