On May 4, 2014, at 7:03 AM, Christoph Hellwig <[email protected]> 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 <[email protected]> > Reported-by: Ben Greear <[email protected]> > Reported-by: Marco Munderloh <[email protected]>, > Cc: Chuck Lever <[email protected]>
Good clean-up. Reviewed-by: Chuck Lever <[email protected]> > Cc: [email protected] > --- > 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 [email protected] > 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 [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
