From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lithops.sigma-star.at ([195.201.40.130]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1faFeS-0002qd-Re for linux-mtd@lists.infradead.org; Tue, 03 Jul 2018 07:23:06 +0000 From: Richard Weinberger To: xiaolei li Cc: leqiao.peng@valeo.com, casey@schaufler-ca.com, linux-mtd@lists.infradead.org Subject: Re: UBIFS assert when create new sub-dir under a transmute enabled dir with Smack enabled Date: Tue, 03 Jul 2018 09:22:52 +0200 Message-ID: <3818822.lxJep7IjOv@blindfold> In-Reply-To: <1530597947.10234.6.camel@mhfsdcap03> References: <1529571876.14673.77.camel@mhfsdcap03> <4639941.AxKdOeJuIX@blindfold> <1530597947.10234.6.camel@mhfsdcap03> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Am Dienstag, 3. Juli 2018, 08:05:47 CEST schrieb xiaolei li: > Hi, Richard, > > On Sun, 2018-07-01 at 10:23 +0200, Richard Weinberger wrote: > > Xiaolei Li, > > > > Am Donnerstag, 21. Juni 2018, 11:04:36 CEST schrieb xiaolei li: > > > Hi Richard, > > > > > > I ever committed one patch[1] to fix ubifs assert in ubifs_xattr_set() > > > if Smack is enabled. > > > > Ohh, that patch was missed. Sorry for that. > > > > > It almost always runs OK except "creating new sub-dir under a transmute > > > enabled dir" which is found by Mr.Leqiao Peng. For this special case, > > > there still has ubifs assert problem. > > > > > > With patch[1], this problem can be reproduced by these steps ( assume > > > that the Smack has been enabled and the Smack userspace tool also > > > installed ): > > > 1). Add new smack rule in which the "aaa" for process object, "bbb" for > > > file or directory object. "xwt" for the permission "execute, write and > > > transmute" > > > > > > echo "aaa bbb xwt" | smackload > > > > > > 2). Apply the label "aaa" to current sh process. Verify the effect by > > > "ps -Z" > > > > > > echo aaa > /proc/self/attr/current > > > > > > 3) Create a directory "test_dir" and assign the "bbb" label and enable > > > the transmute feature upon the new directory. > > > Verify this by "chsmack test_dir". > > > > > > mkdir test_dir > > > chsmack -a "bbb" -t test_dir > > > > > > 4) Create a new directory "newDir" under the "test_dir". > > > > > > mkdir test_dir/newDir > > > > > > > > > Then, ubifs assert happens, and the stack trace is: > > > > > > UBIFS assert failed in __ubifs_setxattr at 284 (pid 4041) > > > CPU: 2 PID: 4041 Comm: mkdir Tainted: G S W 4.9.90 #1 > > > Call trace: > > > [] dump_backtrace+0x0/0x1d8 > > > [] show_stack+0x24/0x30 > > > [] dump_stack+0x94/0xb8 > > > [] __ubifs_setxattr+0x358/0x5f8 > > > [] ubifs_xattr_set+0x64/0x3d0 > > > [] __vfs_setxattr+0x7c/0x98 > > > [] smack_d_instantiate+0x304/0x350 > > > [] security_d_instantiate+0x4c/0x78 > > > [] d_instantiate+0x3c/0x70 > > > [] ubifs_mkdir+0x1d8/0x1e0 > > > [] vfs_mkdir2+0x128/0x1b0 > > > [] SyS_mkdirat+0x80/0xf0 > > > [] __sys_trace_return+0x0/0x4 > > > > > > Mr. Schaufler (original developer of SMACK) has analyzed the possible > > > root cause: > > > "I have confirmed this behavior. The issue is that the inode isn't > > > locked during inode instantiation. It doesn't need to be, because until > > > instatiation is complete the inode doesn't really exist and isn't > > > accessible to any other task. The assertion in the ubifs code is not > > > appropriate. I suggest that you contact the ubifs maintainers. > > > Please CC me, and I will answer any questions they may have. Thank you > > > for the report." > > > > Yeah, this is the same case as with encrypted files. The assert makes > > no sense here. Thanks for reporting! > > > > Does your patch from 2017 still apply and work? > > My patch is applied, but can not resolve the problem here. > > The root cause is that the inode isn't locked during inode instantiation > (from Mr.Schaufler), but we check whether inode is locked in > xattr_set. Care to send a massaged patch for this? Thanks, //richard