nuttx/fs
yi chen b9c9c238e8 fs/romfs: reject negative resulting position in romfs_seek()
romfs_seek() clamps the computed position to the file size when it
exceeds rf_size, but never checks for a negative result. lseek(fd,
offset, SEEK_SET/SEEK_CUR/SEEK_END) with an offset that produces a
negative position (e.g. a negative SEEK_SET offset, or a SEEK_CUR/
SEEK_END offset more negative than the current position/file size)
is written straight into filep->f_pos.

The subsequent romfs_read() computes
`rf->rf_startoffset + filep->f_pos` into a uint32_t, so a negative
f_pos wraps around to a huge unsigned offset, and romfs_hwread()'s
XIP path memcpy()s from rm_xipbase plus that offset -- an
out-of-bounds read far past the mapped flash region.

Add the same "if (position < 0) return -EINVAL" guard already used
by fs/fat/fs_fat32.c's seek function, before the existing
end-of-file clamp.

Signed-off-by: yi chen <94xhn1@gmail.com>
Assisted-by: Claude:claude-sonnet-5
2026-08-21 02:20:33 +08:00
..
aio !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
binfs sched,fs,docs: support setuid sudo helper 2026-08-18 15:57:52 +08:00
cromfs fs/cromfs: Fix stale cache read in read() fast path. 2026-08-12 12:12:46 -03:00
driver libs/libc: Fix divide-by-zero in stat() with large filesystem block sizes 2026-07-16 23:37:22 +08:00
event fs/event/open: fix the inode information update outside of lock 2026-01-28 10:03:06 +08:00
fat fs/fat: Restore the no-short-name marker when the name will not shorten. 2026-08-08 10:05:43 +02:00
hostfs fs/hostfs: Use configured path length 2026-07-23 15:34:02 +08:00
inode fs: resolve a trailing lone '.' path component 2026-08-14 10:20:52 +08:00
littlefs cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR) 2026-08-09 11:13:08 -03:00
mmap !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
mnemofs fs/mnemofs: Add mnemofs version 1 support. 2026-05-19 10:29:11 +08:00
mount fs: enforce path search and unify inode permission helpers 2026-08-02 18:48:40 -03:00
mqueue fs: enforce permission checks when opening IPC pseudo-inodes 2026-07-30 09:48:10 +08:00
nfs !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
nxffs fs/vfs: Add ioctldir for volume ioctls via the mountpoint directory. 2026-07-25 07:28:22 -03:00
partition fs/partition: bound TXTABLE partition names 2026-07-06 07:51:46 +02:00
procfs fs/procfs: fix incorrect environ read for another task under CONFIG_ARCH_ADDRENV 2026-07-11 12:43:10 -03:00
romfs fs/romfs: reject negative resulting position in romfs_seek() 2026-08-21 02:20:33 +08:00
rpmsgfs !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
semaphore fs: enforce permission checks when opening IPC pseudo-inodes 2026-07-30 09:48:10 +08:00
shm fs/shm: Add a flag FS_SHMFS_NO_ALIGN to remove SHM alignment 2026-08-18 09:45:40 +02:00
smartfs !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
socket include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
spiffs !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
tmpfs fs: enforce path search and unify inode permission helpers 2026-08-02 18:48:40 -03:00
unionfs include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
userfs include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
v9fs include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
vfs fs/vfs/fs_read.c: Allow NULL iov_base when CONFIG_ARCH_TEXT_VBASE == 0 2026-08-16 16:19:23 -03:00
xipfs fs/xipfs: Add a contiguous execute-in-place file system. 2026-07-29 07:49:03 -03:00
zipfs
CMakeLists.txt
fs_heap.c mm/mm_heap: use struct mm_heap_config_s to init the memory heap 2026-01-19 14:18:27 +08:00
fs_heap.h fs_heap:add fs_heap_mallinfo_task 2025-01-15 17:12:50 +08:00
fs_initialize.c fs: Move inotify.c from fs/notify/ to fs/vfs/ 2025-06-23 18:17:10 -03:00
Kconfig fs/xipfs: Add a contiguous execute-in-place file system. 2026-07-29 07:49:03 -03:00
Makefile fs/xipfs: Add a contiguous execute-in-place file system. 2026-07-29 07:49:03 -03:00