Commit 61ec5dca authored by Victor Stinner's avatar Victor Stinner

Issue #9604: posix.initgroups() encodes the username using the fileystem

encoding and surrogateescape error handler. Patch written by David Watson.
parent 5fe6de8c
......@@ -83,6 +83,9 @@ Extensions
Library
-------
- Issue #9604: posix.initgroups() encodes the username using the fileystem
encoding and surrogateescape error handler. Patch written by David Watson.
- Issue #9603: posix.ttyname() and posix.ctermid() decode the terminal name
using the filesystem encoding and surrogateescape error handler. Patch
written by David Watson.
......
......@@ -4249,13 +4249,19 @@ group id.");
static PyObject *
posix_initgroups(PyObject *self, PyObject *args)
{
PyObject *oname;
char *username;
int res;
long gid;
if (!PyArg_ParseTuple(args, "sl:initgroups", &username, &gid))
if (!PyArg_ParseTuple(args, "O&l:initgroups",
PyUnicode_FSConverter, &oname, &gid))
return NULL;
username = PyBytes_AS_STRING(oname);
if (initgroups(username, (gid_t) gid) == -1)
res = initgroups(username, (gid_t) gid);
Py_DECREF(oname);
if (res == -1)
return PyErr_SetFromErrno(PyExc_OSError);
Py_INCREF(Py_None);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment