Sachin Shukla <sachin...@samsung.com> writes:

> From: "Sachin Shukla" <sachin...@samsung.com>
>
> There is no need to call kfree() if memdup_user_nul() fails, as no memory
> was allocated and the error in the error-valued pointer should be
> returned.

Nacked-by: "Eric W. Biederman" <ebied...@xmission.com>

This is stupid, unnecesary gratituous change that makes the maintenance
of the code worse.


>
> Signed-off-by: Sachin Shukla <sachin...@samsung.com>
> ---
>  kernel/user_namespace.c |   25 ++++++++++++++-----------
>  1 file changed, 14 insertions(+), 11 deletions(-)
>
> diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
> index 86b7854..a0ffbf0 100644
> --- a/kernel/user_namespace.c
> +++ b/kernel/user_namespace.c
> @@ -672,28 +672,31 @@ static ssize_t map_write(struct file *file, const char 
> __user *buf,
>        */
>       mutex_lock(&userns_state_mutex);
>  
> -     ret = -EPERM;
>       /* Only allow one successful write to the map */
> -     if (map->nr_extents != 0)
> -             goto out;
> +     if (map->nr_extents != 0) {
> +             mutex_unlock(&userns_state_mutex);
> +             return -EPERM;
> +     }
>  
>       /*
>        * Adjusting namespace settings requires capabilities on the target.
>        */
> -     if (cap_valid(cap_setid) && !file_ns_capable(file, ns, CAP_SYS_ADMIN))
> -             goto out;
> +     if (cap_valid(cap_setid) && !file_ns_capable(file, ns, CAP_SYS_ADMIN)) {
> +             mutex_unlock(&userns_state_mutex);
> +             return -EPERM;
> +     }
>  
>       /* Only allow < page size writes at the beginning of the file */
> -     ret = -EINVAL;
> -     if ((*ppos != 0) || (count >= PAGE_SIZE))
> -             goto out;
> +     if ((*ppos != 0) || (count >= PAGE_SIZE)) {
> +             mutex_unlock(&userns_state_mutex);
> +             return -EINVAL;
> +     }
>  
>       /* Slurp in the user data */
>       kbuf = memdup_user_nul(buf, count);
>       if (IS_ERR(kbuf)) {
> -             ret = PTR_ERR(kbuf);
> -             kbuf = NULL;
> -             goto out;
> +             mutex_unlock(&userns_state_mutex);
> +             return PTR_ERR(kbuf);
>       }
>  
>       /* Parse the user data */

Reply via email to