summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-11-10 14:12:20 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-11-10 14:12:20 (GMT)
commit47f637ce17022464307b093cee6f367e2dc7f024 (patch)
tree0c342696dbe02e4e8449747f6b4d2ab9e0b1dcd6 /Modules
parentcf9f98034a6bc7c55486042da1867447cfd2f0b5 (diff)
downloadcpython-47f637ce17022464307b093cee6f367e2dc7f024.zip
cpython-47f637ce17022464307b093cee6f367e2dc7f024.tar.gz
cpython-47f637ce17022464307b093cee6f367e2dc7f024.tar.bz2
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.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/getpath.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Modules/getpath.c b/Modules/getpath.c
index c9353c7..16b3b2a 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -355,17 +355,17 @@ search_for_exec_prefix(wchar_t *argv0_path, wchar_t *home, wchar_t *_exec_prefix
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;