summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@us.ibm.com>2015-11-17 22:43:42 -0500
committerBrad Bishop <bradleyb@us.ibm.com>2015-11-17 22:43:42 -0500
commit3579dc63b8ab8e12fe6078937449f48ab3b9d66c (patch)
tree161729158b4cb3c06fcfd56eafa1661b81987084
parent95f7347307084d281967f6602a9ed7be1b2b908d (diff)
downloadtalos-openbmc-3579dc63b8ab8e12fe6078937449f48ab3b9d66c.tar.gz
talos-openbmc-3579dc63b8ab8e12fe6078937449f48ab3b9d66c.zip
python-dbus dbus.Byte.__str__ produces broken utf8
Byte to string simply copied the byte, which isn't valid utf8 for non ascii values. Since dbus.byte is an int subclass, should just be using int's __str__ implementation anyway.
-rw-r--r--meta-phosphor/common/recipes-devtools/python/python-dbus/bytes.patch37
-rw-r--r--meta-phosphor/common/recipes-devtools/python/python-dbus_1.2.0.bbappend2
2 files changed, 39 insertions, 0 deletions
diff --git a/meta-phosphor/common/recipes-devtools/python/python-dbus/bytes.patch b/meta-phosphor/common/recipes-devtools/python/python-dbus/bytes.patch
new file mode 100644
index 000000000..d8a10a063
--- /dev/null
+++ b/meta-phosphor/common/recipes-devtools/python/python-dbus/bytes.patch
@@ -0,0 +1,37 @@
+Index: dbus-python-1.2.0/_dbus_bindings/bytes.c
+===================================================================
+--- dbus-python-1.2.0.orig/_dbus_bindings/bytes.c
++++ dbus-python-1.2.0/_dbus_bindings/bytes.c
+@@ -138,23 +138,6 @@ bad_range:
+ return NULL;
+ }
+
+-static PyObject *
+-Byte_tp_str(PyObject *self)
+-{
+- long i = NATIVEINT_ASLONG(self);
+- unsigned char str[2] = { 0, 0 };
+-
+- if (i == -1 && PyErr_Occurred())
+- return NULL;
+- if (i < 0 || i > 255) {
+- PyErr_SetString(PyExc_RuntimeError, "Integer outside range 0-255");
+- return NULL;
+- }
+-
+- str[0] = (unsigned char)i;
+- return PyUnicode_FromStringAndSize((char *)str, 1);
+-}
+-
+ PyTypeObject DBusPyByte_Type = {
+ PyVarObject_HEAD_INIT(DEFERRED_ADDRESS(&PyType_Type), 0)
+ "dbus.Byte",
+@@ -171,7 +154,7 @@ PyTypeObject DBusPyByte_Type = {
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+- Byte_tp_str, /* tp_str */
++ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
diff --git a/meta-phosphor/common/recipes-devtools/python/python-dbus_1.2.0.bbappend b/meta-phosphor/common/recipes-devtools/python/python-dbus_1.2.0.bbappend
new file mode 100644
index 000000000..57d5ef46e
--- /dev/null
+++ b/meta-phosphor/common/recipes-devtools/python/python-dbus_1.2.0.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+SRC_URI += "file://bytes.patch"
OpenPOWER on IntegriCloud