summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatus Valo <matusvalo@gmail.com>2017-09-13 01:19:28 -0700
committerMatus Valo <matusvalo@gmail.com>2017-09-13 01:19:28 -0700
commit2b447c7e4283ea7fd2c11ae588f4625d486561cd (patch)
treed5ba8d301d6c47830966b3734080523b0907530c
parent039c94675d0eea7b9fdb6f6ef0611c98b8d0627e (diff)
downloadlibrabbitmq-2b447c7e4283ea7fd2c11ae588f4625d486561cd.tar.gz
use PyUnicode_FromStringAndSize in PySTRING_FROM_AMQBYTES macro.
This commit fixes crashes when librabbitmq is used in kombu.
-rw-r--r--Modules/_librabbitmq/connection.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/Modules/_librabbitmq/connection.h b/Modules/_librabbitmq/connection.h
index 0e2c3d0..e734e75 100644
--- a/Modules/_librabbitmq/connection.h
+++ b/Modules/_librabbitmq/connection.h
@@ -87,8 +87,14 @@ buffer_toMemoryView(char *buf, Py_ssize_t buf_len) {
Py_XDECREF(value); \
} while(0)
-#define PySTRING_FROM_AMQBYTES(member) \
- PyBytes_FromStringAndSize(member.bytes, (Py_ssize_t)member.len); \
+#if PY_MAJOR_VERSION == 2
+# define PySTRING_FROM_AMQBYTES(member) \
+ PyString_FromStringAndSize(member.bytes, (Py_ssize_t)member.len);
+#else
+# define PySTRING_FROM_AMQBYTES(member) \
+ PyUnicode_FromStringAndSize(member.bytes, (Py_ssize_t)member.len);
+#endif
+
#define AMQTable_TO_PYKEY(table, i) \
PySTRING_FROM_AMQBYTES(table->entries[i].key)