Alex Henrie
2c1f840469
isofs: handle CDs with bad root inode but good Joliet root directory
...
[ Upstream commit 4243bf80c79211a8ca2795401add9c4a3b1d37ca ]
I have a CD copy of the original Tom Clancy's Ghost Recon game from
2001. The disc mounts without error on Windows, but on Linux mounting
fails with the message "isofs_fill_super: get root inode failed". The
error originates in isofs_read_inode, which returns -EIO because de_len
is 0. The superblock on this disc appears to be intentionally corrupt as
a form of copy protection.
When the root inode is unusable, instead of giving up immediately, try
to continue with the Joliet file table. This fixes the Ghost Recon CD
and probably other copy-protected CDs too.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Message-Id: <20240208022134.451490-1-alexhenrie24@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-04-13 12:51:38 +02:00
..
9p
9p: missing chunk of "fs/9p: Don't update file type when updating file attributes"
2022-06-22 14:11:02 +02:00
adfs
affs
affs: initialize fsdata in affs_truncate()
2023-02-06 07:52:36 +01:00
afs
afs: Revert "afs: Hide silly-rename files from userspace"
2024-03-26 18:22:24 -04:00
autofs
autofs: fix memory leak of waitqueues in autofs_catatonic_mode
2023-09-23 11:00:02 +02:00
befs
bfs
btrfs
btrfs: send: handle path ref underflow in header iterate_inode_ref()
2024-04-13 12:51:38 +02:00
cachefiles
cachefiles: fix memory leak in cachefiles_add_cache()
2024-03-06 14:36:10 +00:00
ceph
ceph: fix deadlock or deadcode of misusing dget()
2024-02-23 08:25:03 +01:00
cifs
smb: client: fix OOB in smbCalcSize()
2024-01-08 11:29:47 +01:00
coda
coda: Avoid partial allocation of sig_inputArgs
2023-03-11 16:43:56 +01:00
configfs
configfs: fix possible memory leak in configfs_create_dir()
2023-01-18 11:41:09 +01:00
cramfs
crypto
fscrypt: add fscrypt_symlink_getattr() for computing st_size
2021-09-12 08:56:38 +02:00
debugfs
new helper: lookup_positive_unlocked()
2023-09-23 10:59:40 +02:00
devpts
fsnotify: fix fsnotify hooks in pseudo filesystems
2022-02-01 17:24:34 +01:00
dlm
dlm: fix plock lookup when using multiple lockspaces
2023-09-23 10:59:55 +02:00
ecryptfs
ecryptfs: Reject casefold directory inodes
2024-02-23 08:24:56 +01:00
efivarfs
efs
erofs
erofs: ensure that the post-EOF tails are all zeroed
2023-09-23 10:59:36 +02:00
exportfs
ext2
ext2: fix datatype of block number in ext2_xattr_set2()
2023-09-23 11:00:04 +02:00
ext4
ext4: fix corruption during on-line resize
2024-04-13 12:51:26 +02:00
f2fs
f2fs: fix to check return value of f2fs_reserve_new_block()
2024-02-23 08:25:00 +01:00
fat
fat: fix uninitialized field in nostale filehandles
2024-04-13 12:51:23 +02:00
freevxfs
fscache
fscache: Fix cookie key hashing
2021-09-22 12:26:25 +02:00
fuse
fuse: don't unhash root
2024-04-13 12:51:25 +02:00
gfs2
gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
2024-01-25 14:34:24 -08:00
hfs
hfs: fix missing hfs_bnode_get() in __hfs_bnode_create
2023-03-11 16:43:59 +01:00
hfsplus
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
hostfs
hpfs
hugetlbfs
fs,hugetlb: fix NULL pointer dereference in hugetlbs_fill_super
2024-03-06 14:36:10 +00:00
iomap
iomap: Set all uptodate bits for an Uptodate page
2024-03-01 13:13:35 +01:00
isofs
isofs: handle CDs with bad root inode but good Joliet root directory
2024-04-13 12:51:38 +02:00
jbd2
jbd2: correct the printing of write_flags in jbd2_write_superblock()
2024-01-25 14:34:20 -08:00
jffs2
jffs2: reduce stack usage in jffs2_build_xattr_subsystem()
2023-07-27 08:37:25 +02:00
jfs
jfs: fix array-index-out-of-bounds in diNewExt
2024-02-23 08:24:55 +01:00
kernfs
fs/kernfs/dir: obey S_ISGID
2024-02-23 08:25:03 +01:00
lockd
fs: lockd: avoid possible wrong NULL parameter
2023-09-23 10:59:48 +02:00
minix
minix: fix bug when opening a file with O_DIRECT
2022-04-15 14:18:35 +02:00
nfs
NFS: Fix an off by one in root_nfs_cat()
2024-03-26 18:22:24 -04:00
nfs_common
nfsd
nfsd: fix file memleak on client_opens_release
2023-11-28 16:50:21 +00:00
nilfs2
nilfs2: prevent kernel bug at submit_bh_wbc()
2024-04-13 12:51:28 +02:00
nls
fs/nls: make load_nls() take a const parameter
2023-09-23 10:59:38 +02:00
notify
fanotify: disallow mount/sb marks on kernel internal pseudo fs
2023-07-27 08:37:26 +02:00
ntfs
ntfs: check overflow when iterating ATTR_RECORDs
2022-11-25 17:42:22 +01:00
ocfs2
fs: move S_ISGID stripping into the vfs_*() helpers
2024-02-23 08:24:49 +01:00
omfs
treewide: Remove uninitialized_var() usage
2023-06-09 10:29:01 +02:00
openpromfs
orangefs
orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init()
2023-01-18 11:41:39 +01:00
overlayfs
ovl: skip overlayfs superblocks at global sync
2023-12-08 08:44:27 +01:00
proc
procfs: block chmod on /proc/thread-self/comm
2023-09-23 10:59:55 +02:00
pstore
pstore/ram: Fix crash when setting number of cpus to an odd number
2024-02-23 08:24:55 +01:00
qnx4
qnx4: work around gcc false positive warning bug
2021-09-30 10:09:26 +02:00
qnx6
quota
quota: Fix rcu annotations of inode dquot pointers
2024-03-26 18:22:20 -04:00
ramfs
reiserfs
reiserfs: Check the return value from __getblk()
2023-09-23 10:59:40 +02:00
romfs
squashfs
revert "squashfs: harden sanity check in squashfs_read_xattr_id_table"
2023-02-22 12:50:39 +01:00
sysfs
sysv
sysv: don't call sb_bread() with pointers_lock held
2024-04-13 12:51:38 +02:00
tracefs
tracefs: Add missing lockdown check to tracefs_create_dir()
2023-09-23 11:00:06 +02:00
ubifs
ubifs: Set page uptodate in the correct place
2024-04-13 12:51:23 +02:00
udf
udf: initialize newblock to 0
2023-09-23 10:59:56 +02:00
ufs
unicode
verity
fsverity: skip PKCS#7 parser when keyring is empty
2023-09-23 10:59:55 +02:00
xfs
xfs: verify buffer contents when we skip log replay
2023-06-28 10:18:42 +02:00
aio.c
fs/aio: Check IOCB_AIO_RW before the struct aio_kiocb conversion
2024-04-13 12:51:29 +02:00
anon_inodes.c
attr.c
attr: block mode changes of symlinks
2023-09-23 11:00:06 +02:00
bad_inode.c
binfmt_aout.c
binfmt: Move install_exec_creds after setup_new_exec to match binfmt_elf
2023-01-18 11:41:46 +01:00
binfmt_elf.c
elf: don't use MAP_FIXED_NOREPLACE for elf interpreter mappings
2021-10-06 15:42:35 +02:00
binfmt_elf_fdpic.c
fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
2023-10-10 21:46:42 +02:00
binfmt_em86.c
binfmt_flat.c
binfmt: Move install_exec_creds after setup_new_exec to match binfmt_elf
2023-01-18 11:41:46 +01:00
binfmt_misc.c
binfmt_misc: fix shift-out-of-bounds in check_special_flags
2023-01-18 11:41:33 +01:00
binfmt_script.c
block_dev.c
block: Don't invalidate pagecache for invalid falloc modes
2024-01-08 11:29:48 +01:00
buffer.c
mm: fs: initialize fsdata passed to write_begin/write_end interface
2022-11-25 17:42:22 +01:00
char_dev.c
chardev: fix error handling in cdev_device_add()
2023-01-18 11:41:25 +01:00
compat.c
compat_binfmt_elf.c
compat_ioctl.c
lsm: new security_file_ioctl_compat() hook
2024-02-23 08:25:15 +01:00
coredump.c
d_path.c
dax.c
dax: fix cache flush on PMD-mapped pages
2022-06-14 18:11:41 +02:00
dcache.c
fast_dput(): handle underflows gracefully
2024-02-23 08:25:00 +01:00
dcookies.c
direct-io.c
drop_caches.c
eventfd.c
eventfd: prevent underflow for eventfd semaphores
2023-09-23 10:59:40 +02:00
eventpoll.c
epoll: ep_autoremove_wake_function should use list_del_init_careful
2023-06-28 10:18:35 +02:00
exec.c
exec: Fix NOMMU linux_binprm::exec in transfer_args_to_stack()
2024-04-13 12:51:31 +02:00
fcntl.c
fcntl: fix potential deadlock for &fasync_struct.fa_lock
2021-09-15 09:47:28 +02:00
fhandle.c
do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
2024-03-26 18:22:13 -04:00
file.c
fs: prevent out-of-bounds array speculation when closing a file descriptor
2023-03-17 08:32:47 +01:00
file_table.c
SUNRPC: Ensure we flush any closed sockets before xs_xprt_free()
2022-05-25 09:14:34 +02:00
filesystems.c
fs-writeback.c
writeback: fix call of incorrect macro
2023-05-17 11:35:58 +02:00
fs_context.c
fs: avoid empty option when generating legacy mount string
2023-07-27 08:37:25 +02:00
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fsopen.c
inode.c
fs: move S_ISGID stripping into the vfs_*() helpers
2024-02-23 08:24:49 +01:00
internal.h
fs: Establish locking order for unrelated directories
2023-07-27 08:37:26 +02:00
io_uring.c
io_uring: drop any code related to SCM_RIGHTS
2024-03-26 18:22:12 -04:00
ioctl.c
Kconfig
Kconfig.binfmt
libfs.c
libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value
2023-01-18 11:40:55 +01:00
locks.c
locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock
2023-09-23 11:00:02 +02:00
Makefile
mbcache.c
mbcache: Avoid nesting of cache->c_list_lock under bit locks
2023-01-18 11:41:59 +01:00
mount.h
mpage.c
namei.c
fs: move S_ISGID stripping into the vfs_*() helpers
2024-02-23 08:24:49 +01:00
namespace.c
fs: warn about impending deprecation of mandatory locks
2021-08-26 08:36:22 -04:00
no-block.c
nsfs.c
open.c
fs: add a vfs_fchmod helper
2024-04-13 12:51:35 +02:00
pipe.c
pipe: increase minimum default pipe size to 2 pages
2021-08-12 13:21:02 +02:00
pnode.c
pnode: terminate at peers of source
2023-01-18 11:41:44 +01:00
pnode.h
posix_acl.c
proc_namespace.c
read_write.c
readdir.c
select.c
fs/select: rework stack allocation hack for clang
2024-03-26 18:22:13 -04:00
seq_file.c
signalfd.c
io_uring: disable polling pollfree files
2022-09-05 10:27:47 +02:00
splice.c
Revert "fs: check FMODE_LSEEK to control internal pipe splicing"
2022-10-17 17:24:32 +02:00
stack.c
stat.c
stat: fix inconsistency between struct stat and struct compat_stat
2022-04-27 13:50:48 +02:00
statfs.c
statfs: enforce statfs[64] structure initialization
2023-05-30 12:44:07 +01:00
super.c
fs: Protect reconfiguration of sb read-write from racing writes
2023-08-11 11:53:59 +02:00
sync.c
ovl: skip overlayfs superblocks at global sync
2023-12-08 08:44:27 +01:00
timerfd.c
userfaultfd.c
userfaultfd: open userfaultfds with O_RDONLY
2022-10-26 13:22:21 +02:00
utimes.c
xattr.c
fs: don't audit the capability check in simple_xattr_list()
2023-01-18 11:40:53 +01:00