Prefer g_ascii_xdigit_value to virHexToBin.
Check the return value of the function and
remove the g_ascii_isxdigit calls, since
they're done anyway internally.
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Laine Stump <laine@redhat.com>
#include <unistd.h>
#include "internal.h"
-#include "virutil.h"
#include "virerror.h"
#include "virlog.h"
#include "viralloc.h"
cur++;
for (i = 0; i < VIR_UUID_BUFLEN;) {
+ int val;
uuid[i] = 0;
if (*cur == 0)
return -1;
cur++;
continue;
}
- if (!g_ascii_isxdigit(*cur))
+ if ((val = g_ascii_xdigit_value(*cur)) < 0)
return -1;
- uuid[i] = virHexToBin(*cur);
- uuid[i] *= 16;
+ uuid[i] = 16 * val;
cur++;
if (*cur == 0)
return -1;
- if (!g_ascii_isxdigit(*cur))
+ if ((val = g_ascii_xdigit_value(*cur)) < 0)
return -1;
- uuid[i] += virHexToBin(*cur);
+ uuid[i] += val;
i++;
cur++;
}