diff --git a/source3/modules/vfs_cap.c b/source3/modules/vfs_cap.c index 8d5eb6fc91e..2d4ea76bb78 100644 --- a/source3/modules/vfs_cap.c +++ b/source3/modules/vfs_cap.c @@ -901,30 +901,8 @@ NTSTATUS vfs_cap_init(TALLOC_CTX *ctx) /* For CAP functions */ #define hex_tag ':' -#define hex2bin(c) hex2bin_table[(unsigned char)(c)] #define is_hex(s) ((s)[0] == hex_tag) -static unsigned char hex2bin_table[256] = { -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x20 */ -0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, /* 0x30 */ -0000, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0000, /* 0x40 */ -0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x50 */ -0000, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0000, /* 0x60 */ -0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x70 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x80 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x90 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xa0 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xb0 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xc0 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xd0 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0xe0 */ -0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* 0xf0 */ -}; - /******************************************************************* original code -> ":xx" - CAP format ********************************************************************/ @@ -993,7 +971,7 @@ static char *capdecode(TALLOC_CTX *ctx, const char *from) for (out = to; *from;) { if (is_hex(from)) { - *out++ = (hex2bin(from[1])<<4) | (hex2bin(from[2])); + (void)hex_byte(&from[1], (uint8_t *)(out++)); from += 3; } else { *out++ = *from++;