]> granicus.if.org Git - python/commitdiff
Change sys_exit to use METH_VARARGS.
authorNeal Norwitz <nnorwitz@gmail.com>
Wed, 27 Mar 2002 13:03:09 +0000 (13:03 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Wed, 27 Mar 2002 13:03:09 +0000 (13:03 +0000)
sys.exit() now requires 0-1 arguments.  Previously 2+ arguments were allowed.

Misc/NEWS
Python/sysmodule.c

index 7dc65dc6d4075394aa5798580c60444623efcac4..eff46272c91cc5bd892d2a8720e32667cb5a978a 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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
index 581a19baae0512618d06a1d7f944d5e3cf5487af..0469c7f654f60b2483d547e6449459444b6e648d 100644 (file)
@@ -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},