Skip to content
Snippets Groups Projects
  1. Oct 19, 2023
  2. Sep 30, 2023
    • Greg Kroah-Hartman's avatar
      Merge 4.19.295 into android-4.19-stable · 501b7213
      Greg Kroah-Hartman authored
      
      Changes in 4.19.295
      	erofs: ensure that the post-EOF tails are all zeroed
      	ARM: pxa: remove use of symbol_get()
      	mmc: au1xmmc: force non-modular build and remove symbol_get usage
      	rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff
      	modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules
      	USB: serial: option: add Quectel EM05G variant (0x030e)
      	USB: serial: option: add FOXCONN T99W368/T99W373 product
      	HID: wacom: remove the battery when the EKR is off
      	Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race condition
      	serial: sc16is7xx: fix bug when first setting GPIO direction
      	fsi: master-ast-cf: Add MODULE_FIRMWARE macro
      	nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()
      	nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
      	pinctrl: amd: Don't show `Invalid config param` errors
      	9p: virtio: make sure 'offs' is initialized in zc_request
      	ASoC: da7219: Flush pending AAD IRQ when suspending
      	ASoC: da7219: Check for failure reading AAD IRQ events
      	ethernet: atheros: fix return value check in atl1c_tso_csum()
      	vxlan: generalize vxlan_parse_gpe_hdr and remove unused args
      	m68k: Fix invalid .section syntax
      	s390/dasd: use correct number of retries for ERP requests
      	s390/dasd: fix hanging device after request requeue
      	fs/nls: make load_nls() take a const parameter
      	ASoc: codecs: ES8316: Fix DMIC config
      	ASoC: atmel: Fix the 8K sample parameter in I2SC master
      	platform/x86: intel: hid: Always call BTNL ACPI method
      	security: keys: perform capable check only on privileged operations
      	net: usb: qmi_wwan: add Quectel EM05GV2
      	idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM
      	scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock
      	netlabel: fix shift wrapping bug in netlbl_catmap_setlong()
      	bnx2x: fix page fault following EEH recovery
      	sctp: handle invalid error codes without calling BUG()
      	cifs: add a warning when the in-flight count goes negative
      	ALSA: seq: oss: Fix racy open/close of MIDI devices
      	net: Avoid address overwrite in kernel_connect
      	powerpc/32: Include .branch_lt in data section
      	powerpc/32s: Fix assembler warning about r0
      	udf: Check consistency of Space Bitmap Descriptor
      	udf: Handle error when adding extent to a file
      	Revert "net: macsec: preserve ingress frame ordering"
      	reiserfs: Check the return value from __getblk()
      	eventfd: Export eventfd_ctx_do_read()
      	eventfd: prevent underflow for eventfd semaphores
      	new helper: lookup_positive_unlocked()
      	netfilter: nft_flow_offload: fix underflow in flowtable reference counter
      	netfilter: nf_tables: missing NFT_TRANS_PREPARE_ERROR in flowtable deactivatation
      	fs: Fix error checking for d_hash_and_lookup()
      	cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
      	bpf: Clear the probe_addr for uprobe
      	tcp: tcp_enter_quickack_mode() should be static
      	regmap: rbtree: Use alloc_flags for memory allocations
      	spi: tegra20-sflash: fix to check return value of platform_get_irq() in tegra_sflash_probe()
      	can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also in case of OOM
      	wifi: mwifiex: Fix OOB and integer underflow when rx packets
      	mwifiex: drop 'set_consistent_dma_mask' log message
      	mwifiex: switch from 'pci_' to 'dma_' API
      	wifi: mwifiex: fix error recovery in PCIE buffer descriptor management
      	Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe()
      	crypto: caam - fix unchecked return value error
      	lwt: Check LWTUNNEL_XMIT_CONTINUE strictly
      	fs: ocfs2: namei: check return value of ocfs2_add_entry()
      	wifi: mwifiex: fix memory leak in mwifiex_histogram_read()
      	wifi: mwifiex: Fix missed return in oob checks failed path
      	wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
      	wifi: ath9k: protect WMI command response buffer replacement with a lock
      	wifi: mwifiex: avoid possible NULL skb pointer dereference
      	wifi: ath9k: use IS_ERR() with debugfs_create_dir()
      	net: arcnet: Do not call kfree_skb() under local_irq_disable()
      	net/sched: sch_hfsc: Ensure inner classes have fsc curve
      	netrom: Deny concurrent connect().
      	quota: add dqi_dirty_list description to comment of Dquot List Management
      	quota: avoid increasing DQST_LOOKUPS when iterating over dirty/inuse list
      	quota: factor out dquot_write_dquot()
      	quota: rename dquot_active() to inode_quota_active()
      	quota: add new helper dquot_active()
      	quota: fix dqput() to follow the guarantees dquot_srcu should provide
      	arm64: dts: msm8996: thermal: Add interrupt support
      	arm64: dts: qcom: msm8996: Add missing interrupt to the USB2 controller
      	drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar()
      	ARM: dts: BCM5301X: Harmonize EHCI/OHCI DT nodes name
      	ARM: dts: BCM53573: Describe on-SoC BCM53125 rev 4 switch
      	ARM: dts: BCM53573: Drop nonexistent #usb-cells
      	ARM: dts: BCM53573: Add cells sizes to PCIe node
      	ARM: dts: BCM53573: Use updated "spi-gpio" binding properties
      	ARM: dts: s3c6410: move fixed clocks under root node in Mini6410
      	ARM: dts: s3c6410: align node SROM bus node name with dtschema in Mini6410
      	ARM: dts: s3c64xx: align pinctrl with dtschema
      	ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split)
      	ARM: dts: s5pv210: add RTC 32 KHz clock in SMDKV210
      	ARM: dts: s5pv210: use defines for IRQ flags in SMDKV210
      	ARM: dts: s5pv210: correct ethernet unit address in SMDKV210
      	ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
      	ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split)
      	drm: adv7511: Fix low refresh rate register for ADV7533/5
      	ARM: dts: BCM53573: Fix Ethernet info for Luxul devices
      	drm/tegra: Remove superfluous error messages around platform_get_irq()
      	drm/tegra: dpaux: Fix incorrect return value of platform_get_irq
      	of: unittest: fix null pointer dereferencing in of_unittest_find_node_by_name()
      	drm/msm: Replace drm_framebuffer_{un/reference} with put, get functions
      	drm/msm/mdp5: Don't leak some plane state
      	smackfs: Prevent underflow in smk_set_cipso()
      	audit: fix possible soft lockup in __audit_inode_child()
      	of: unittest: Fix overlay type in apply/revert check
      	ALSA: ac97: Fix possible error value of *rac97
      	drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init()
      	clk: sunxi-ng: Modify mismatched function name
      	PCI: Mark NVIDIA T4 GPUs to avoid bus reset
      	PCI: pciehp: Use RMW accessors for changing LNKCTL
      	PCI/ASPM: Use RMW accessors for changing LNKCTL
      	PCI/ATS: Add pci_prg_resp_pasid_required() interface.
      	PCI: Cleanup register definition width and whitespace
      	PCI: Decode PCIe 32 GT/s link speed
      	PCI: Add #defines for Enter Compliance, Transmit Margin
      	drm/amdgpu: Correct Transmit Margin masks
      	drm/amdgpu: Replace numbers with PCI_EXP_LNKCTL2 definitions
      	drm/amdgpu: Prefer pcie_capability_read_word()
      	drm/amdgpu: Use RMW accessors for changing LNKCTL
      	drm/radeon: Correct Transmit Margin masks
      	drm/radeon: Replace numbers with PCI_EXP_LNKCTL2 definitions
      	drm/radeon: Prefer pcie_capability_read_word()
      	drm/radeon: Use RMW accessors for changing LNKCTL
      	wifi: ath10k: Use RMW accessors for changing LNKCTL
      	nfs/blocklayout: Use the passed in gfp flags
      	powerpc/iommu: Fix notifiers being shared by PCI and VIO buses
      	jfs: validate max amount of blocks before allocation.
      	fs: lockd: avoid possible wrong NULL parameter
      	NFSD: da_addr_body field missing in some GETDEVICEINFO replies
      	media: Use of_node_name_eq for node name comparisons
      	media: v4l2-fwnode: fix v4l2_fwnode_parse_link handling
      	media: v4l2-fwnode: simplify v4l2_fwnode_parse_link
      	media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()
      	drivers: usb: smsusb: fix error handling code in smsusb_init_device
      	media: dib7000p: Fix potential division by zero
      	media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer()
      	media: cx24120: Add retval check for cx24120_message_send()
      	media: mediatek: vcodec: Return NULL if no vdec_fb is found
      	usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host()
      	scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param()
      	scsi: be2iscsi: Add length check when parsing nlattrs
      	scsi: qla4xxx: Add length check when parsing nlattrs
      	x86/APM: drop the duplicate APM_MINOR_DEV macro
      	scsi: qedf: Do not touch __user pointer in qedf_dbg_stop_io_on_error_cmd_read() directly
      	scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read() directly
      	dma-buf/sync_file: Fix docs syntax
      	IB/uverbs: Fix an potential error pointer dereference
      	media: go7007: Remove redundant if statement
      	USB: gadget: f_mass_storage: Fix unused variable warning
      	media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips
      	media: ov2680: Remove auto-gain and auto-exposure controls
      	media: ov2680: Fix ov2680_bayer_order()
      	media: ov2680: Fix vflip / hflip set functions
      	media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors
      	cgroup:namespace: Remove unused cgroup_namespaces_init()
      	scsi: core: Use 32-bit hostnum in scsi_host_lookup()
      	scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock
      	serial: tegra: handle clk prepare error in tegra_uart_hw_init()
      	amba: bus: fix refcount leak
      	Revert "IB/isert: Fix incorrect release of isert connection"
      	HID: multitouch: Correct devm device reference for hidinput input_dev name
      	rpmsg: glink: Add check for kstrdup
      	arch: um: drivers: Kconfig: pedantic formatting
      	um: Fix hostaudio build errors
      	dmaengine: ste_dma40: Add missing IRQ check in d40_probe
      	igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU
      	netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for ip_set_hash_netportnet.c
      	netfilter: xt_u32: validate user space input
      	netfilter: xt_sctp: validate the flag_info count
      	skbuff: skb_segment, Call zero copy functions before using skbuff frags
      	igb: set max size RX buffer when store bad packet is enabled
      	PM / devfreq: Fix leak in devfreq_dev_release()
      	ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
      	ipmi_si: fix a memleak in try_smi_init()
      	ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
      	backlight/gpio_backlight: Compare against struct fb_info.device
      	backlight/bd6107: Compare against struct fb_info.device
      	backlight/lv5207lp: Compare against struct fb_info.device
      	media: dvb: symbol fixup for dvb_attach()
      	ntb: Drop packets when qp link is down
      	ntb: Clean up tx tail index on link down
      	ntb: Fix calculation ntb_transport_tx_free_entry()
      	Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
      	procfs: block chmod on /proc/thread-self/comm
      	parisc: Fix /proc/cpuinfo output for lscpu
      	dlm: fix plock lookup when using multiple lockspaces
      	dccp: Fix out of bounds access in DCCP error handler
      	crypto: stm32 - fix loop iterating through scatterlist for DMA
      	cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
      	X.509: if signature is unsupported skip validation
      	net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
      	pstore/ram: Check start of empty przs during init
      	PCI/ATS: Add inline to pci_prg_resp_pasid_required()
      	sc16is7xx: Set iobase to device index
      	serial: sc16is7xx: fix broken port 0 uart init
      	usb: typec: tcpci: clear the fault status bit
      	udf: initialize newblock to 0
      	scsi: qla2xxx: fix inconsistent TMF timeout
      	scsi: qla2xxx: Turn off noisy message log
      	fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
      	drm/ast: Fix DRAM init on AST2200
      	parisc: led: Fix LAN receive and transmit LEDs
      	parisc: led: Reduce CPU overhead for disk & lan LED computation
      	clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock
      	soc: qcom: qmi_encdec: Restrict string length in decode
      	NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
      	kconfig: fix possible buffer overflow
      	x86/virt: Drop unnecessary check on extended CPUID level in cpu_has_svm()
      	watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load
      	pwm: lpc32xx: Remove handling of PWM channels
      	net: read sk->sk_family once in sk_mc_loop()
      	igb: disable virtualization features on 82580
      	veth: Fixing transmit return status for dropped packets
      	net: ipv6/addrconf: avoid integer underflow in ipv6_create_tempaddr
      	af_unix: Fix data-races around user->unix_inflight.
      	af_unix: Fix data-race around unix_tot_inflight.
      	af_unix: Fix data-races around sk->sk_shutdown.
      	af_unix: Fix data race around sk->sk_err.
      	net: sched: sch_qfq: Fix UAF in qfq_dequeue()
      	kcm: Destroy mutex in kcm_exit_net()
      	igbvf: Change IGBVF_MIN to allow set rx/tx value between 64 and 80
      	igb: Change IGB_MIN to allow set rx/tx value between 64 and 80
      	idr: fix param name in idr_alloc_cyclic() doc
      	netfilter: nfnetlink_osf: avoid OOB read
      	ata: sata_gemini: Add missing MODULE_DESCRIPTION
      	ata: pata_ftide010: Add missing MODULE_DESCRIPTION
      	btrfs: don't start transaction when joining with TRANS_JOIN_NOSTART
      	mtd: rawnand: brcmnand: Fix crash during the panic_write
      	mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
      	mtd: rawnand: brcmnand: Fix potential false time out warning
      	perf hists browser: Fix hierarchy mode header
      	net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_hwlro_get_fdir_all()
      	kcm: Fix memory leak in error path of kcm_sendmsg()
      	ixgbe: fix timestamp configuration code
      	kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg().
      	drm/amd/display: Fix a bug when searching for insert_above_mpcc
      	parisc: Drop loops_per_jiffy from per_cpu struct
      	autofs: fix memory leak of waitqueues in autofs_catatonic_mode
      	btrfs: output extra debug info if we failed to find an inline backref
      	ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer
      	ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470
      	hw_breakpoint: fix single-stepping when using bpf_overflow_handler
      	wifi: ath9k: fix printk specifier
      	wifi: mwifiex: fix fortify warning
      	crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui()
      	tpm_tis: Resend command to recover from data transfer errors
      	alx: fix OOB-read compiler warning
      	drm/exynos: fix a possible null-pointer dereference due to data race in exynos_drm_crtc_atomic_disable()
      	md: raid1: fix potential OOB in raid1_remove_disk()
      	ext2: fix datatype of block number in ext2_xattr_set2()
      	fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount()
      	jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount
      	powerpc/pseries: fix possible memory leak in ibmebus_bus_init()
      	media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer
      	media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer()
      	media: af9005: Fix null-ptr-deref in af9005_i2c_xfer
      	media: anysee: fix null-ptr-deref in anysee_master_xfer
      	media: az6007: Fix null-ptr-deref in az6007_i2c_xfer()
      	iio: core: Use min() instead of min_t() to make code more robust
      	media: tuners: qt1010: replace BUG_ON with a regular error
      	media: pci: cx23885: replace BUG with error return
      	usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
      	scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
      	serial: cpm_uart: Avoid suspicious locking
      	media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning
      	kobject: Add sanity check for kset->kobj.ktype in kset_register()
      	md/raid1: fix error: ISO C90 forbids mixed declarations
      	attr: block mode changes of symlinks
      	btrfs: fix lockdep splat and potential deadlock after failure running delayed items
      	nfsd: fix change_info in NFSv4 RENAME replies
      	mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller
      	net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-free
      	net/sched: Retire rsvp classifier
      	Linux 4.19.295
      
      Change-Id: I5de88dc1e8cebe5736df3023205233cb40c4aa35
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
      501b7213
  3. Sep 27, 2023
  4. Sep 25, 2023
    • valis's avatar
      UPSTREAM: net: sched: sch_qfq: Fix UAF in qfq_dequeue() · 8daba3e0
      valis authored
      
      [ Upstream commit 8fc134fee27f2263988ae38920bc03da416b03d8 ]
      
      When the plug qdisc is used as a class of the qfq qdisc it could trigger a
      UAF. This issue can be reproduced with following commands:
      
        tc qdisc add dev lo root handle 1: qfq
        tc class add dev lo parent 1: classid 1:1 qfq weight 1 maxpkt 512
        tc qdisc add dev lo parent 1:1 handle 2: plug
        tc filter add dev lo parent 1: basic classid 1:1
        ping -c1 127.0.0.1
      
      and boom:
      
      [  285.353793] BUG: KASAN: slab-use-after-free in qfq_dequeue+0xa7/0x7f0
      [  285.354910] Read of size 4 at addr ffff8880bad312a8 by task ping/144
      [  285.355903]
      [  285.356165] CPU: 1 PID: 144 Comm: ping Not tainted 6.5.0-rc3+ #4
      [  285.357112] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014
      [  285.358376] Call Trace:
      [  285.358773]  <IRQ>
      [  285.359109]  dump_stack_lvl+0x44/0x60
      [  285.359708]  print_address_description.constprop.0+0x2c/0x3c0
      [  285.360611]  kasan_report+0x10c/0x120
      [  285.361195]  ? qfq_dequeue+0xa7/0x7f0
      [  285.361780]  qfq_dequeue+0xa7/0x7f0
      [  285.362342]  __qdisc_run+0xf1/0x970
      [  285.362903]  net_tx_action+0x28e/0x460
      [  285.363502]  __do_softirq+0x11b/0x3de
      [  285.364097]  do_softirq.part.0+0x72/0x90
      [  285.364721]  </IRQ>
      [  285.365072]  <TASK>
      [  285.365422]  __local_bh_enable_ip+0x77/0x90
      [  285.366079]  __dev_queue_xmit+0x95f/0x1550
      [  285.366732]  ? __pfx_csum_and_copy_from_iter+0x10/0x10
      [  285.367526]  ? __pfx___dev_queue_xmit+0x10/0x10
      [  285.368259]  ? __build_skb_around+0x129/0x190
      [  285.368960]  ? ip_generic_getfrag+0x12c/0x170
      [  285.369653]  ? __pfx_ip_generic_getfrag+0x10/0x10
      [  285.370390]  ? csum_partial+0x8/0x20
      [  285.370961]  ? raw_getfrag+0xe5/0x140
      [  285.371559]  ip_finish_output2+0x539/0xa40
      [  285.372222]  ? __pfx_ip_finish_output2+0x10/0x10
      [  285.372954]  ip_output+0x113/0x1e0
      [  285.373512]  ? __pfx_ip_output+0x10/0x10
      [  285.374130]  ? icmp_out_count+0x49/0x60
      [  285.374739]  ? __pfx_ip_finish_output+0x10/0x10
      [  285.375457]  ip_push_pending_frames+0xf3/0x100
      [  285.376173]  raw_sendmsg+0xef5/0x12d0
      [  285.376760]  ? do_syscall_64+0x40/0x90
      [  285.377359]  ? __static_call_text_end+0x136578/0x136578
      [  285.378173]  ? do_syscall_64+0x40/0x90
      [  285.378772]  ? kasan_enable_current+0x11/0x20
      [  285.379469]  ? __pfx_raw_sendmsg+0x10/0x10
      [  285.380137]  ? __sock_create+0x13e/0x270
      [  285.380673]  ? __sys_socket+0xf3/0x180
      [  285.381174]  ? __x64_sys_socket+0x3d/0x50
      [  285.381725]  ? entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      [  285.382425]  ? __rcu_read_unlock+0x48/0x70
      [  285.382975]  ? ip4_datagram_release_cb+0xd8/0x380
      [  285.383608]  ? __pfx_ip4_datagram_release_cb+0x10/0x10
      [  285.384295]  ? preempt_count_sub+0x14/0xc0
      [  285.384844]  ? __list_del_entry_valid+0x76/0x140
      [  285.385467]  ? _raw_spin_lock_bh+0x87/0xe0
      [  285.386014]  ? __pfx__raw_spin_lock_bh+0x10/0x10
      [  285.386645]  ? release_sock+0xa0/0xd0
      [  285.387148]  ? preempt_count_sub+0x14/0xc0
      [  285.387712]  ? freeze_secondary_cpus+0x348/0x3c0
      [  285.388341]  ? aa_sk_perm+0x177/0x390
      [  285.388856]  ? __pfx_aa_sk_perm+0x10/0x10
      [  285.389441]  ? check_stack_object+0x22/0x70
      [  285.390032]  ? inet_send_prepare+0x2f/0x120
      [  285.390603]  ? __pfx_inet_sendmsg+0x10/0x10
      [  285.391172]  sock_sendmsg+0xcc/0xe0
      [  285.391667]  __sys_sendto+0x190/0x230
      [  285.392168]  ? __pfx___sys_sendto+0x10/0x10
      [  285.392727]  ? kvm_clock_get_cycles+0x14/0x30
      [  285.393328]  ? set_normalized_timespec64+0x57/0x70
      [  285.393980]  ? _raw_spin_unlock_irq+0x1b/0x40
      [  285.394578]  ? __x64_sys_clock_gettime+0x11c/0x160
      [  285.395225]  ? __pfx___x64_sys_clock_gettime+0x10/0x10
      [  285.395908]  ? _copy_to_user+0x3e/0x60
      [  285.396432]  ? exit_to_user_mode_prepare+0x1a/0x120
      [  285.397086]  ? syscall_exit_to_user_mode+0x22/0x50
      [  285.397734]  ? do_syscall_64+0x71/0x90
      [  285.398258]  __x64_sys_sendto+0x74/0x90
      [  285.398786]  do_syscall_64+0x64/0x90
      [  285.399273]  ? exit_to_user_mode_prepare+0x1a/0x120
      [  285.399949]  ? syscall_exit_to_user_mode+0x22/0x50
      [  285.400605]  ? do_syscall_64+0x71/0x90
      [  285.401124]  entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      [  285.401807] RIP: 0033:0x495726
      [  285.402233] Code: ff ff ff f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b8 0f 1f 00 41 89 ca 64 8b 04 25 18 00 00 00 85 c0 75 11 b8 2c 00 00 00 0f 09
      [  285.404683] RSP: 002b:00007ffcc25fb618 EFLAGS: 00000246 ORIG_RAX: 000000000000002c
      [  285.405677] RAX: ffffffffffffffda RBX: 0000000000000040 RCX: 0000000000495726
      [  285.406628] RDX: 0000000000000040 RSI: 0000000002518750 RDI: 0000000000000000
      [  285.407565] RBP: 00000000005205ef R08: 00000000005f8838 R09: 000000000000001c
      [  285.408523] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000002517634
      [  285.409460] R13: 00007ffcc25fb6f0 R14: 0000000000000003 R15: 0000000000000000
      [  285.410403]  </TASK>
      [  285.410704]
      [  285.410929] Allocated by task 144:
      [  285.411402]  kasan_save_stack+0x1e/0x40
      [  285.411926]  kasan_set_track+0x21/0x30
      [  285.412442]  __kasan_slab_alloc+0x55/0x70
      [  285.412973]  kmem_cache_alloc_node+0x187/0x3d0
      [  285.413567]  __alloc_skb+0x1b4/0x230
      [  285.414060]  __ip_append_data+0x17f7/0x1b60
      [  285.414633]  ip_append_data+0x97/0xf0
      [  285.415144]  raw_sendmsg+0x5a8/0x12d0
      [  285.415640]  sock_sendmsg+0xcc/0xe0
      [  285.416117]  __sys_sendto+0x190/0x230
      [  285.416626]  __x64_sys_sendto+0x74/0x90
      [  285.417145]  do_syscall_64+0x64/0x90
      [  285.417624]  entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      [  285.418306]
      [  285.418531] Freed by task 144:
      [  285.418960]  kasan_save_stack+0x1e/0x40
      [  285.419469]  kasan_set_track+0x21/0x30
      [  285.419988]  kasan_save_free_info+0x27/0x40
      [  285.420556]  ____kasan_slab_free+0x109/0x1a0
      [  285.421146]  kmem_cache_free+0x1c2/0x450
      [  285.421680]  __netif_receive_skb_core+0x2ce/0x1870
      [  285.422333]  __netif_receive_skb_one_core+0x97/0x140
      [  285.423003]  process_backlog+0x100/0x2f0
      [  285.423537]  __napi_poll+0x5c/0x2d0
      [  285.424023]  net_rx_action+0x2be/0x560
      [  285.424510]  __do_softirq+0x11b/0x3de
      [  285.425034]
      [  285.425254] The buggy address belongs to the object at ffff8880bad31280
      [  285.425254]  which belongs to the cache skbuff_head_cache of size 224
      [  285.426993] The buggy address is located 40 bytes inside of
      [  285.426993]  freed 224-byte region [ffff8880bad31280, ffff8880bad31360)
      [  285.428572]
      [  285.428798] The buggy address belongs to the physical page:
      [  285.429540] page:00000000f4b77674 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0xbad31
      [  285.430758] flags: 0x100000000000200(slab|node=0|zone=1)
      [  285.431447] page_type: 0xffffffff()
      [  285.431934] raw: 0100000000000200 ffff88810094a8c0 dead000000000122 0000000000000000
      [  285.432757] raw: 0000000000000000 00000000800c000c 00000001ffffffff 0000000000000000
      [  285.433562] page dumped because: kasan: bad access detected
      [  285.434144]
      [  285.434320] Memory state around the buggy address:
      [  285.434828]  ffff8880bad31180: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [  285.435580]  ffff8880bad31200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [  285.436264] >ffff8880bad31280: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [  285.436777]                                   ^
      [  285.437106]  ffff8880bad31300: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc
      [  285.437616]  ffff8880bad31380: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
      [  285.438126] ==================================================================
      [  285.438662] Disabling lock debugging due to kernel taint
      
      Fix this by:
      1. Changing sch_plug's .peek handler to qdisc_peek_dequeued(), a
      function compatible with non-work-conserving qdiscs
      2. Checking the return value of qdisc_dequeue_peeked() in sch_qfq.
      
      Bug: 300131820
      Fixes: 462dbc91 ("pkt_sched: QFQ Plus: fair-queueing service at DRR cost")
      Reported-by: default avatarvalis <sec@valis.email>
      Signed-off-by: default avatarvalis <sec@valis.email>
      Signed-off-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Link: https://lore.kernel.org/r/20230901162237.11525-1-jhs@mojatatu.com
      
      
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      (cherry picked from commit a18349dc8d916a64d7c93f05da98953e3386d8e9)
      Signed-off-by: default avatarLee Jones <joneslee@google.com>
      Change-Id: I2be4a7b7eb1448df8281c145ee2ca441bd746c9a
      8daba3e0
  5. Sep 23, 2023
Loading