45 lines
1.4 KiB
Diff
45 lines
1.4 KiB
Diff
From 68b2ff91b88fd2588db1770addab2f2ccf5a1aa8 Mon Sep 17 00:00:00 2001
|
|
Message-Id: <68b2ff91b88fd2588db1770addab2f2ccf5a1aa8@dist-git>
|
|
From: Pavel Hrdina <phrdina@redhat.com>
|
|
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 <phrdina@redhat.com>
|
|
(cherry picked from commit f70ba7cb4dc08052f025f0217cc54a2ff36bc69d)
|
|
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
|
|
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
|
---
|
|
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
|
|
|