* [Cluster-devel] 3.18.5 kernel panic: fs/gfs2/acl.c:76
@ 2015-02-06 21:15 Andrew W Elble
2015-02-06 23:50 ` Andreas Gruenbacher
0 siblings, 1 reply; 4+ messages in thread
From: Andrew W Elble @ 2015-02-06 21:15 UTC (permalink / raw)
To: cluster-devel.redhat.com
3.18.5 kernel crashing on acl deletion:
null pointer dereference in fs/gfs2/acl.c:76
to replicate:
Prereq: gfs2 filesystem w/ acl mount option turned on.
Execute:
mkdir testdir
setfacl -m d:u::rwx,d:g::rwx,d:g:wheel:rwx,d:m::rwx,d:o::--- testdir
setfattr -x system.posix_acl_default testdir
fix we're using currently:
---
fs/gfs2/acl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/gfs2/acl.c b/fs/gfs2/acl.c
index 3088e2a..8339754 100644
--- a/fs/gfs2/acl.c
+++ b/fs/gfs2/acl.c
@@ -73,7 +73,7 @@ int gfs2_set_acl(struct inode *inode, struct posix_acl *acl, int type)
BUG_ON(name == NULL);
- if (acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode)))
+ if ((acl) && (acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode))))
return -E2BIG;
if (type == ACL_TYPE_ACCESS) {
--
1.9.2
Thanks,
Andy
--
Andrew W. Elble
aweits at discipline.rit.edu
Infrastructure Engineer, Communications Technical Lead
Rochester Institute of Technology
PGP: BFAD 8461 4CCF DC95 DA2C B0EB 965B 082E 863E C912
^ permalink raw reply related [flat|nested] 4+ messages in thread* [Cluster-devel] 3.18.5 kernel panic: fs/gfs2/acl.c:76
2015-02-06 21:15 [Cluster-devel] 3.18.5 kernel panic: fs/gfs2/acl.c:76 Andrew W Elble
@ 2015-02-06 23:50 ` Andreas Gruenbacher
2015-02-09 10:45 ` Andrew Price
0 siblings, 1 reply; 4+ messages in thread
From: Andreas Gruenbacher @ 2015-02-06 23:50 UTC (permalink / raw)
To: cluster-devel.redhat.com
Andrew,
> 3.18.5 kernel crashing on acl deletion:
>
> null pointer dereference in fs/gfs2/acl.c:76
this bug seems to exist since commit 2646a1f6 from October 2009.
> fix we're using currently:
>
> ---
> fs/gfs2/acl.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/gfs2/acl.c b/fs/gfs2/acl.c
> index 3088e2a..8339754 100644
> --- a/fs/gfs2/acl.c
> +++ b/fs/gfs2/acl.c
> @@ -73,7 +73,7 @@ int gfs2_set_acl(struct inode *inode, struct posix_acl
> *acl, int type)
>
> BUG_ON(name == NULL);
>
> - if (acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode)))
> + if ((acl) && (acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode))))
> return -E2BIG;
>
> if (type == ACL_TYPE_ACCESS) {
Except for the extra parentheses this seems correct, thank you.
Andreas
^ permalink raw reply [flat|nested] 4+ messages in thread* [Cluster-devel] 3.18.5 kernel panic: fs/gfs2/acl.c:76
2015-02-06 23:50 ` Andreas Gruenbacher
@ 2015-02-09 10:45 ` Andrew Price
2015-02-09 14:17 ` Bob Peterson
0 siblings, 1 reply; 4+ messages in thread
From: Andrew Price @ 2015-02-09 10:45 UTC (permalink / raw)
To: cluster-devel.redhat.com
On 06/02/15 23:50, Andreas Gruenbacher wrote:
> Andrew,
>
>> 3.18.5 kernel crashing on acl deletion:
>>
>> null pointer dereference in fs/gfs2/acl.c:76
>
> this bug seems to exist since commit 2646a1f6 from October 2009.
The if-statement originates in 2646a1f6 but the bug was introduced by
the deletion of a NULL check in e01580bf9e which was in December 2013.
>> fix we're using currently:
>>
>> ---
>> fs/gfs2/acl.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/fs/gfs2/acl.c b/fs/gfs2/acl.c
>> index 3088e2a..8339754 100644
>> --- a/fs/gfs2/acl.c
>> +++ b/fs/gfs2/acl.c
>> @@ -73,7 +73,7 @@ int gfs2_set_acl(struct inode *inode, struct posix_acl
>> *acl, int type)
>>
>> BUG_ON(name == NULL);
>>
>> - if (acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode)))
>> + if ((acl) && (acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode))))
>> return -E2BIG;
>>
>> if (type == ACL_TYPE_ACCESS) {
>
> Except for the extra parentheses this seems correct, thank you.
Agreed. Good catch.
Thanks,
Andy
^ permalink raw reply [flat|nested] 4+ messages in thread* [Cluster-devel] 3.18.5 kernel panic: fs/gfs2/acl.c:76
2015-02-09 10:45 ` Andrew Price
@ 2015-02-09 14:17 ` Bob Peterson
0 siblings, 0 replies; 4+ messages in thread
From: Bob Peterson @ 2015-02-09 14:17 UTC (permalink / raw)
To: cluster-devel.redhat.com
----- Original Message -----
> On 06/02/15 23:50, Andreas Gruenbacher wrote:
> > Andrew,
> >
> >> 3.18.5 kernel crashing on acl deletion:
> >>
> >> null pointer dereference in fs/gfs2/acl.c:76
> >
> > this bug seems to exist since commit 2646a1f6 from October 2009.
>
> The if-statement originates in 2646a1f6 but the bug was introduced by
> the deletion of a NULL check in e01580bf9e which was in December 2013.
>
> >> fix we're using currently:
> >>
> >> ---
> >> fs/gfs2/acl.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/fs/gfs2/acl.c b/fs/gfs2/acl.c
> >> index 3088e2a..8339754 100644
> >> --- a/fs/gfs2/acl.c
> >> +++ b/fs/gfs2/acl.c
> >> @@ -73,7 +73,7 @@ int gfs2_set_acl(struct inode *inode, struct posix_acl
> >> *acl, int type)
> >>
> >> BUG_ON(name == NULL);
> >>
> >> - if (acl->a_count > GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode)))
> >> + if ((acl) && (acl->a_count >
> >> GFS2_ACL_MAX_ENTRIES(GFS2_SB(inode))))
> >> return -E2BIG;
> >>
> >> if (type == ACL_TYPE_ACCESS) {
> >
> > Except for the extra parentheses this seems correct, thank you.
>
> Agreed. Good catch.
>
> Thanks,
> Andy
Hi,
Christoph's patch, which introduced the problem, was never ported to RHEL7, so
let's just treat this as an upstream bug.
Andreas: I think maybe you should post your acl patch separately.
Andrew Elble:
I don't think we even need a bugzilla for this one. Do you want to just
post your latest patch (with fewer parentheses) to cluster-devel at redhat.com
so Steve Whitehouse can pick it up in the GFS2 nmw git tree? Then you can
get the credit.
Regards,
Bob Peterson
Red Hat File Systems
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-02-09 14:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-06 21:15 [Cluster-devel] 3.18.5 kernel panic: fs/gfs2/acl.c:76 Andrew W Elble
2015-02-06 23:50 ` Andreas Gruenbacher
2015-02-09 10:45 ` Andrew Price
2015-02-09 14:17 ` Bob Peterson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.