summaryrefslogtreecommitdiff
path: root/dev-python/pyalsa/files/pyalsa-1.2.7-python3.12.patch
blob: f27a7714a9861a888821190f50168b93fb9ac328 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
https://github.com/alsa-project/alsa-python/issues/9
https://github.com/alsa-project/alsa-python/pull/10
https://github.com/alsa-project/alsa-python/commit/cb75f5cdba0a29bdfa43eb56285da4917d2941a9

From cb75f5cdba0a29bdfa43eb56285da4917d2941a9 Mon Sep 17 00:00:00 2001
From: Francesco Ceruti <ceppofrancy@gmail.com>
Date: Sat, 4 May 2024 22:16:16 +0200
Subject: [PATCH] alsaseq: fix seg. fault when accessing `ConstantObject` extra

Closes: https://github.com/alsa-project/alsa-python/pull/10
Signed-off-by: Francesco Ceruti <ceppofrancy@gmail.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
--- a/pyalsa/alsaseq.c
+++ b/pyalsa/alsaseq.c
@@ -353,18 +353,11 @@ typedef struct {
 } ConstantObject;
 
 #if PY_MAJOR_VERSION < 3
-/* PyInt is fixed size in Python 2 */
 # define CONST_VALUE(x) PyInt_AsLong((PyObject *)x)
-# define CONST_EXTRA(x) (&(x->extra))
 #else
-/* PyLong is variable size in Python 3 */
 # define CONST_VALUE(x) PyLong_AsLong((PyObject *)x)
-# define CONST_EXTRA(x) \
-    ((ConstantExtraFields *)( \
-        ((intptr_t)(&x->extra)) \
-        + abs(Py_SIZE(&x->base)) * Py_TYPE(x)->tp_itemsize \
-    ))
 #endif
+# define CONST_EXTRA(x) (&(x->extra))
 
 /** alsaseq.Constant type (initialized later...) */
 static PyTypeObject ConstantType;