6f33e3848d
Update hplip to latest upstream version and patch to fix Python 3.10 compatibility.
100 lines
3.4 KiB
Diff
100 lines
3.4 KiB
Diff
Based on patch by Zdenek Dohnal obtained from
|
|
https://bugs.launchpad.net/hplip/+bug/1933973
|
|
|
|
diff -pru hplip-3.21.8/io/mudext/hpmudext.c hplip-3.21.8-patched/io/mudext/hpmudext.c
|
|
--- hplip-3.21.8/io/mudext/hpmudext.c 2021-09-01 16:10:17.000000000 +0100
|
|
+++ hplip-3.21.8-patched/io/mudext/hpmudext.c 2021-10-22 08:30:38.600922861 +0100
|
|
@@ -24,6 +24,8 @@ Authors: Don Welch, David Suffield, Naga
|
|
|
|
\*****************************************************************************/
|
|
|
|
+#define PY_SSIZE_T_CLEAN
|
|
+
|
|
#include <Python.h>
|
|
#include <stdarg.h>
|
|
#include "hpmud.h"
|
|
@@ -187,14 +189,22 @@ static PyObject *write_channel(PyObject
|
|
HPMUD_CHANNEL cd;
|
|
int timeout = 30;
|
|
char * buf;
|
|
- int buf_size = 0;
|
|
+ Py_ssize_t buf_size = 0;
|
|
+ int buf_size_asInt = 0;
|
|
int bytes_written = 0;
|
|
|
|
if (!PyArg_ParseTuple(args, "iis#|i", &dd, &cd, &buf, &buf_size, &timeout))
|
|
return NULL;
|
|
|
|
+ if (buf_size < INT_MIN)
|
|
+ buf_size_asInt = INT_MIN;
|
|
+ else if (buf_size > INT_MAX)
|
|
+ buf_size_asInt = INT_MAX;
|
|
+ else
|
|
+ buf_size_asInt = (int)buf_size;
|
|
+
|
|
Py_BEGIN_ALLOW_THREADS
|
|
- result = hpmud_write_channel(dd, cd, buf, buf_size, timeout, &bytes_written);
|
|
+ result = hpmud_write_channel(dd, cd, buf, buf_size_asInt, timeout, &bytes_written);
|
|
Py_END_ALLOW_THREADS
|
|
|
|
return Py_BuildValue("(ii)", result, bytes_written);
|
|
@@ -231,14 +241,22 @@ static PyObject *set_pml(PyObject *self,
|
|
char * oid;
|
|
int type;
|
|
char * data;
|
|
- int data_size;
|
|
+ Py_ssize_t data_size = 0;
|
|
+ int data_size_asInt = 0;
|
|
int pml_result;
|
|
|
|
if (!PyArg_ParseTuple(args, "iisis#", &dd, &cd, &oid, &type, &data, &data_size))
|
|
return NULL;
|
|
|
|
+ if (data_size < INT_MIN)
|
|
+ data_size_asInt = INT_MIN;
|
|
+ else if (data_size > INT_MAX)
|
|
+ data_size_asInt = INT_MAX;
|
|
+ else
|
|
+ data_size_asInt = (int)data_size;
|
|
+
|
|
Py_BEGIN_ALLOW_THREADS
|
|
- result = hpmud_set_pml(dd, cd, oid, type, (void *)data, data_size, &pml_result);
|
|
+ result = hpmud_set_pml(dd, cd, oid, type, (void *)data, data_size_asInt, &pml_result);
|
|
Py_END_ALLOW_THREADS
|
|
|
|
return Py_BuildValue("(ii)", result, pml_result);
|
|
diff -pru hplip-3.21.8/pcard/pcardext/pcardext.c hplip-3.21.8-patched/pcard/pcardext/pcardext.c
|
|
--- hplip-3.21.8/pcard/pcardext/pcardext.c 2021-09-01 16:10:17.000000000 +0100
|
|
+++ hplip-3.21.8-patched/pcard/pcardext/pcardext.c 2021-10-22 08:24:11.010798381 +0100
|
|
@@ -24,6 +24,8 @@ Author: Don Welch
|
|
|
|
\*****************************************************************************/
|
|
|
|
+#define PY_SSIZE_T_CLEAN
|
|
+
|
|
#include <Python.h>
|
|
#include <structmember.h>
|
|
#include "../fat.h"
|
|
diff -pru hplip-3.21.8/prnt/cupsext/cupsext.c hplip-3.21.8-patched/prnt/cupsext/cupsext.c
|
|
--- hplip-3.21.8/prnt/cupsext/cupsext.c 2021-09-01 16:10:17.000000000 +0100
|
|
+++ hplip-3.21.8-patched/prnt/cupsext/cupsext.c 2021-10-22 08:26:30.975843330 +0100
|
|
@@ -73,6 +73,7 @@ Yashwant Kumar Sahu
|
|
Sanjay Kumar
|
|
*/
|
|
|
|
+#define PY_SSIZE_T_CLEAN
|
|
|
|
#include <Python.h>
|
|
#include <structmember.h>
|
|
diff -pru hplip-3.21.8/scan/scanext/scanext.c hplip-3.21.8-patched/scan/scanext/scanext.c
|
|
--- hplip-3.21.8/scan/scanext/scanext.c 2021-09-01 16:10:17.000000000 +0100
|
|
+++ hplip-3.21.8-patched/scan/scanext/scanext.c 2021-10-21 21:31:23.074739743 +0100
|
|
@@ -45,6 +45,8 @@ PERFORMANCE OF THIS SOFTWARE.
|
|
*******************************************************************/
|
|
|
|
|
|
+#define PY_SSIZE_T_CLEAN
|
|
+
|
|
/* _ScanDevice objects */
|
|
|
|
#include "Python.h"
|