diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2002-03-27 13:03:09 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2002-03-27 13:03:09 (GMT) |
commit | 0c766a0bb62877a1080acf3c70ca6ed393d9e7fc (patch) | |
tree | c4ef3ebf091a8b8a7463fe37c4479e4a6ec36e19 | |
parent | 496f9e41ef01965caf747533acee3611871067b2 (diff) | |
download | cpython-0c766a0bb62877a1080acf3c70ca6ed393d9e7fc.zip cpython-0c766a0bb62877a1080acf3c70ca6ed393d9e7fc.tar.gz cpython-0c766a0bb62877a1080acf3c70ca6ed393d9e7fc.tar.bz2 |
Change sys_exit to use METH_VARARGS.
sys.exit() now requires 0-1 arguments. Previously 2+ arguments were allowed.
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Python/sysmodule.c | 7 |
2 files changed, 8 insertions, 2 deletions
@@ -26,6 +26,9 @@ Core and builtins - posix.killpg has been added where available. +- sys.exit() inadvertantly allowed more than one argument. + An exception will now be raised if more than one argument is used. + Extension modules - A security hole ("double free") was found in zlib-1.1.3, a popular diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 581a19b..0469c7f 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -146,8 +146,11 @@ This should be called from inside an except clause only."; static PyObject * sys_exit(PyObject *self, PyObject *args) { + PyObject *exit_code = 0; + if (!PyArg_ParseTuple(args, "|O:exit", &exit_code)) + return NULL; /* Raise SystemExit so callers may catch it or clean up. */ - PyErr_SetObject(PyExc_SystemExit, args); + PyErr_SetObject(PyExc_SystemExit, exit_code); return NULL; } @@ -528,7 +531,7 @@ static PyMethodDef sys_methods[] = { {"displayhook", sys_displayhook, METH_O, displayhook_doc}, {"exc_info", (PyCFunction)sys_exc_info, METH_NOARGS, exc_info_doc}, {"excepthook", sys_excepthook, METH_VARARGS, excepthook_doc}, - {"exit", sys_exit, METH_OLDARGS, exit_doc}, + {"exit", sys_exit, METH_VARARGS, exit_doc}, #ifdef Py_USING_UNICODE {"getdefaultencoding", (PyCFunction)sys_getdefaultencoding, METH_NOARGS, getdefaultencoding_doc}, |