diff --git a/[refs] b/[refs] index ae2cfb4ea04e..14b9c7953d21 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 862a6244eb9f9f5123fe819454fcfcae0ee1f2f9 +refs/heads/master: 447c6f93aba42e6889be55a614d4dddc25f17863 diff --git a/trunk/sound/core/control.c b/trunk/sound/core/control.c index 978fe1a8e9f0..59edb12dd542 100644 --- a/trunk/sound/core/control.c +++ b/trunk/sound/core/control.c @@ -1081,12 +1081,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);