diff options
author | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-01-22 22:05:01 +0000 |
---|---|---|
committer | Gustavo J. A. M. Carneiro <gjc@src.gnome.org> | 2005-01-22 22:05:01 +0000 |
commit | 6b69cf6f118e43d721ea184ebfc3241c15330384 (patch) | |
tree | 0799f905b5796bb2d88d43ab3acbc3ae569b0060 | |
parent | f48c4d0b23402957c8cf9230cc766098ac4e7b1b (diff) | |
download | pygtk-6b69cf6f118e43d721ea184ebfc3241c15330384.tar.gz |
Bug 163209: abort on 'import gtk' when messing with sys.argv
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | gtk/gtkmodule.c | 12 |
2 files changed, 15 insertions, 0 deletions
@@ -1,5 +1,8 @@ 2005-01-22 Gustavo J. A. M. Carneiro <gjc@gnome.org> + * gtk/gtkmodule.c (init_gtk): Do some type checking on sys.argv + before using it. Fixes #163209. + * gtk/gdk.override: Override slots tp_getattro and tp_setattro of GdkGC instead of tp_setattr and tp_getattr. Fixes #159468. diff --git a/gtk/gtkmodule.c b/gtk/gtkmodule.c index 2209b42d..68ed0a9e 100644 --- a/gtk/gtkmodule.c +++ b/gtk/gtkmodule.c @@ -132,8 +132,20 @@ init_gtk(void) /* initialise GTK ... */ av = PySys_GetObject("argv"); + if (!PyList_Check(av)) { + PyErr_Warn(PyExc_Warning, "ignoring sys.argv: it must be a list of strings"); + av = NULL; + } if (av != NULL) { argc = PyList_Size(av); + for (i = 0; i < argc; i++) + if (!PyString_Check(PyList_GetItem(av, i))) { + PyErr_Warn(PyExc_Warning, "ignoring sys.argv: it must be a list of strings"); + av = NULL; + break; + } + } + if (av != NULL) { argv = g_new(char *, argc); for (i = 0; i < argc; i++) argv[i] = g_strdup(PyString_AsString(PyList_GetItem(av, i))); |