linux/fs/ecryptfs
Ryusuke Konishi df06846416 eCryptfs: fix lookup error for special files
When ecryptfs_lookup() is called against special files, eCryptfs generates
the following errors because it tries to treat them like regular eCryptfs
files.

Error opening lower file for lower_dentry [0xffff810233a6f150], lower_mnt [0xffff810235bb4c80], and flags [0x8000]
Error opening lower_file to read header region
Error attempting to read the [user.ecryptfs] xattr from the lower file; return value = [-95]
Valid metadata not found in header region or xattr region; treating file as unencrypted

For instance, the problem can be reproduced by the steps below.

  # mkdir /root/crypt /mnt/crypt
  # mount -t ecryptfs /root/crypt /mnt/crypt
  # mknod /mnt/crypt/c0 c 0 0
  # umount /mnt/crypt
  # mount -t ecryptfs /root/crypt /mnt/crypt
  # ls -l /mnt/crypt

This patch fixes it by adding a check similar to directories and
symlinks.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Acked-by: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-08-22 19:52:44 -07:00
..
Makefile [PATCH] eCryptfs: Public key; packet management 2007-02-12 09:48:36 -08:00
crypto.c [PATCH] eCryptfs: open-code flag checking and manipulation 2007-02-12 09:48:37 -08:00
debug.c [PATCH] eCryptfs: open-code flag checking and manipulation 2007-02-12 09:48:37 -08:00
dentry.c [PATCH] eCryptfs: fix possible NULL ptr deref in ecryptfs_d_release() 2007-03-16 19:25:05 -07:00
ecryptfs_kernel.h eCryptfs: fix write zeros behavior 2007-06-28 11:34:53 -07:00
file.c sendfile: remove .sendfile from filesystems that use generic_file_sendfile() 2007-07-10 08:04:13 +02:00
inode.c eCryptfs: fix lookup error for special files 2007-08-22 19:52:44 -07:00
keystore.c [PATCH] eCryptfs: Reduce stack usage in ecryptfs_generate_key_packet_set() 2007-02-16 08:14:01 -08:00
main.c eCryptfs: fix error handling in ecryptfs_init 2007-08-11 15:47:40 -07:00
messaging.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
mmap.c fix some conversion overflows 2007-07-20 08:44:19 -07:00
netlink.c [NETLINK]: Switch cb_lock spinlock to mutex and allow to override it 2007-04-25 22:29:03 -07:00
super.c [PATCH] Mark struct super_operations const 2007-02-12 09:48:47 -08:00