linux-uconsole/fs
Mark Salyzyn d5b3108d95 ANDROID: regression introduced override_creds=off
Solve a regression introduced by
commit 272fcd1ca7
("ANDROID: overlayfs: override_creds=off option bypass creator_cred")
where a crash is observed a crash in ovl_create_or_link() when a
simple re-direction command in vendor directory.

/vendor/bin/<Any test> > /vendor/bin/test_log.txt 2>&1&

After further debugging we see that if the output is redirected to a
file which doesn’t exist we see this stack:

[  377.382745]  ovl_create_or_link+0xac/0x710
[  377.382745]  ovl_create_object+0xb8/0x110
[  377.382745]  ovl_create+0x34/0x40
[  377.382745]  path_openat+0xd44/0x15a8
[  377.382745]  do_filp_open+0x80/0x128
[  377.382745]  do_sys_open+0x140/0x250
[  377.382745]  __arm64_sys_openat+0x2c/0x38

ovl_override_creds returns NULL because the override_cred flag is set
to false.  This causes ovl_revert_creds also to fail.

There is another call to check override_cred in override_cred call
which overrides the creds permanently as there no revert_creds
associated.  So whenever next commit_cred is called we see the crash
as the credentials are permanently overridden.

Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Tested-by: Rishabh/Jeevan <jshriram@qualcomm.corp-partner.google.com>
Bug: 140816499
Change-Id: Icd0d9be82fc57af5ead1eeab99f79adf3adf62ef
2019-11-06 15:30:32 +00:00
..
9p 9p: avoid attaching writeback_fid on mmap with type PRIVATE 2019-10-11 18:21:13 +02:00
adfs fs/adfs: super: fix use-after-free bug 2019-08-06 19:06:49 +02:00
affs
afs afs: Fix leak in afs_lookup_cell_rcu() 2019-09-10 10:33:52 +01:00
autofs autofs: fix error return in autofs_fill_super() 2019-03-13 14:02:32 -07:00
befs
bfs bfs: add sanity check at bfs_fill_super() 2018-12-01 09:37:27 +01:00
btrfs Btrfs: fix deadlock on tree root leaf when finding free extent 2019-11-06 13:05:22 +01:00
cachefiles fscache, cachefiles: remove redundant variable 'cache' 2018-12-17 09:24:40 +01:00
ceph ceph: reconnect connection if session hang in opening state 2019-10-11 18:21:15 +02:00
cifs fs: cifs: mute -Wunused-const-variable message 2019-11-06 13:05:51 +01:00
coda coda: add error handling for fget 2019-08-06 19:06:51 +02:00
configfs configfs: Fix use-after-free when accessing sd->s_dentry 2019-06-22 08:15:17 +02:00
cramfs Cramfs: fix abad comparison when wrap-arounds occur 2018-11-13 11:08:55 -08:00
crypto ANDROID: fscrypt: add key removal notifier chain 2019-10-23 11:12:33 -07:00
debugfs debugfs: fix use-after-free on symlink traversal 2019-05-08 07:21:48 +02:00
devpts fs/devpts: always delete dcache dentry-s in dput() 2019-03-23 20:09:59 +01:00
dlm dlm: check if workqueues are NULL before flushing/destroying 2019-07-31 07:27:07 +02:00
ecryptfs eCryptfs: fix a couple type promotion bugs 2019-07-26 09:14:29 +02:00
efivarfs
efs
exofs fs/exofs: fix potential memory leak in mount option parsing 2018-11-27 16:13:00 +01:00
exportfs exportfs: do not read dentry after free 2018-12-17 09:24:35 +01:00
ext2 ext2: Fix underflow in ext2_max_size() 2019-03-23 20:10:03 +01:00
ext4 This is the 4.19.82 stable release 2019-11-06 13:21:58 +01:00
f2fs f2fs: fix to recover inode->i_flags of inode block during POR 2019-11-06 13:05:17 +01:00
fat fat: work around race with userspace's read via blockdev while mounting 2019-10-07 18:57:14 +02:00
freevxfs
fscache fscache: fix race between enablement and dropping of object 2018-12-17 09:24:40 +01:00
fuse fuse: truncate pending writes on O_TRUNC 2019-11-06 13:06:13 +01:00
gfs2 gfs2: clear buf_in_tr when ending a transaction in sweep_bh_for_rgrps 2019-10-05 13:10:07 +02:00
hfs hfs: do not free node before using 2018-12-17 09:24:41 +01:00
hfsplus hfsplus: do not free node before using 2018-12-17 09:24:41 +01:00
hostfs vfs: discard ATTR_ATTR_FLAG 2018-08-17 16:20:28 -07:00
hpfs hpfs: remove unnecessary checks on the value of r when assigning error code 2018-08-25 12:42:33 -07:00
hugetlbfs This is the 4.19.45 stable release 2019-05-22 08:00:39 +02:00
isofs isofs: reject hardware sector size > 2048 bytes 2018-08-21 11:37:41 +02:00
jbd2 jbd2: introduce jbd2_inode dirty range scoping 2019-07-28 08:29:29 +02:00
jffs2 FROMLIST: jffs2: pass the correct prototype to read_cache_page 2019-05-20 17:46:45 -07:00
jfs Just one jfs patch for 4.19 2018-08-15 22:47:23 -07:00
kernfs This is the 4.19.44 stable release 2019-05-16 19:52:46 +02:00
lockd Revert "lockd: Show pid of lockd for remote locks" 2019-06-09 09:17:22 +02:00
minix
nfs This is the 4.19.82 stable release 2019-11-06 13:21:58 +01:00
nfs_common
nfsd nfsd: Fix overflow causing non-working mounts on 1 TB machines 2019-07-10 09:53:47 +02:00
nilfs2 nilfs2: convert to SPDX license tags 2018-09-04 16:45:02 -07:00
nls
notify UPSTREAM: Make anon_inodes unconditional 2019-08-12 13:36:37 -04:00
ntfs ntfs: mft: remove VLA usage 2018-08-17 16:20:27 -07:00
ocfs2 fs: ocfs2: fix a possible null-pointer dereference in ocfs2_info_scan_inode_alloc() 2019-11-06 13:05:58 +01:00
omfs
openpromfs
orangefs orangefs: remove redundant pointer orangefs_inode 2018-08-14 12:07:14 -04:00
overlayfs ANDROID: regression introduced override_creds=off 2019-11-06 15:30:32 +00:00
proc This is the 4.19.81 stable release 2019-10-29 09:41:48 +01:00
pstore pstore: fs superblock limits 2019-10-07 18:56:59 +02:00
qnx4
qnx6
quota quota: fix a problem about transfer quota 2019-07-14 08:11:15 +02:00
ramfs
reiserfs reiserfs: propagate errors from fill_with_dentries() properly 2018-11-27 16:12:59 +01:00
romfs
sdcardfs ANDROID: sdcardfs: evict dentries on fscrypt key removal 2019-10-23 11:12:33 -07:00
squashfs Squashfs: Compute expected length from inode size rather than block length 2018-08-02 09:34:02 -07:00
sysfs Driver core patches for 4.19-rc1 2018-08-18 11:44:53 -07:00
sysv sysv: return 'err' instead of 0 in __sysv_write_inode 2018-12-17 09:24:30 +01:00
tracefs tracefs: Annotate tracefs_ops with __ro_after_init 2018-07-31 11:32:44 -04:00
ubifs Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19 2019-10-07 13:29:05 -07:00
udf udf: Fix incorrect final NOT_ALLOCATED (hole) extent length 2019-07-14 08:11:16 +02:00
ufs ufs: fix braino in ufs_get_inode_gid() for solaris UFS flavour 2019-05-25 18:23:46 +02:00
unicode ext4: optimize case-insensitive lookups 2019-09-23 13:23:30 -07:00
verity fs-verity: support builtin file signatures 2019-09-23 14:11:56 -07:00
xfs xfs: don't crash on null attr fork xfs_bmapi_read 2019-10-01 08:26:12 +02:00
aio.c Fix aio_poll() races 2019-05-02 09:58:59 +02:00
anon_inodes.c
attr.c ANDROID: vfs: Add permission2 for filesystems with per mount permissions 2018-12-05 09:48:14 -08:00
bad_inode.c
binfmt_aout.c
binfmt_elf.c binfmt_elf: Do not move brk for INTERP-less ET_EXEC 2019-10-05 13:10:06 +02:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c fs/binfmt_flat.c: make load_flat_shared_library() work 2019-07-03 13:14:44 +02:00
binfmt_misc.c
binfmt_script.c exec: load_script: Do not exec truncated interpreter path 2019-11-06 13:05:37 +01:00
block_dev.c block: fix the return errno for direct IO 2019-04-17 08:38:52 +02:00
buffer.c fs: fix guard_bio_eod to check for real EOD errors 2019-04-05 22:33:00 +02:00
char_dev.c chardev: add additional check for minor range overlap 2019-05-31 06:46:27 -07:00
compat.c
compat_binfmt_elf.c
compat_ioctl.c compat_ioctl: pppoe: fix PPPOEIOCSFWD handling 2019-08-09 17:52:34 +02:00
coredump.c ANDROID: vfs: Add setattr2 for filesystems with per mount permissions 2018-12-05 09:48:13 -08:00
d_path.c
dax.c dax: dax_layout_busy_page() should not unmap cow pages 2019-08-16 10:12:52 +02:00
dcache.c Merge remote-tracking branch 'origin/upstream-f2fs-stable-linux-4.19.y' into android-4.19 2019-07-31 21:34:30 -07:00
dcookies.c
direct-io.c direct-io: allow direct writes to empty inodes 2019-03-05 17:58:50 +01:00
drop_caches.c fs/drop_caches.c: avoid softlockups in drop_pagecache_sb() 2019-03-13 14:02:32 -07:00
eventfd.c
eventpoll.c UPSTREAM: PM / wakeup: Show wakeup sources stats in sysfs 2019-10-11 14:04:42 -07:00
exec.c This is the 4.19.64 stable release 2019-08-04 09:37:11 +02:00
fcntl.c signal: Don't send signals to tasks that don't exist 2018-08-15 23:03:20 -05:00
fhandle.c
file.c fs/file.c: initialize init_files.resize_wait 2019-04-05 22:32:59 +02:00
file_table.c overlayfs update for 4.19 2018-08-21 18:19:09 -07:00
filesystems.c
fs-writeback.c blkcg, writeback: dead memcgs shouldn't contribute to writeback ownership arbitration 2019-07-26 09:14:08 +02:00
fs_pin.c
fs_struct.c ANDROID: properly export new symbols with _GPL tag 2019-10-01 09:41:17 +02:00
inode.c Merge remote-tracking branch 'origin/upstream-f2fs-stable-linux-4.19.y' into android-4.19 2019-07-31 21:34:30 -07:00
internal.h This is the 4.19.47 stable release 2019-05-31 08:14:29 -07:00
ioctl.c vfs: fix FIGETBSZ ioctl on an overlayfs file 2018-11-21 09:19:14 +01:00
iomap.c iomap: fix a use after free in iomap_dio_rw 2019-03-13 14:02:29 -07:00
Kconfig Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19 2019-10-07 13:29:05 -07:00
Kconfig.binfmt kconfig: move the "Executable file formats" menu to fs/Kconfig.binfmt 2018-08-02 08:06:55 +09:00
libfs.c Fix the locking in dcache_readdir() and friends 2019-10-17 13:45:35 -07:00
locks.c overlayfs update for 4.19 2018-08-21 18:19:09 -07:00
Makefile Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19 2019-10-07 13:29:05 -07:00
mbcache.c
mount.h
mpage.c f2fs: fix build error on android tracepoints 2019-08-17 00:18:14 +00:00
namei.c ANDROID: Add a tracepoint for mapping inode to full path 2019-08-27 21:50:14 +00:00
namespace.c UPSTREAM: fs/namespace: untag user pointers in copy_mount_options 2019-10-07 15:27:40 -04:00
no-block.c
nsfs.c dcache: sort the freeing-without-RCU-delay mess for good. 2019-05-25 18:23:26 +02:00
open.c This is the 4.19.63 stable release 2019-07-31 08:03:42 +02:00
pipe.c fs: prevent page refcount overflow in pipe_buf_get 2019-05-04 09:20:11 +02:00
pnode.c ANDROID: mnt: Propagate remount correctly 2019-01-19 01:25:07 +00:00
pnode.h ANDROID: mnt: Add filesystem private data to mount points 2018-12-05 09:48:13 -08:00
posix_acl.c
proc_namespace.c ANDROID: vfs: Allow filesystems to access their private mount data 2018-12-05 09:48:13 -08:00
read_write.c ANDROID: properly export new symbols with _GPL tag 2019-10-01 09:41:17 +02:00
readdir.c
select.c
seq_file.c seq_file: fix problem when seeking mid-record 2019-08-25 10:47:43 +02:00
signalfd.c
splice.c fs: prevent page refcount overflow in pipe_buf_get 2019-05-04 09:20:11 +02:00
stack.c
stat.c
statfs.c vfs: Fix EOVERFLOW testing in put_compat_statfs64 2019-10-11 18:21:39 +02:00
super.c Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19 2019-10-07 13:29:05 -07:00
sync.c ANDROID: taskstats: track fsync syscalls 2018-12-05 09:48:12 -08:00
timerfd.c Merge branch 'work.aio' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2018-08-13 20:56:23 -07:00
userfaultfd.c UPSTREAM: userfaultfd: untag user pointers 2019-10-07 15:27:41 -04:00
utimes.c ANDROID: vfs: Add setattr2 for filesystems with per mount permissions 2018-12-05 09:48:13 -08:00
xattr.c ANDROID: Add optional __get xattr method paired to __vfs_getxattr 2019-11-06 15:27:46 +00:00