On Wed, May 13, 2015 at 10:29:42PM -0500, Eric Sandeen wrote: > This function in xfs_repair tries to make sure that if an attr > name reserved for acls exists in the root namespace, then its > value is a valid acl. > > However, because it only compares up to the length of the > reserved name, superstrings may match and cause false positive > xfs_repair errors. > > Ensure that both the length and the content match before > flagging it as an error. > > Spotted-by: Zach Brown <zab@xxxxxxxxx> > Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> > --- Looks good: Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> So it looks like master doesn't have the sizeof(unsigned char *) problem and the 4.1 update branch does, so we want to make sure that kernel fix makes it into the latter... > > diff --git a/repair/attr_repair.c b/repair/attr_repair.c > index 27442c4..89a5bbf 100644 > --- a/repair/attr_repair.c > +++ b/repair/attr_repair.c > @@ -747,9 +747,10 @@ valuecheck( > void *valuep; > int clearit = 0; > > - if ((strncmp(namevalue, SGI_ACL_FILE, SGI_ACL_FILE_SIZE) == 0) || > - (strncmp(namevalue, SGI_ACL_DEFAULT, > - SGI_ACL_DEFAULT_SIZE) == 0)) { > + if ((namelen == SGI_ACL_FILE_SIZE && > + strncmp(namevalue, SGI_ACL_FILE, SGI_ACL_FILE_SIZE) == 0) || > + (namelen == SGI_ACL_DEFAULT_SIZE && > + strncmp(namevalue, SGI_ACL_DEFAULT, SGI_ACL_DEFAULT_SIZE) == 0)) { > if (value == NULL) { > valuep = malloc(valuelen); > if (!valuep) > > _______________________________________________ > xfs mailing list > xfs@xxxxxxxxxxx > http://oss.sgi.com/mailman/listinfo/xfs _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs