Commit ede9c277 authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Linus Torvalds

kernel/sysctl_binary.c: use generic UUID library

UUID library provides uuid_be type and uuid_be_to_bin() function.  This
substitutes open coded variant by generic library calls.
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: default avatarMatt Fleming <matt@codeblueprint.co.uk>
Cc: Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e3a93bce
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <linux/ctype.h> #include <linux/ctype.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/uuid.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/compat.h> #include <linux/compat.h>
...@@ -1117,9 +1118,8 @@ static ssize_t bin_uuid(struct file *file, ...@@ -1117,9 +1118,8 @@ static ssize_t bin_uuid(struct file *file,
/* Only supports reads */ /* Only supports reads */
if (oldval && oldlen) { if (oldval && oldlen) {
char buf[40], *str = buf; char buf[UUID_STRING_LEN + 1];
unsigned char uuid[16]; uuid_be uuid;
int i;
result = kernel_read(file, 0, buf, sizeof(buf) - 1); result = kernel_read(file, 0, buf, sizeof(buf) - 1);
if (result < 0) if (result < 0)
...@@ -1127,24 +1127,15 @@ static ssize_t bin_uuid(struct file *file, ...@@ -1127,24 +1127,15 @@ static ssize_t bin_uuid(struct file *file,
buf[result] = '\0'; buf[result] = '\0';
/* Convert the uuid to from a string to binary */
for (i = 0; i < 16; i++) {
result = -EIO; result = -EIO;
if (!isxdigit(str[0]) || !isxdigit(str[1])) if (uuid_be_to_bin(buf, &uuid))
goto out; goto out;
uuid[i] = (hex_to_bin(str[0]) << 4) |
hex_to_bin(str[1]);
str += 2;
if (*str == '-')
str++;
}
if (oldlen > 16) if (oldlen > 16)
oldlen = 16; oldlen = 16;
result = -EFAULT; result = -EFAULT;
if (copy_to_user(oldval, uuid, oldlen)) if (copy_to_user(oldval, &uuid, oldlen))
goto out; goto out;
copied = oldlen; copied = oldlen;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment