X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=sound%2Fcore%2Fcontrol.c;h=819a5c579a3975f129b2b35e67be0ad12d2780bd;hb=8364919c5698d934860aabc607ffd32b13c8c37c;hp=978fe1a8e9f0877ece853c788a5ed371f9bdfa77;hpb=e29ec6247053ad60bd0b36f155b647364a615097;p=linux-beck.git diff --git a/sound/core/control.c b/sound/core/control.c index 978fe1a8e9f0..819a5c579a39 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -21,6 +21,7 @@ #include #include +#include #include #include #include @@ -1081,12 +1082,12 @@ static int snd_ctl_elem_init_enum_names(struct user_element *ue) char *names, *p; size_t buf_len, name_len; unsigned int i; + const uintptr_t user_ptrval = ue->info.value.enumerated.names_ptr; if (ue->info.value.enumerated.names_length > 64 * 1024) return -EINVAL; - names = memdup_user( - (const void __user *)ue->info.value.enumerated.names_ptr, + names = memdup_user((const void __user *)user_ptrval, ue->info.value.enumerated.names_length); if (IS_ERR(names)) return PTR_ERR(names);