diff options
Diffstat (limited to 'dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch')
-rw-r--r-- | dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch b/dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch new file mode 100644 index 00000000000..cbf2278d0bf --- /dev/null +++ b/dev-python/psycopg/files/psycopg-2.4.2-begin-segfault.patch @@ -0,0 +1,34 @@ +X-Git-Url: https://dndg.it/cgi-bin/gitweb.cgi?p=public%2Fpsycopg2.git;a=blobdiff_plain;f=psycopg%2Fpqpath.c;h=1f0d5da95bd88aa4d5468874047e4b0139ffadd3;hp=cee5ce4c9c053981710959ca28b7e68702c44a97;hb=de6f2ac387231fcd57c05031c82471ea57255e2b;hpb=d9fce1f837151e6eadfd8ca761ef328a721198bd + +diff --git a/psycopg/pqpath.c b/psycopg/pqpath.c +index cee5ce4..1f0d5da 100644 +--- a/psycopg/pqpath.c ++++ b/psycopg/pqpath.c +@@ -344,11 +344,13 @@ pq_execute_command_locked(connectionObject *conn, const char *query, + } + if (*pgres == NULL) { + Dprintf("pq_execute_command_locked: PQexec returned NULL"); ++ PyEval_RestoreThread(*tstate); + if (!PyErr_Occurred()) { + const char *msg; + msg = PQerrorMessage(conn->pgconn); + if (msg && *msg) { *error = strdup(msg); } + } ++ *tstate = PyEval_SaveThread(); + goto cleanup; + } + +@@ -635,11 +637,13 @@ pq_get_guc_locked( + + if (*pgres == NULL) { + Dprintf("pq_get_guc_locked: PQexec returned NULL"); ++ PyEval_RestoreThread(*tstate); + if (!PyErr_Occurred()) { + const char *msg; + msg = PQerrorMessage(conn->pgconn); + if (msg && *msg) { *error = strdup(msg); } + } ++ *tstate = PyEval_SaveThread(); + goto cleanup; + } + if (PQresultStatus(*pgres) != PGRES_TUPLES_OK) {
\ No newline at end of file |