|
|
|
Re: please help me make reiser4 work with grsecurity | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
Edward Shishkin wrote:
On 11/09/2011 03:53 PM, Piotr Sawuk wrote:of course reiser4 wont be able to provide the root fs. there simply is no xattr support in reiser4. however, reiser4 doesn't even compile with grsecurity. of course, as with most filesystems which aren't part of the kernel, I got a .rej while applying reiser4 patch on grsecurity-patched linux-2.6.32.46, but that was quickly resolved, so I thought. the problem was include/linux/fs.h, the "struct super_operations" which got modified immensely by grsecurity. so I add the 2 functions writeback_inodes and sync_inodes inserted there by reiser4. during compilation another problem got apparent: PF_FLUSHER isn't defined in include/linux/sched.h, just like in "newer" kernels.Mainline folks got rid of this flag, since nobody uses it. Feel free to get it back.the problem I couldn't solve, as I hint above, has to do with super_operations. on my HLFS system I did do a 'make CC="gcc -fno-PIE -no-fatal-warnings"' and got init_super.c: in function 'reiser4_init_super_data': init_super.c:399:2: error: assignment of read-only member 'ops' init_super.c:400:2: error: assignment of read-only member 'ops' init_super.c:401:2: error: assignment of read-only member 'ops' and I have no idea how to solve this. I don't know c, I only know c++ and assembler, so I really am without a clue how const-assignment of objects gets handled in c. super_operations and others must get assigned to members of ops. but how? seems grsecurity changed the way how this is supposed to happen. please fetch linux-2.6.32.46 apply the stable patch on http://grsecurity.net and then reiser4 for 2.6.32, and explain how grsecurity affected reiser4.I'll try to take a look at weekends. If this takes a lot of time, then excuse me..
obviously it took a lot of time, or he forgot. sad that noone did help me so I had to solve this the brutal way: those 3 offending lines of reiser4_init_super_data() I replaced with
memcpy(&sbinfo->ops.super,&reiser4_super_operations,sizeof(struct super_operations)); memcpy(&sbinfo->ops.export,&reiser4_export_operations,sizeof(struct export_operations)); memcpy(&sbinfo->ops.dentry,&reiser4_dentry_operations,sizeof(struct dentry_operations));
which of course produces a warning (both arguments still are const pointer), but it works. I hope this (along with my hint to revert the removal of PF_FLUSHER to some earlier kernel) helps people who are capable of manual patch-merging to get reiser4 running on stable grsecurity, even without having much programming knowledge. more detailed instructions I'll only give when someone explains to me what the proper C-way should have been... P -- To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux BTRFS] [Linux NFS] [Linux Filesystems] [Ext4 Filesystem] [Kernel Newbies] [Share Photos] [Security] [Netfilter] [Bugtraq] [Photo] [Yosemite] [Yosemite Forum] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Samba] [Video 4 Linux] [Device Mapper] [Linux Resources]
![]() |