Mailing List Archive

[xen stable-4.16] tools/python: change 's#' size type for Python >= 3.10
commit 0cbffc6099db7fd01041910a98b99ccad50af11b
Author: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
AuthorDate: Tue Mar 21 13:49:28 2023 +0100
Commit: Jan Beulich <jbeulich@suse.com>
CommitDate: Tue Mar 21 13:49:28 2023 +0100

tools/python: change 's#' size type for Python >= 3.10

Python < 3.10 by default uses 'int' type for data+size string types
(s#), unless PY_SSIZE_T_CLEAN is defined - in which case it uses
Py_ssize_t. The former behavior was removed in Python 3.10 and now it's
required to define PY_SSIZE_T_CLEAN before including Python.h, and using
Py_ssize_t for the length argument. The PY_SSIZE_T_CLEAN behavior is
supported since Python 2.5.

Adjust bindings accordingly.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
master commit: 897257ba49d0a6ddcf084960fd792ccce9c40f94
master date: 2023-02-06 08:50:13 +0100
---
tools/python/xen/lowlevel/xc/xc.c | 3 ++-
tools/python/xen/lowlevel/xs/xs.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
index fd00861032..cfb2734a99 100644
--- a/tools/python/xen/lowlevel/xc/xc.c
+++ b/tools/python/xen/lowlevel/xc/xc.c
@@ -4,6 +4,7 @@
* Copyright (c) 2003-2004, K A Fraser (University of Cambridge)
*/

+#define PY_SSIZE_T_CLEAN
#include <Python.h>
#define XC_WANT_COMPAT_MAP_FOREIGN_API
#include <xenctrl.h>
@@ -1774,7 +1775,7 @@ static PyObject *pyflask_load(PyObject *self, PyObject *args, PyObject *kwds)
{
xc_interface *xc_handle;
char *policy;
- uint32_t len;
+ Py_ssize_t len;
int ret;

static char *kwd_list[] = { "policy", NULL };
diff --git a/tools/python/xen/lowlevel/xs/xs.c b/tools/python/xen/lowlevel/xs/xs.c
index 0dad7fa5f2..3ba5a8b893 100644
--- a/tools/python/xen/lowlevel/xs/xs.c
+++ b/tools/python/xen/lowlevel/xs/xs.c
@@ -18,6 +18,7 @@
* Copyright (C) 2005 XenSource Ltd.
*/

+#define PY_SSIZE_T_CLEAN
#include <Python.h>

#include <stdbool.h>
@@ -141,7 +142,7 @@ static PyObject *xspy_write(XsHandle *self, PyObject *args)
char *thstr;
char *path;
char *data;
- int data_n;
+ Py_ssize_t data_n;
bool result;

if (!xh)
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.16