(original) (raw)
changeset: 87089:99ba1772c469 user: Christian Heimes christian@cheimes.de date: Thu Nov 14 01:39:35 2013 +0100 files: Objects/exceptions.c description: Issue #17828: va_start() must be accompanied by va_end() CID 1128793: Missing varargs init or cleanup (VARARGS) diff -r eb42adc53923 -r 99ba1772c469 Objects/exceptions.c --- a/Objects/exceptions.c Wed Nov 13 15:50:08 2013 -0800 +++ b/Objects/exceptions.c Thu Nov 14 01:39:35 2013 +0100 @@ -2632,12 +2632,6 @@ PyObject *new_exc, *new_val, *new_tb; va_list vargs; -#ifdef HAVE_STDARG_PROTOTYPES - va_start(vargs, format); -#else - va_start(vargs); -#endif - PyErr_Fetch(&exc, &val, &tb); caught_type = (PyTypeObject *) exc; /* Ensure type info indicates no extra state is stored at the C level */ @@ -2690,7 +2684,14 @@ * types as well, but that's quite a bit trickier due to the extra * state potentially stored on OSError instances. */ + +#ifdef HAVE_STDARG_PROTOTYPES + va_start(vargs, format); +#else + va_start(vargs); +#endif msg_prefix = PyUnicode_FromFormatV(format, vargs); + va_end(vargs); if (msg_prefix == NULL) return NULL; /christian@cheimes.de