Gentoo Archives: gentoo-commits

From: "Pacho Ramos (pacho)" <pacho@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in dev-python/pygobject/files: pygobject-3.8.0-stack-corruption.patch
Date: Sun, 31 Mar 2013 13:36:20
Message-Id: 20130331133616.A95892171D@flycatcher.gentoo.org
1 pacho 13/03/31 13:36:16
2
3 Added: pygobject-3.8.0-stack-corruption.patch
4 Log:
5 Fix stack corruption due to incorrect format for argument parser (#463700 by Alphat-PC)
6
7 (Portage version: 2.1.11.58/cvs/Linux x86_64, signed Manifest commit with key A188FBD4)
8
9 Revision Changes Path
10 1.1 dev-python/pygobject/files/pygobject-3.8.0-stack-corruption.patch
11
12 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/pygobject/files/pygobject-3.8.0-stack-corruption.patch?rev=1.1&view=markup
13 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-python/pygobject/files/pygobject-3.8.0-stack-corruption.patch?rev=1.1&content-type=text/plain
14
15 Index: pygobject-3.8.0-stack-corruption.patch
16 ===================================================================
17 From c1fb6516031d3c32abd640f09a4814ae4363f979 Mon Sep 17 00:00:00 2001
18 From: Simon Feltman <sfeltman@×××××××××.org>
19 Date: Sun, 31 Mar 2013 08:32:34 +0000
20 Subject: Fix stack corruption due to incorrect format for argument parser
21
22 Fix call to PyArg_ParseTupleAndKeywords that used a format parser
23 of "l" meaning long (8 bytes) in combination with an output pointer
24 of guint (4 bytes). Change to use gulong with a format of "k".
25
26 https://bugzilla.gnome.org/show_bug.cgi?id=696892
27 ---
28 diff --git a/gi/_gobject/pygflags.c b/gi/_gobject/pygflags.c
29 index 83aa4dc..bdeaae7 100644
30 --- a/gi/_gobject/pygflags.c
31 +++ b/gi/_gobject/pygflags.c
32 @@ -129,12 +129,12 @@ static PyObject *
33 pyg_flags_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
34 {
35 static char *kwlist[] = { "value", NULL };
36 - guint value;
37 + gulong value;
38 PyObject *pytc, *values, *ret, *pyint;
39 GType gtype;
40 GFlagsClass *eclass;
41
42 - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "l", kwlist, &value))
43 + if (!PyArg_ParseTupleAndKeywords(args, kwargs, "k", kwlist, &value))
44 return NULL;
45
46 pytc = PyObject_GetAttrString((PyObject *)type, "__gtype__");
47 --
48 cgit v0.9.1