[Python-checkins] r86399 - python/branches/py3k/Modules/getpath.c

victor.stinner python-checkins at python.org
Wed Nov 10 15:12:20 CET 2010


Author: victor.stinner
Date: Wed Nov 10 15:12:20 2010
New Revision: 86399
Log:
getpath.c: fix test to detech PyUnicode_AsWideChar() failure
PyUnicode_AsWideChar() result is signed, whereas it was stored in a unsigned
variable, and then the test was "n >= 0" which is always true to an unsigned
number. Patch written by Hallvard B Furuseth.
Modified:
 python/branches/py3k/Modules/getpath.c
Modified: python/branches/py3k/Modules/getpath.c
==============================================================================
--- python/branches/py3k/Modules/getpath.c	(original)
+++ python/branches/py3k/Modules/getpath.c	Wed Nov 10 15:12:20 2010
@@ -355,17 +355,17 @@
 char buf[MAXPATHLEN+1];
 PyObject *decoded;
 wchar_t rel_builddir_path[MAXPATHLEN+1];
- size_t n;
 n = fread(buf, 1, MAXPATHLEN, f);
 buf[n] = '0円';
 fclose(f);
 decoded = PyUnicode_DecodeUTF8(buf, n, "surrogateescape");
 if (decoded != NULL) {
- n = PyUnicode_AsWideChar((PyUnicodeObject*)decoded,
+ Py_ssize_t k;
+ k = PyUnicode_AsWideChar((PyUnicodeObject*)decoded,
 rel_builddir_path, MAXPATHLEN);
 Py_DECREF(decoded);
- if (n >= 0) {
- rel_builddir_path[n] = L'0円';
+ if (k >= 0) {
+ rel_builddir_path[k] = L'0円';
 wcscpy(exec_prefix, argv0_path);
 joinpath(exec_prefix, rel_builddir_path);
 return -1;


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /