X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Futils.c;fp=lib%2Futils.c;h=3b221f59f0ef731f62b0369314de5964bdf855fd;hp=405097bbe3d01c592a05147c6df36422c614af65;hb=c4940a5c888d85b4c477b6face5e9a618e64718d;hpb=3bd810ea79d6933839ddac4a2cf1445c51947d38 diff --git a/lib/utils.c b/lib/utils.c index 405097bb..3b221f59 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -32,11 +32,13 @@ static int charhex2bin(char c) { return toupper(c) - 'A' + 10; } - -void hex2bin(char *src, char *dst, int length) { - int i; - for(i = 0; i < length; i++) +bool hex2bin(char *src, char *dst, int length) { + for(int i = 0; i < length; i++) { + if(!isxdigit(src[i * 2]) || !isxdigit(src[i * 2 + 1])) + return false; dst[i] = charhex2bin(src[i * 2]) * 16 + charhex2bin(src[i * 2 + 1]); + } + return true; } void bin2hex(char *src, char *dst, int length) {