diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-08-21 12:32:01 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-08-21 12:32:01 -0700 |
| commit | af33c5a2a9fd52f07ffb428255b7f060da1de49d (patch) | |
| tree | ac99937cc7d0e451aeb2b9182dd7034aaca9470e /fs/ecryptfs/miscdev.c | |
| parent | 7199989f3f3194d653b024ce8e79cea6b15e38b9 (diff) | |
| parent | f81cb44f9a4b88d73ee5dec4a1ccdb0232fd2e3f (diff) | |
Merge tag 'ecryptfs-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
Pull eCryptfs updates from Tyler Hicks:
- Hardening and fixes for maliciously crafted eCryptfs metadata in the
lower encrypted file
- Hardening and fixes for maliciously crafted userspace <-> kernel
miscdev communications
- Locking fixes for userspace <-> kernel miscdev communications
- Fix to display encrypted filename related mount options
- Clean up address_space_operations and reduce build dependencies by
moving to filemap_dirty_folio()
- Get rid of an unnecessary memory allocation in the inode update path
- Kernel-doc formatting corrections
* tag 'ecryptfs-7.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
ecryptfs: ecryptfs_kernel.h: clean up kernel-doc comments
ecryptfs: use filemap_dirty_folio for address space operations
ecryptfs: avoid heap allocation for inode size write
ecryptfs: show filename encryption options
eCryptfs: bound the packet-length peek to the user buffer
ecryptfs: reject too-small tag 70 packets
ecryptfs: fix tag 11 packet exact-fit size check
ecryptfs: pass packet set buffer size to parser
ecryptfs: hold msg ctx list lock when cleaning daemon queue
ecryptfs: release message context on send failure
ecryptfs: reject oversized encrypted_key_size in parse_tag_3_packet
Diffstat (limited to 'fs/ecryptfs/miscdev.c')
| -rw-r--r-- | fs/ecryptfs/miscdev.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c index 5a7d08149922..68804399a5df 100644 --- a/fs/ecryptfs/miscdev.c +++ b/fs/ecryptfs/miscdev.c @@ -360,7 +360,7 @@ ecryptfs_miscdev_write(struct file *file, const char __user *buf, u32 seq; size_t packet_size, packet_size_length; char *data; - unsigned char packet_size_peek[ECRYPTFS_MAX_PKT_LEN_SIZE]; + unsigned char packet_size_peek[ECRYPTFS_MAX_PKT_LEN_SIZE] = { }; ssize_t rc; if (count == 0) { @@ -376,7 +376,8 @@ ecryptfs_miscdev_write(struct file *file, const char __user *buf, } if (copy_from_user(packet_size_peek, &buf[PKT_LEN_OFFSET], - sizeof(packet_size_peek))) { + min_t(size_t, count - PKT_LEN_OFFSET, + sizeof(packet_size_peek)))) { printk(KERN_WARNING "%s: Error while inspecting packet size\n", __func__); return -EFAULT; |
