aboutsummaryrefslogtreecommitdiffstats
path: root/testing/py3-pam/PyPAM-0.5.0-memory-errors.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/py3-pam/PyPAM-0.5.0-memory-errors.patch')
-rw-r--r--testing/py3-pam/PyPAM-0.5.0-memory-errors.patch128
1 files changed, 0 insertions, 128 deletions
diff --git a/testing/py3-pam/PyPAM-0.5.0-memory-errors.patch b/testing/py3-pam/PyPAM-0.5.0-memory-errors.patch
deleted file mode 100644
index 6e0b4c0dce..0000000000
--- a/testing/py3-pam/PyPAM-0.5.0-memory-errors.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-diff -up PyPAM-0.5.0/PAMmodule.c.memory PyPAM-0.5.0/PAMmodule.c
---- PyPAM-0.5.0/PAMmodule.c.memory 2012-05-07 17:22:54.503914026 +0200
-+++ PyPAM-0.5.0/PAMmodule.c 2012-05-07 17:23:15.644381942 +0200
-@@ -37,33 +37,48 @@ static void PyPAM_Err(PyPAMObject *self,
-
- err_msg = pam_strerror(self->pamh, result);
- error = Py_BuildValue("(si)", err_msg, result);
-- Py_INCREF(PyPAM_Error);
- PyErr_SetObject(PyPAM_Error, error);
-+ Py_XDECREF(error);
- }
-
- static int PyPAM_conv(int num_msg, const struct pam_message **msg,
- struct pam_response **resp, void *appdata_ptr)
- {
-- PyObject *args;
--
-+ PyObject *args, *msgList, *respList, *item;
-+ struct pam_response *response, *spr;
- PyPAMObject* self = (PyPAMObject *) appdata_ptr;
-+
- if (self->callback == NULL)
- return PAM_CONV_ERR;
-
- Py_INCREF(self);
-
-- PyObject* msgList = PyList_New(num_msg);
--
-+ msgList = PyList_New(num_msg);
-+ if (msgList == NULL) {
-+ Py_DECREF(self);
-+ return PAM_CONV_ERR;
-+ }
-+
- for (int i = 0; i < num_msg; i++) {
-- PyList_SetItem(msgList, i,
-- Py_BuildValue("(si)", msg[i]->msg, msg[i]->msg_style));
-+ item = Py_BuildValue("(si)", msg[i]->msg, msg[i]->msg_style);
-+ if (item == NULL) {
-+ Py_DECREF(msgList);
-+ Py_DECREF(self);
-+ return PAM_CONV_ERR;
-+ }
-+ PyList_SetItem(msgList, i, item);
- }
--
-+
- args = Py_BuildValue("(OO)", self, msgList);
-- PyObject* respList = PyEval_CallObject(self->callback, args);
-+ if (args == NULL) {
-+ Py_DECREF(self);
-+ Py_DECREF(msgList);
-+ return PAM_CONV_ERR;
-+ }
-+ respList = PyEval_CallObject(self->callback, args);
- Py_DECREF(args);
- Py_DECREF(self);
--
-+
- if (respList == NULL)
- return PAM_CONV_ERR;
-
-@@ -71,11 +86,15 @@ static int PyPAM_conv(int num_msg, const
- Py_DECREF(respList);
- return PAM_CONV_ERR;
- }
--
-- *resp = (struct pam_response *) malloc(
-+
-+ response = (struct pam_response *) malloc(
- PyList_Size(respList) * sizeof(struct pam_response));
-+ if (response == NULL) {
-+ Py_DECREF(respList);
-+ return PAM_CONV_ERR;
-+ }
-+ spr = response;
-
-- struct pam_response* spr = *resp;
- for (int i = 0; i < PyList_Size(respList); i++, spr++) {
- PyObject* respTuple = PyList_GetItem(respList, i);
- char* resp_text;
-@@ -85,7 +104,7 @@ static int PyPAM_conv(int num_msg, const
- free((--spr)->resp);
- --i;
- }
-- free(*resp);
-+ free(response);
- Py_DECREF(respList);
- return PAM_CONV_ERR;
- }
-@@ -95,7 +114,8 @@ static int PyPAM_conv(int num_msg, const
- }
-
- Py_DECREF(respList);
--
-+ *resp = response;
-+
- return PAM_SUCCESS;
- }
-
-@@ -122,7 +142,11 @@ static PyObject * PyPAM_pam(PyObject *se
- PyPAMObject_Type.ob_type = &PyType_Type;
- p = (PyPAMObject *) PyObject_NEW(PyPAMObject, &PyPAMObject_Type);
-
-+ if (p == NULL)
-+ return NULL;
-+
- if ((spc = (struct pam_conv *) malloc(sizeof(struct pam_conv))) == NULL) {
-+ Py_DECREF((PyObject *)p);
- PyErr_SetString(PyExc_MemoryError, "out of memory");
- return NULL;
- }
-@@ -455,9 +479,15 @@ static PyObject * PyPAM_getenvlist(PyObj
- }
-
- retval = PyList_New(0);
-+ if (retval == NULL)
-+ return NULL;
-
- while ((cp = *(result++)) != NULL) {
- entry = Py_BuildValue("s", cp);
-+ if (entry == NULL) {
-+ Py_DECREF(retval);
-+ return NULL;
-+ }
- PyList_Append(retval, entry);
- Py_DECREF(entry);
- }