On Fri, Feb 26, 2016 at 03:31:46PM -0300, Gustavo Padovan wrote:
> +no_fences:
> +     info->num_fences = sync_file->num_fences;
>  
> -     if (copy_to_user((void __user *)arg, info, len))
> +     if (copy_to_user((void __user *)arg, info, sizeof(*info)))
>               ret = -EFAULT;
>       else
>               ret = 0;

We need to kfree(fence_info) here.

> diff --git a/drivers/staging/android/uapi/sync.h 
> b/drivers/staging/android/uapi/sync.h
> index f0b41ce..9aad623 100644
> --- a/drivers/staging/android/uapi/sync.h
> +++ b/drivers/staging/android/uapi/sync.h
> @@ -42,21 +42,20 @@ struct sync_fence_info {
>  
>  /**
>   * struct sync_file_info - data returned from fence info ioctl
> - * @len:     ioctl caller writes the size of the buffer its passing in.
> - *           ioctl returns length of sync_file_info returned to
> - *           userspace including pt_info.
>   * @name:    name of fence
>   * @status:  status of fence. 1: signaled 0:active <0:error
>   * @num_fences       number of fences in the sync_file
> + * @len:     ioctl caller writes the size of the buffer its passing in.
> + *           ioctl returns length of all fence_infos summed.
>   * @sync_fence_info: array of sync_fence_info for every fence in the 
> sync_file

The documentation needs updating.

>   */
>  struct sync_file_info {
> -     __u32   len;
>       char    name[32];
>       __s32   status;
>       __u32   num_fences;
> +     __u32   len;
>  
> -     __u8    sync_fence_info[0];
> +     __u64   sync_fence_info;
>  };


regards,
dan carpenter

Reply via email to