[Python-checkins] r43586 - python/trunk/Modules/posixmodule.c
Neal Norwitz
nnorwitz at gmail.com
Tue Apr 4 06:57:44 CEST 2006
Unless I'm reading this patch wrong, it looks like it will crash if
only a single parameter is passed in. With a single argument,
operation is NULL and strlen(NULL) go boom.
I think this patch should be reverted, unless a test case is added and
the coded corrected.
n
--
On 4/3/06, georg.brandl <python-checkins at python.org> wrote:
> Author: georg.brandl
> Date: Mon Apr 3 14:26:26 2006
> New Revision: 43586
>
> Modified:
> python/trunk/Modules/posixmodule.c
> Log:
> Bug #1451503: allow unicode filenames in os.startfile().
>
>
>
> Modified: python/trunk/Modules/posixmodule.c
> ==============================================================================
> --- python/trunk/Modules/posixmodule.c (original)
> +++ python/trunk/Modules/posixmodule.c Mon Apr 3 14:26:26 2006
> @@ -7467,6 +7467,41 @@
> char *filepath;
> char *operation = NULL;
> HINSTANCE rc;
> +#ifdef Py_WIN_WIDE_FILENAMES
> + if (unicode_file_names()) {
> + PyObject *unipath, *woperation;
> + if (!PyArg_ParseTuple(args, "U|s:startfile",
> + &unipath, &operation)) {
> + PyErr_Clear();
> + goto normal;
> + }
> +
> + woperation = PyUnicode_DecodeASCII(operation,
> + strlen(operation), NULL);
> + if (!woperation) {
> + PyErr_Clear();
> + goto normal;
> + }
> +
> + Py_BEGIN_ALLOW_THREADS
> + rc = ShellExecuteW((HWND)0, operation,
> + PyUnicode_AS_UNICODE(unipath),
> + PyUnicode_AS_UNICODE(woperation),
> + NULL, NULL, SW_SHOWNORMAL);
> + Py_END_ALLOW_THREADS
> +
> + Py_DECREF(woperation);
> + if (rc <= (HINSTANCE)32) {
> + PyObject *errval = win32_error_unicode("startfile",
> + PyUnicode_AS_UNICODE(unipath));
> + return errval;
> + }
> + Py_INCREF(Py_None);
> + return Py_None;
> + }
> +#endif
> +
> +normal:
> if (!PyArg_ParseTuple(args, "et|s:startfile",
> Py_FileSystemDefaultEncoding, &filepath,
> &operation))
> _______________________________________________
> Python-checkins mailing list
> Python-checkins at python.org
> http://mail.python.org/mailman/listinfo/python-checkins
>
More information about the Python-checkins
mailing list