lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 27 Jul 2006 03:03:42 +0200 From: Arnd Bergmann <arnd.bergmann@...ibm.com> To: Heiko Carstens <heiko.carstens@...ibm.com> Cc: linux-kernel@...r.kernel.org, Martin Schwidefsky <schwidefsky@...ibm.com> Subject: Re: [patch/rfc] s390: get rid of own uid16 compat system calls On Monday 10 July 2006 10:51, Heiko Carstens wrote: > "Only" thing is that we unfortunately have different sizes for > __kernel_old_[uid|gid]_t (16 bit on s390, 32 on s390x). I was tempted to > change these just to find out that there are other users as well: > > include/linux/ncp_fs.h: > #define NCP_IOC_GETMOUNTUID _IOW('n', 2, __kernel_old_uid_t) > include/linux/smb_fs.h: > #define SMB_IOC_GETMOUNTUID _IOR('u', 1, __kernel_old_uid_t) > > So, this is no option. Would anybody know of something to get this work? > Or is this just a stupid idea? Ok, I don't know exactly what you're talking about, but I have in the past tried to hack that area as well. It's probably a good idea to pick up my old patch and work from there, by making these two file systems understand all possible ways: #ifdef __KERNEL__ /* anything the user may be passing to us */ #define NCP_IOC_GETMOUNTUID16 _IOW('n', 2, u16) #define NCP_IOC_GETMOUNTUID32 _IOW('n', 2, u32) #define NCP_IOC_GETMOUNTUID64 _IOW('n', 2, u64) #else /* what the user is _supposed_ to pass */ #define NCP_IOC_GETMOUNTUID _IOW('n', 2, __kernel_old_uid_t) /* 16/32 bit */ #define NCP_IOC_GETMOUNTUID2 _IOW('n', 2, unsigned long) /* 32 or 64 bit */ #endif int ncp_ioctl(struct inode *inode, struct file *filp, ...) { ... switch (arg) { ... case NCP_IOC_GETMOUNTUID16: case NCP_IOC_GETMOUNTUID32: case NCP_IOC_GETMOUNTUID64: { unsigned long tmp = server->m.mounted_uid; if ((file_permission(filp, MAY_READ) != 0) && (current->uid != server->m.mounted_uid)) { return -EACCES; } switch (arg) { #ifdef CONFIG_UID16 case NCP_IOC_GETMOUNTUID16: SET_UID(tmp, server->m.mounted_uid); if (put_user(tmp, (u16 __user *)argp)) return -EFAULT; #endif case NCP_IOC_GETMOUNTUID32: if (put_user(tmp, (u32 __user *)argp)) return -EFAULT; #ifdef CONFIG_64BIT case NCP_IOC_GETMOUNTUID64: if (put_user(tmp, (u64 __user *)argp)) return -EFAULT; } #endif return 0; } } ... } I'm also posting the two patches I made a long time ago as a reference. Arnd <>< - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists