From f4f167090964186d65d1ee8b9676b7123b015e3b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 28 Mar 2026 03:08:52 +0000 Subject: util/nvmutil: tidy up hextonum i had a bunch of hacks in here because i was previously using very buggy rand. now it's ok. Signed-off-by: Leah Rowe --- util/libreboot-utils/lib/num.c | 36 ++++++------------------------------ 1 file changed, 6 insertions(+), 30 deletions(-) (limited to 'util/libreboot-utils') diff --git a/util/libreboot-utils/lib/num.c b/util/libreboot-utils/lib/num.c index 79d6b409..d297ab86 100644 --- a/util/libreboot-utils/lib/num.c +++ b/util/libreboot-utils/lib/num.c @@ -33,44 +33,20 @@ hextonum(char ch_s) ch = (unsigned char)ch_s; - if ((unsigned int)(ch - '0') <= 9) { - - rval = ch - '0'; - goto hextonum_success; - } + if ((unsigned int)(ch - '0') <= 9) + return ch - '0'; ch |= 0x20; - if ((unsigned int)(ch - 'a') <= 5) { - - rval = ch - 'a' + 10; - goto hextonum_success; - } + if ((unsigned int)(ch - 'a') <= 5) + return ch - 'a' + 10; if (ch == '?' || ch == 'x') { - rset(&rval, sizeof(rval)); - - goto hextonum_success; + return rval & 0xf; } - goto err_hextonum; - -hextonum_success: - - errno = saved_errno; - return (unsigned short)rval & 0xf; - -err_hextonum: - - if (errno == saved_errno) - errno = EINVAL; - else - return 17; /* 17 indicates getrandom/urandom fail */ - - return 16; /* invalid character */ - - /* caller just checks >15. */ + return 16; } void -- cgit v1.2.1