Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Nov 2010 18:51:47 -0600
From:      "James R. Van Artsdalen" <james-freebsd-fs2@jrv.org>
To:        =?ISO-8859-2?Q?Edward_Tomasz_Napiera=B3a?= <trasz@freebsd.org>
Cc:        freebsd-fs <freebsd-fs@freebsd.org>
Subject:   Re: ZFS panic: empty ZFS ACL
Message-ID:  <4CF2F923.1050104@jrv.org>
In-Reply-To: <7A3D90B8-EEC0-4FC2-9744-C58379709901@FreeBSD.org>
References:  <4CF26B15.6090009@jrv.org> <7A3D90B8-EEC0-4FC2-9744-C58379709901@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Edward Tomasz Napiera=B3a wrote:
> Could you try the patch below?
>
> Index: sys/cddl/compat/opensolaris/kern/opensolaris_acl.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- sys/cddl/compat/opensolaris/kern/opensolaris_acl.c  (revision 21555=
3)
> +++ sys/cddl/compat/opensolaris/kern/opensolaris_acl.c  (working copy)
> @@ -105,7 +105,10 @@
>         struct acl_entry *entry;
>         const ace_t *ace;
> =20
> -       KASSERT(nentries >=3D 1, ("empty ZFS ACL"));
> +       if (nentries < 1) {
> +               printf("acl_from_aces: empty ZFS ACL; returning EINVAL.=
\n");
> +               return (EINVAL);
> +       }
> =20
>         if (nentries > ACL_MAX_ENTRIES) {
>                 /*
>
> --
> If you cut off my head, what would I say?  Me and my head, or me and my=
 body?
>  =20


The patch prevents the panic but EINVAL propagates back up to the
application in an undesirable way:

kraken:/root# ls -ld /STUFF/fearhome/Backups
ls: /STUFF/fearhome/Backups: Invalid argument
drwxr-xr-x  9 james  james  10 Oct 17  2007 /STUFF/fearhome/Backups
kraken:/root#




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CF2F923.1050104>