[Python-checkins] [3.7] bpo-34604: Fix possible mojibake in pwd.getpwnam() and grp.getgrnam() (GH-9098) (GH-9104)

Victor Stinner webhook-mailer at python.org
Sun Sep 9 07:27:35 EDT 2018


https://github.com/python/cpython/commit/7a633ed79cfba2cfc0f80410ddcaeecadc2030e9
commit: 7a633ed79cfba2cfc0f80410ddcaeecadc2030e9
branch: 3.7
author: William Grzybowski <wg at FreeBSD.org>
committer: Victor Stinner <vstinner at redhat.com>
date: 2018年09月09日T13:27:31+02:00
summary:
[3.7] bpo-34604: Fix possible mojibake in pwd.getpwnam() and grp.getgrnam() (GH-9098) (GH-9104)
Pass the user/group name as Unicode to the formatting function,
instead of always decoding a bytes string from UTF-8..
(cherry picked from commit 28658485a54ad5f9df52ecc12d9046269f1654ec)
Co-authored-by: William Grzybowski <wg at FreeBSD.org>
files:
A Misc/NEWS.d/next/Library/2018-09-07-10-16-34.bpo-34604.xL7-kG.rst
M Modules/grpmodule.c
M Modules/pwdmodule.c
diff --git a/Misc/NEWS.d/next/Library/2018-09-07-10-16-34.bpo-34604.xL7-kG.rst b/Misc/NEWS.d/next/Library/2018-09-07-10-16-34.bpo-34604.xL7-kG.rst
new file mode 100644
index 000000000000..562a69124b3d
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2018-09-07-10-16-34.bpo-34604.xL7-kG.rst
@@ -0,0 +1,2 @@
+Fix possible mojibake in the error message of `pwd.getpwnam` and
+`grp.getgrnam`. Patch by William Grzybowski.
diff --git a/Modules/grpmodule.c b/Modules/grpmodule.c
index f577fd3ab4ec..43e45ef7aad5 100644
--- a/Modules/grpmodule.c
+++ b/Modules/grpmodule.c
@@ -156,7 +156,7 @@ grp_getgrnam_impl(PyObject *module, PyObject *name)
 goto out;
 
 if ((p = getgrnam(name_chars)) == NULL) {
- PyErr_Format(PyExc_KeyError, "getgrnam(): name not found: %s", name_chars);
+ PyErr_Format(PyExc_KeyError, "getgrnam(): name not found: %S", name);
 goto out;
 }
 retval = mkgrent(p);
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index bbef2de9c522..21c2b546f6dd 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -163,7 +163,7 @@ pwd_getpwnam_impl(PyObject *module, PyObject *arg)
 goto out;
 if ((p = getpwnam(name)) == NULL) {
 PyErr_Format(PyExc_KeyError,
- "getpwnam(): name not found: %s", name);
+ "getpwnam(): name not found: %S", arg);
 goto out;
 }
 retval = mkpwent(p);


More information about the Python-checkins mailing list

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