]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
tdb: Use hex_byte() in parse_hex()
authorVolker Lendecke <vl@samba.org>
Mon, 4 Jan 2021 12:52:48 +0000 (13:52 +0100)
committerJeremy Allison <jra@samba.org>
Fri, 8 Jan 2021 20:31:33 +0000 (20:31 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
lib/tdb/tools/tdbtool.c

index 36e480cd29c9e00b55b86ae3cd6a5bb0364f8cdb..fca28a16ba88f2c2dfde69b502710b5f1a338b83 100644 (file)
@@ -349,23 +349,6 @@ static void store_tdb(char *keyname, size_t keylen, char* data, size_t datalen)
        }
 }
 
-static bool hexchar(char c, uint8_t *v)
-{
-       if ((c >= '0') && (c <= '9')) {
-               *v = (c - '0');
-               return true;
-       }
-       if ((c >= 'A') && (c <= 'F')) {
-               *v = (c - 'A' + 10);
-               return true;
-       }
-       if ((c >= 'a') && (c <= 'f')) {
-               *v = (c - 'a' + 10);
-               return true;
-       }
-       return false;
-}
-
 static bool parse_hex(const char *src, size_t srclen, uint8_t *dst)
 {
        size_t i=0;
@@ -375,14 +358,11 @@ static bool parse_hex(const char *src, size_t srclen, uint8_t *dst)
        }
 
        while (i<srclen) {
-               bool ok;
-               uint8_t hi,lo;
-
-               ok = (hexchar(src[i++], &hi) && hexchar(src[i++], &lo));
+               bool ok = hex_byte(src, dst);
                if (!ok) {
                        return false;
                }
-               *dst = (hi<<4)|lo;
+               src += 2;
                dst += 1;
        }