Re: [PATCH] posix_acl: handle NULL ACL in posix_acl_equiv_mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On May 4, 2014, at 7:03 AM, Christoph Hellwig <hch@xxxxxx> wrote:

> Various filesystems don't bother checking for a NULL ACL in
> posix_acl_equiv_mode, and thus can dereference a NULL pointer when it
> gets passed one. This usually happens from the NFS server, as the ACL tools
> never pass a NULL ACL, but instead of one representing the mode bits.
> 
> Instead of adding boilerplat to all filesystems put this check into one place,
> which will allow us to remove the check from other filesystems as well later
> on.
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> Reported-by: Ben Greear <greearb@xxxxxxxxxxxxxxx>
> Reported-by: Marco Munderloh <munderl@xxxxxxxxxxxxxxxxxxx>,
> Cc: Chuck Lever <chuck.lever@xxxxxxxxxx>

Good clean-up.

Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx>


> Cc: stable@xxxxxxxxxxxxxxx
> ---
> fs/posix_acl.c |    6 ++++++
> 1 file changed, 6 insertions(+)
> 
> diff --git a/fs/posix_acl.c b/fs/posix_acl.c
> index 9e363e4..0855f77 100644
> --- a/fs/posix_acl.c
> +++ b/fs/posix_acl.c
> @@ -246,6 +246,12 @@ posix_acl_equiv_mode(const struct posix_acl *acl, umode_t *mode_p)
> 	umode_t mode = 0;
> 	int not_equiv = 0;
> 
> +	/*
> +	 * A null ACL can always be presented as mode bits.
> +	 */
> +	if (!acl)
> +		return 0;
> +
> 	FOREACH_ACL_ENTRY(pa, acl, pe) {
> 		switch (pa->e_tag) {
> 			case ACL_USER_OBJ:
> -- 
> 1.7.10.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com



--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]