diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
commit | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch) | |
tree | 64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/tools/python3/src/Modules/grpmodule.c | |
parent | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff) | |
download | ydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/tools/python3/src/Modules/grpmodule.c')
-rw-r--r-- | contrib/tools/python3/src/Modules/grpmodule.c | 302 |
1 files changed, 151 insertions, 151 deletions
diff --git a/contrib/tools/python3/src/Modules/grpmodule.c b/contrib/tools/python3/src/Modules/grpmodule.c index e9976501c6..cdb3ae859b 100644 --- a/contrib/tools/python3/src/Modules/grpmodule.c +++ b/contrib/tools/python3/src/Modules/grpmodule.c @@ -34,32 +34,32 @@ static PyStructSequence_Desc struct_group_type_desc = { }; -typedef struct { - PyTypeObject *StructGrpType; -} grpmodulestate; - -static inline grpmodulestate* -get_grp_state(PyObject *module) -{ - void *state = PyModule_GetState(module); - assert(state != NULL); - return (grpmodulestate *)state; -} - -#define modulestate_global get_grp_state(PyState_FindModule(&grpmodule)) - -static struct PyModuleDef grpmodule; - -#define DEFAULT_BUFFER_SIZE 1024 - +typedef struct { + PyTypeObject *StructGrpType; +} grpmodulestate; + +static inline grpmodulestate* +get_grp_state(PyObject *module) +{ + void *state = PyModule_GetState(module); + assert(state != NULL); + return (grpmodulestate *)state; +} + +#define modulestate_global get_grp_state(PyState_FindModule(&grpmodule)) + +static struct PyModuleDef grpmodule; + +#define DEFAULT_BUFFER_SIZE 1024 + static PyObject * mkgrent(struct group *p) { int setIndex = 0; - PyObject *v, *w; + PyObject *v, *w; char **member; - if ((v = PyStructSequence_New(modulestate_global->StructGrpType)) == NULL) + if ((v = PyStructSequence_New(modulestate_global->StructGrpType)) == NULL) return NULL; if ((w = PyList_New(0)) == NULL) { @@ -111,9 +111,9 @@ static PyObject * grp_getgrgid_impl(PyObject *module, PyObject *id) /*[clinic end generated code: output=30797c289504a1ba input=15fa0e2ccf5cda25]*/ { - PyObject *py_int_id, *retval = NULL; - int nomem = 0; - char *buf = NULL, *buf2 = NULL; + PyObject *py_int_id, *retval = NULL; + int nomem = 0; + char *buf = NULL, *buf2 = NULL; gid_t gid; struct group *p; @@ -124,7 +124,7 @@ grp_getgrgid_impl(PyObject *module, PyObject *id) PyErr_Clear(); if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "group id must be int, not %.200", - Py_TYPE(id)->tp_name) < 0) { + Py_TYPE(id)->tp_name) < 0) { return NULL; } py_int_id = PyNumber_Long(id); @@ -136,49 +136,49 @@ grp_getgrgid_impl(PyObject *module, PyObject *id) } Py_DECREF(py_int_id); } -#ifdef HAVE_GETGRGID_R - int status; - Py_ssize_t bufsize; - /* Note: 'grp' will be used via pointer 'p' on getgrgid_r success. */ - struct group grp; - - Py_BEGIN_ALLOW_THREADS - bufsize = sysconf(_SC_GETGR_R_SIZE_MAX); - if (bufsize == -1) { - bufsize = DEFAULT_BUFFER_SIZE; - } - - while (1) { - buf2 = PyMem_RawRealloc(buf, bufsize); - if (buf2 == NULL) { - p = NULL; - nomem = 1; - break; - } - buf = buf2; - status = getgrgid_r(gid, &grp, buf, bufsize, &p); - if (status != 0) { - p = NULL; - } - if (p != NULL || status != ERANGE) { - break; - } - if (bufsize > (PY_SSIZE_T_MAX >> 1)) { - nomem = 1; - break; - } - bufsize <<= 1; - } - - Py_END_ALLOW_THREADS -#else - p = getgrgid(gid); -#endif - if (p == NULL) { - PyMem_RawFree(buf); - if (nomem == 1) { - return PyErr_NoMemory(); - } +#ifdef HAVE_GETGRGID_R + int status; + Py_ssize_t bufsize; + /* Note: 'grp' will be used via pointer 'p' on getgrgid_r success. */ + struct group grp; + + Py_BEGIN_ALLOW_THREADS + bufsize = sysconf(_SC_GETGR_R_SIZE_MAX); + if (bufsize == -1) { + bufsize = DEFAULT_BUFFER_SIZE; + } + + while (1) { + buf2 = PyMem_RawRealloc(buf, bufsize); + if (buf2 == NULL) { + p = NULL; + nomem = 1; + break; + } + buf = buf2; + status = getgrgid_r(gid, &grp, buf, bufsize, &p); + if (status != 0) { + p = NULL; + } + if (p != NULL || status != ERANGE) { + break; + } + if (bufsize > (PY_SSIZE_T_MAX >> 1)) { + nomem = 1; + break; + } + bufsize <<= 1; + } + + Py_END_ALLOW_THREADS +#else + p = getgrgid(gid); +#endif + if (p == NULL) { + PyMem_RawFree(buf); + if (nomem == 1) { + return PyErr_NoMemory(); + } PyObject *gid_obj = _PyLong_FromGid(gid); if (gid_obj == NULL) return NULL; @@ -186,11 +186,11 @@ grp_getgrgid_impl(PyObject *module, PyObject *id) Py_DECREF(gid_obj); return NULL; } - retval = mkgrent(p); -#ifdef HAVE_GETGRGID_R - PyMem_RawFree(buf); -#endif - return retval; + retval = mkgrent(p); +#ifdef HAVE_GETGRGID_R + PyMem_RawFree(buf); +#endif + return retval; } /*[clinic input] @@ -207,8 +207,8 @@ static PyObject * grp_getgrnam_impl(PyObject *module, PyObject *name) /*[clinic end generated code: output=67905086f403c21c input=08ded29affa3c863]*/ { - char *buf = NULL, *buf2 = NULL, *name_chars; - int nomem = 0; + char *buf = NULL, *buf2 = NULL, *name_chars; + int nomem = 0; struct group *p; PyObject *bytes, *retval = NULL; @@ -217,56 +217,56 @@ grp_getgrnam_impl(PyObject *module, PyObject *name) /* check for embedded null bytes */ if (PyBytes_AsStringAndSize(bytes, &name_chars, NULL) == -1) goto out; -#ifdef HAVE_GETGRNAM_R - int status; - Py_ssize_t bufsize; - /* Note: 'grp' will be used via pointer 'p' on getgrnam_r success. */ - struct group grp; - - Py_BEGIN_ALLOW_THREADS - bufsize = sysconf(_SC_GETGR_R_SIZE_MAX); - if (bufsize == -1) { - bufsize = DEFAULT_BUFFER_SIZE; - } - - while(1) { - buf2 = PyMem_RawRealloc(buf, bufsize); - if (buf2 == NULL) { - p = NULL; - nomem = 1; - break; - } - buf = buf2; - status = getgrnam_r(name_chars, &grp, buf, bufsize, &p); - if (status != 0) { - p = NULL; - } - if (p != NULL || status != ERANGE) { - break; - } - if (bufsize > (PY_SSIZE_T_MAX >> 1)) { - nomem = 1; - break; - } - bufsize <<= 1; - } - - Py_END_ALLOW_THREADS -#else - p = getgrnam(name_chars); -#endif - if (p == NULL) { - if (nomem == 1) { - PyErr_NoMemory(); - } - else { - PyErr_Format(PyExc_KeyError, "getgrnam(): name not found: %R", name); - } +#ifdef HAVE_GETGRNAM_R + int status; + Py_ssize_t bufsize; + /* Note: 'grp' will be used via pointer 'p' on getgrnam_r success. */ + struct group grp; + + Py_BEGIN_ALLOW_THREADS + bufsize = sysconf(_SC_GETGR_R_SIZE_MAX); + if (bufsize == -1) { + bufsize = DEFAULT_BUFFER_SIZE; + } + + while(1) { + buf2 = PyMem_RawRealloc(buf, bufsize); + if (buf2 == NULL) { + p = NULL; + nomem = 1; + break; + } + buf = buf2; + status = getgrnam_r(name_chars, &grp, buf, bufsize, &p); + if (status != 0) { + p = NULL; + } + if (p != NULL || status != ERANGE) { + break; + } + if (bufsize > (PY_SSIZE_T_MAX >> 1)) { + nomem = 1; + break; + } + bufsize <<= 1; + } + + Py_END_ALLOW_THREADS +#else + p = getgrnam(name_chars); +#endif + if (p == NULL) { + if (nomem == 1) { + PyErr_NoMemory(); + } + else { + PyErr_Format(PyExc_KeyError, "getgrnam(): name not found: %R", name); + } goto out; } retval = mkgrent(p); out: - PyMem_RawFree(buf); + PyMem_RawFree(buf); Py_DECREF(bytes); return retval; } @@ -327,52 +327,52 @@ users are not explicitly listed as members of the groups they are in\n\ according to the password database. Check both databases to get\n\ complete membership information.)"); -static int grpmodule_traverse(PyObject *m, visitproc visit, void *arg) { - Py_VISIT(get_grp_state(m)->StructGrpType); - return 0; -} +static int grpmodule_traverse(PyObject *m, visitproc visit, void *arg) { + Py_VISIT(get_grp_state(m)->StructGrpType); + return 0; +} -static int grpmodule_clear(PyObject *m) { - Py_CLEAR(get_grp_state(m)->StructGrpType); - return 0; -} +static int grpmodule_clear(PyObject *m) { + Py_CLEAR(get_grp_state(m)->StructGrpType); + return 0; +} + +static void grpmodule_free(void *m) { + grpmodule_clear((PyObject *)m); +} -static void grpmodule_free(void *m) { - grpmodule_clear((PyObject *)m); -} - static struct PyModuleDef grpmodule = { PyModuleDef_HEAD_INIT, "grp", grp__doc__, - sizeof(grpmodulestate), + sizeof(grpmodulestate), grp_methods, NULL, - grpmodule_traverse, - grpmodule_clear, - grpmodule_free, + grpmodule_traverse, + grpmodule_clear, + grpmodule_free, }; PyMODINIT_FUNC PyInit_grp(void) { - PyObject *m; - if ((m = PyState_FindModule(&grpmodule)) != NULL) { - Py_INCREF(m); - return m; - } - - if ((m = PyModule_Create(&grpmodule)) == NULL) { + PyObject *m; + if ((m = PyState_FindModule(&grpmodule)) != NULL) { + Py_INCREF(m); + return m; + } + + if ((m = PyModule_Create(&grpmodule)) == NULL) { return NULL; } - - grpmodulestate *state = PyModule_GetState(m); - state->StructGrpType = PyStructSequence_NewType(&struct_group_type_desc); - if (state->StructGrpType == NULL) { + + grpmodulestate *state = PyModule_GetState(m); + state->StructGrpType = PyStructSequence_NewType(&struct_group_type_desc); + if (state->StructGrpType == NULL) { return NULL; - } - - Py_INCREF(state->StructGrpType); - PyModule_AddObject(m, "struct_group", (PyObject *) state->StructGrpType); + } + + Py_INCREF(state->StructGrpType); + PyModule_AddObject(m, "struct_group", (PyObject *) state->StructGrpType); return m; } |