diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-11-12 16:55:56 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-11-12 17:14:34 +0100 |
commit | c71bbac357f0ac722e1bcb2edfa925b68cca23c9 (patch) | |
tree | 20a53aeb580e3fe8cbf605a49b574110866a4ecc /systemd/_reader.c | |
parent | 9bacacace4c56de3260bcc196decba4af80f3942 (diff) | |
download | python-systemd-c71bbac357f0ac722e1bcb2edfa925b68cca23c9.tar.gz |
reader: make PY_SSIZE_T_CLEAN
Diffstat (limited to 'systemd/_reader.c')
-rw-r--r-- | systemd/_reader.c | 15 |
1 files 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 <http://www.gnu.org/licenses/>. ***/ +#define PY_SSIZE_T_CLEAN +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wredundant-decls" #include <Python.h> +#pragma GCC diagnostic pop + #include <structmember.h> #include <datetime.h> #include <time.h> @@ -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; |