mirror of
https://github.com/psycopg/psycopg2.git
synced 2025-01-31 17:34:08 +03:00
Check if the object wrapped in binary is not None before trying the other types
Otherwise it seems we clobber some result with NULL.
This commit is contained in:
parent
a9dc1b83ad
commit
735d50c782
|
@ -65,6 +65,13 @@ binary_quote(binaryObject *self)
|
|||
int got_view = 0;
|
||||
#endif
|
||||
|
||||
/* Allow Binary(None) to work */
|
||||
if (self->wrapped == Py_None) {
|
||||
Py_INCREF(psyco_null);
|
||||
rv = psyco_null;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
/* if we got a plain string or a buffer we escape it and save the buffer */
|
||||
|
||||
#if HAS_MEMORYVIEW
|
||||
|
@ -93,7 +100,7 @@ binary_quote(binaryObject *self)
|
|||
|
||||
/* escape and build quoted buffer */
|
||||
|
||||
to = (char *)binary_escape((unsigned char*)buffer, (size_t) buffer_len,
|
||||
to = (char *)binary_escape((unsigned char*)buffer, (size_t)buffer_len,
|
||||
&len, self->conn ? ((connectionObject*)self->conn)->pgconn : NULL);
|
||||
if (to == NULL) {
|
||||
PyErr_NoMemory();
|
||||
|
@ -113,12 +120,6 @@ exit:
|
|||
if (got_view) { PyBuffer_Release(&view); }
|
||||
#endif
|
||||
|
||||
/* Allow Binary(None) to work */
|
||||
if (self->wrapped == Py_None) {
|
||||
Py_INCREF(psyco_null);
|
||||
rv = psyco_null;
|
||||
}
|
||||
|
||||
/* if the wrapped object is not bytes or a buffer, this is an error */
|
||||
if (!rv && !PyErr_Occurred()) {
|
||||
PyErr_Format(PyExc_TypeError, "can't escape %s to binary",
|
||||
|
|
Loading…
Reference in New Issue
Block a user