Demonstrate and fix [ 783882 ] os.lstat crashes with Unicode filename.
Will also check in on the 2.3 branch.
diff --git a/Lib/test/test_unicode_file.py b/Lib/test/test_unicode_file.py
index 23fe1f4..b8b1848 100644
--- a/Lib/test/test_unicode_file.py
+++ b/Lib/test/test_unicode_file.py
@@ -25,6 +25,8 @@
# Test stat and chmod
if os.stat(TESTFN_ENCODED) != os.stat(TESTFN_UNICODE):
print "os.stat() did not agree on the 2 filenames"
+if os.lstat(TESTFN_ENCODED) != os.lstat(TESTFN_UNICODE):
+ print "os.lstat() did not agree on the 2 filenames"
os.chmod(TESTFN_ENCODED, 0777)
os.chmod(TESTFN_UNICODE, 0777)
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 43af766..b8bda3b 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -4607,7 +4607,7 @@
return posix_do_stat(self, args, "et:lstat", lstat, NULL, NULL);
#else /* !HAVE_LSTAT */
#ifdef MS_WINDOWS
- return posix_do_stat(self, args, "et:lstat", STAT, "u:lstat", _wstati64);
+ return posix_do_stat(self, args, "et:lstat", STAT, "U:lstat", _wstati64);
#else
return posix_do_stat(self, args, "et:lstat", STAT, NULL, NULL);
#endif