linux/fs/jfs
Kees Cook 5d299f44d7 jfs: Avoid field-overflowing memcpy()
In preparation for FORTIFY_SOURCE performing compile-time and run-time
field array bounds checking for memcpy(), memmove(), and memset(),
avoid intentionally writing across neighboring fields.

Introduce more unions to cover the full inline data section, so that the
entire 256 bytes can be addressed by memcpy() without thinking it is
crossing field boundaries. Additionally adjusts dir memcpy() to use
existing union names to get the same coverage.

diffoscope shows there are no binary differences before/after excepting
the name of the initcall, which is line number based:

$ diffoscope --exclude-directory-metadata yes before/fs after/fs
 --- before/fs
 +++ after/fs
 │   --- before/fs/jfs
 ├── +++ after/fs/jfs
 │ │   --- before/fs/jfs/super.o
 │ ├── +++ after/fs/jfs/super.o
 │ │ ├── readelf --wide --symbols {}
 │ │ │ @@ -2,15 +2,15 @@
 │ │ │  Symbol table '.symtab' contains 158 entries:
 │ │ │     Num:    Value          Size Type    Bind   Vis      Ndx Name
 ...
 │ │ │ -     5: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT    6 __initcall__kmod_jfs__319_1049_ini
 t_jfs_fs6
 │ │ │ +     5: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT    6 __initcall__kmod_jfs__319_1050_ini
 t_jfs_fs6
...

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
2021-06-23 09:21:52 -05:00
..
acl.c fs: make helpers idmap mount aware 2021-01-24 14:27:20 +01:00
file.c jfs: convert to fileattr 2021-04-12 15:04:29 +02:00
inode.c jfs: fix GPF in diFree 2021-06-23 09:15:19 -05:00
ioctl.c jfs: convert to fileattr 2021-04-12 15:04:29 +02:00
jfs_acl.h fs: make helpers idmap mount aware 2021-01-24 14:27:20 +01:00
jfs_btree.h
jfs_debug.c
jfs_debug.h
jfs_dinode.h jfs: Avoid field-overflowing memcpy() 2021-06-23 09:21:52 -05:00
jfs_discard.c
jfs_discard.h
jfs_dmap.c fs: Fix typo issue 2021-05-21 10:36:00 -05:00
jfs_dmap.h jfs: Fix array index bounds check in dbAdjTree 2020-11-13 16:03:07 -06:00
jfs_dtree.c jfs: Replace zero-length array with flexible-array member 2020-03-09 15:18:51 -05:00
jfs_dtree.h
jfs_extent.c jfs: delete duplicated words + other fixes 2020-11-13 13:36:00 -06:00
jfs_extent.h jfs: delete duplicated words + other fixes 2020-11-13 13:36:00 -06:00
jfs_filsys.h JFS: more checks for invalid superblock 2020-12-18 15:23:33 -06:00
jfs_imap.c jfs: Avoid field-overflowing memcpy() 2021-06-23 09:21:52 -05:00
jfs_imap.h
jfs_incore.h jfs: Avoid field-overflowing memcpy() 2021-06-23 09:21:52 -05:00
jfs_inode.c inode: make init and permission helpers idmapped mount aware 2021-01-24 14:27:16 +01:00
jfs_inode.h jfs: convert to fileattr 2021-04-12 15:04:29 +02:00
jfs_lock.h
jfs_logmgr.c fs/jfs: Fix missing error code in lmLogInit() 2021-06-01 10:29:12 -05:00
jfs_logmgr.h jfs: delete duplicated words + other fixes 2020-11-13 13:36:00 -06:00
jfs_metapage.c fs: Introduce i_blocks_per_page 2020-09-21 08:59:26 -07:00
jfs_metapage.h
jfs_mount.c JFS: more checks for invalid superblock 2020-12-18 15:23:33 -06:00
jfs_superblock.h
jfs_txnmgr.c jfs: Remove trailing semicolon in macros 2021-05-21 10:36:22 -05:00
jfs_txnmgr.h
jfs_types.h
jfs_umount.c
jfs_unicode.c
jfs_unicode.h
jfs_uniupr.c
jfs_xattr.h jfs: Replace zero-length array with flexible-array member 2020-03-09 15:18:51 -05:00
jfs_xtree.c jfs: delete duplicated words + other fixes 2020-11-13 13:36:00 -06:00
jfs_xtree.h
Kconfig
Makefile
namei.c jfs: convert to fileattr 2021-04-12 15:04:29 +02:00
resize.c block: move struct block_device to blk_types.h 2020-06-24 09:16:02 -06:00
super.c jfs: Avoid field-overflowing memcpy() 2021-06-23 09:21:52 -05:00
symlink.c
xattr.c acl: handle idmapped mounts 2021-01-24 14:27:17 +01:00