diff options
author | Mikulas Patocka <mpatocka@redhat.com> | 2017-04-27 11:49:33 -0400 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2017-04-27 12:10:16 -0400 |
commit | 6625d903253eb6f003849823e22d7b8de5bfb5b2 (patch) | |
tree | 32814302241023500154ce45da6472defd8c23d9 /drivers/md | |
parent | e944e03e336f7ffa02aabc71291933d93dcd077c (diff) | |
download | op-kernel-dev-6625d903253eb6f003849823e22d7b8de5bfb5b2.zip op-kernel-dev-6625d903253eb6f003849823e22d7b8de5bfb5b2.tar.gz |
dm integrity: use hex2bin instead of open-coded variant
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm-integrity.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c index 0354af4..023d3f8 100644 --- a/drivers/md/dm-integrity.c +++ b/drivers/md/dm-integrity.c @@ -2496,8 +2496,6 @@ static int get_alg_and_key(const char *arg, struct alg_spec *a, char **error, ch k = strchr(a->alg_string, ':'); if (k) { - unsigned i; - *k = 0; a->key_string = k + 1; if (strlen(a->key_string) & 1) @@ -2507,16 +2505,8 @@ static int get_alg_and_key(const char *arg, struct alg_spec *a, char **error, ch a->key = kmalloc(a->key_size, GFP_KERNEL); if (!a->key) goto nomem; - for (i = 0; i < a->key_size; i++) { - char digit[3]; - digit[0] = a->key_string[i * 2]; - digit[1] = a->key_string[i * 2 + 1]; - digit[2] = 0; - if (strspn(digit, "0123456789abcdefABCDEF") != 2) - goto inval; - if (kstrtou8(digit, 16, &a->key[i])) - goto inval; - } + if (hex2bin(a->key, a->key_string, a->key_size)) + goto inval; } return 0; |