Skip to content

Commit 79de02d

Browse files
committed
Stricter use of PyArg_ParseTuple typed objects
The function expect PyObject *, not subclasses.
1 parent 3e66022 commit 79de02d

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

psycopg/adapter_qstring.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,14 @@ qstring_str(qstringObject *self)
113113
static PyObject *
114114
qstring_prepare(qstringObject *self, PyObject *args)
115115
{
116-
connectionObject *conn;
116+
PyObject *conn;
117117

118118
if (!PyArg_ParseTuple(args, "O!", &connectionType, &conn))
119119
return NULL;
120120

121121
Py_CLEAR(self->conn);
122122
Py_INCREF(conn);
123-
self->conn = conn;
123+
self->conn = (connectionObject *)conn;
124124

125125
Py_RETURN_NONE;
126126
}

psycopg/replication_message_type.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,17 @@ replmsg_repr(replicationMessageObject *self)
5858
static int
5959
replmsg_init(PyObject *obj, PyObject *args, PyObject *kwargs)
6060
{
61-
replicationMessageObject *self = (replicationMessageObject*) obj;
61+
PyObject *cur = NULL;
62+
replicationMessageObject *self = (replicationMessageObject *)obj;
6263

63-
if (!PyArg_ParseTuple(args, "O!O", &cursorType, &self->cursor, &self->payload))
64+
if (!PyArg_ParseTuple(
65+
args, "O!O", &cursorType, &cur, &self->payload)) {
6466
return -1;
65-
Py_XINCREF(self->cursor);
66-
Py_XINCREF(self->payload);
67+
}
68+
69+
Py_INCREF(cur);
70+
self->cursor = (cursorObject *)cur;
71+
Py_INCREF(self->payload);
6772

6873
self->data_size = 0;
6974
self->data_start = 0;
@@ -76,7 +81,7 @@ replmsg_init(PyObject *obj, PyObject *args, PyObject *kwargs)
7681
static int
7782
replmsg_traverse(replicationMessageObject *self, visitproc visit, void *arg)
7883
{
79-
Py_VISIT((PyObject* )self->cursor);
84+
Py_VISIT((PyObject *)self->cursor);
8085
Py_VISIT(self->payload);
8186
return 0;
8287
}

0 commit comments

Comments
 (0)