From 40c27b54b0e570e7df28da1ab96ff00bfb6b731c Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 19 Jun 2024 19:51:50 +0200 Subject: [PATCH] ejabberd_ctl: Fix output of UTF-8-encoded binaries Converting binary results to char() lists using binary_to_list/1 yields incorrect results for characters outside the ISO Latin-1 range. --- src/ejabberd_ctl.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_ctl.erl b/src/ejabberd_ctl.erl index aad3e0eb3..87e2cb624 100644 --- a/src/ejabberd_ctl.erl +++ b/src/ejabberd_ctl.erl @@ -410,13 +410,13 @@ format_result([A|_]=String, {_Name, string}, _Version) when is_list(String) and io_lib:format("~ts", [String]); format_result(Binary, {_Name, binary}, _Version) when is_binary(Binary) -> - io_lib:format("~ts", [binary_to_list(Binary)]); + io_lib:format("~ts", [Binary]); format_result(String, {_Name, binary}, _Version) when is_list(String) -> io_lib:format("~ts", [String]); format_result(Binary, {_Name, string}, _Version) when is_binary(Binary) -> - io_lib:format("~ts", [binary_to_list(Binary)]); + io_lib:format("~ts", [Binary]); format_result(Atom, {_Name, string}, _Version) when is_atom(Atom) -> io_lib:format("~ts", [atom_to_list(Atom)]);