From 68b2ff91b88fd2588db1770addab2f2ccf5a1aa8 Mon Sep 17 00:00:00 2001 Message-Id: <68b2ff91b88fd2588db1770addab2f2ccf5a1aa8@dist-git> From: Pavel Hrdina Date: Mon, 7 Jan 2019 14:12:15 +0100 Subject: [PATCH] util: fix virtDBusUtilDecodeUUID This function is supposed to convert ASCII character into its hex representation, however the current implementation was wrong because the first comparison would be false for all printable characters. In most cases it worked but for example '$' which is 0x24 in HEX would be incorrectly converted to 0x2[ which is obviously wrong. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1647823 Signed-off-by: Pavel Hrdina (cherry picked from commit f70ba7cb4dc08052f025f0217cc54a2ff36bc69d) Reviewed-by: Andrea Bolognani Signed-off-by: Pavel Hrdina --- src/util.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/util.c b/src/util.c index 8c822f2..31ee959 100644 --- a/src/util.c +++ b/src/util.c @@ -182,11 +182,12 @@ virtDBusUtilDecodeUUID(const gchar *uuid) } static guchar -virtDBusUtilNumToHexchar(const guchar c) +virtDBusUtilNumToHexchar(const guchar n) { + guchar c = n & 0x0f; if (c < 10) return '0' + c; - return 'a' + (c & 0x0f) - 10; + return 'a' + c - 10; } static guchar -- 2.20.1