[Libguestfs] [PATCH 2/2] python: Use bytes instead of str for event callback buffer

Richard W.M. Jones rjones at redhat.com
Tue Feb 14 18:51:26 UTC 2023


The event callback gets a buffer parameter which is usually something
like a log message.  However as it comes from C it is not necessarily
well-formed (eg) UTF-8 but could contain any old byte sequence.

In the test case provided by the reported, we failed to encode the
buffer as str with this error:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 137: unexpected end of data

Use bytes instead.

Reported-by: Yonatan Shtarkman
See: https://listman.redhat.com/archives/libguestfs/2023-February/030653.html
---
 python/handle.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/python/handle.c b/python/handle.c
index f37e939e03..bf639b5789 100644
--- a/python/handle.c
+++ b/python/handle.c
@@ -131,7 +131,7 @@ guestfs_int_py_event_callback_wrapper (guestfs_h *g,
   }
 
   /* XXX As with Perl we don't pass the guestfs_h handle here. */
-  args = Py_BuildValue ("(Kis#O)",
+  args = Py_BuildValue ("(Kiy#O)",
                         (unsigned PY_LONG_LONG) event, event_handle,
                         buf, buf_len, py_array);
   if (args == NULL) {
-- 
2.39.0



More information about the Libguestfs mailing list