treewide: Change list_sort to use const pointers
list_sort() internally casts the comparison function passed to it to a different type with constant struct list_head pointers, and uses this pointer to call the functions, which trips indirect call Control-Flow Integrity (CFI) checking. Instead of removing the consts, this change defines the list_cmp_func_t type and changes the comparison function types of all list_sort() callers to use const pointers, thus avoiding type mismatches. Suggested-by:Nick Desaulniers <ndesaulniers@google.com> Signed-off-by:
Sami Tolvanen <samitolvanen@google.com> Reviewed-by:
Nick Desaulniers <ndesaulniers@google.com> Reviewed-by:
Christoph Hellwig <hch@lst.de> Reviewed-by:
Kees Cook <keescook@chromium.org> Tested-by:
Nick Desaulniers <ndesaulniers@google.com> Tested-by:
Nathan Chancellor <nathan@kernel.org> Signed-off-by:
Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20210408182843.1754385-10-samitolvanen@google.com
Showing
- arch/arm64/kvm/vgic/vgic-its.c 4 additions, 4 deletionsarch/arm64/kvm/vgic/vgic-its.c
- arch/arm64/kvm/vgic/vgic.c 2 additions, 1 deletionarch/arm64/kvm/vgic/vgic.c
- block/blk-mq-sched.c 2 additions, 1 deletionblock/blk-mq-sched.c
- block/blk-mq.c 2 additions, 1 deletionblock/blk-mq.c
- drivers/acpi/nfit/core.c 2 additions, 1 deletiondrivers/acpi/nfit/core.c
- drivers/acpi/numa/hmat.c 2 additions, 1 deletiondrivers/acpi/numa/hmat.c
- drivers/clk/keystone/sci-clk.c 2 additions, 2 deletionsdrivers/clk/keystone/sci-clk.c
- drivers/gpu/drm/drm_modes.c 2 additions, 1 deletiondrivers/gpu/drm/drm_modes.c
- drivers/gpu/drm/i915/gt/intel_engine_user.c 2 additions, 1 deletiondrivers/gpu/drm/i915/gt/intel_engine_user.c
- drivers/gpu/drm/i915/gvt/debugfs.c 1 addition, 1 deletiondrivers/gpu/drm/i915/gvt/debugfs.c
- drivers/gpu/drm/i915/selftests/i915_gem_gtt.c 2 additions, 1 deletiondrivers/gpu/drm/i915/selftests/i915_gem_gtt.c
- drivers/gpu/drm/radeon/radeon_cs.c 2 additions, 2 deletionsdrivers/gpu/drm/radeon/radeon_cs.c
- drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c 2 additions, 1 deletiondrivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c
- drivers/interconnect/qcom/bcm-voter.c 1 addition, 1 deletiondrivers/interconnect/qcom/bcm-voter.c
- drivers/md/raid5.c 2 additions, 1 deletiondrivers/md/raid5.c
- drivers/misc/sram.c 2 additions, 2 deletionsdrivers/misc/sram.c
- drivers/nvme/host/core.c 2 additions, 1 deletiondrivers/nvme/host/core.c
- drivers/pci/controller/cadence/pcie-cadence-host.c 2 additions, 1 deletiondrivers/pci/controller/cadence/pcie-cadence-host.c
- drivers/spi/spi-loopback-test.c 2 additions, 1 deletiondrivers/spi/spi-loopback-test.c
- fs/btrfs/raid56.c 2 additions, 1 deletionfs/btrfs/raid56.c
Loading
Please register or sign in to comment