Compare commits

...

69 Commits

Author SHA1 Message Date
Richard Purdie
f14992950e build-appliance-image: Update to dunfell head revision
(From OE-Core rev: 8e81d38048c953d0823abf04d5b2506cd988f0bb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-25 15:59:03 +01:00
Bruce Ashfield
8a7fd5f633 linux-yocto/5.4: update to v5.4.190
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    dc213ac85601 Linux 5.4.190
    a83a18c4c903 ax25: Fix UAF bugs in ax25 timers
    40cb8b3b19c0 ax25: Fix NULL pointer dereferences in ax25 timers
    d2be5b563ef3 ax25: fix NPD bug in ax25_disconnect
    eaa7eb23fa76 ax25: fix UAF bug in ax25_send_control()
    9e1e088a57c2 ax25: Fix refcount leaks caused by ax25_cb_del()
    7528d0f2210c ax25: fix UAF bugs of net_device caused by rebinding operation
    1db0b2c55c93 ax25: fix reference count leaks of ax25_dev
    418993bbaafb ax25: add refcount in ax25_dev to avoid UAF bugs
    4459946e867a dma-direct: avoid redundant memory sync for swiotlb
    7efb8e49f659 i2c: pasemi: Wait for write xfers to finish
    659855c62c34 smp: Fix offline cpu check in flush_smp_call_function_queue()
    7f84c9372229 dm integrity: fix memory corruption when tag_size is less than digest size
    89931d476257 ARM: davinci: da850-evm: Avoid NULL pointer dereference
    28956e530b11 tick/nohz: Use WARN_ON_ONCE() to prevent console saturation
    f4fb50ee2594 genirq/affinity: Consider that CPUs on nodes can be unbalanced
    f616ecec0fae drm/amd/display: don't ignore alpha property on pre-multiplied mode
    ab2f5afb7af5 ipv6: fix panic when forwarding a pkt with no in6 dev
    377a80ca6590 ALSA: pcm: Test for "silence" field in struct "pcm_format_data"
    5f77b1c0e673 ALSA: hda/realtek: Add quirk for Clevo PD50PNT
    358e7b451a5a btrfs: mark resumed async balance as writing
    d5b0b11c064e btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups()
    0aad67337ff7 ath9k: Fix usage of driver-private space in tx_info
    7fb98e4f5b2e ath9k: Properly clear TX status area before reporting to mac80211
    7a9e1327ccb2 gcc-plugins: latent_entropy: use /dev/urandom
    534d0aebe164 mm: kmemleak: take a full lowmem check in kmemleak_*_phys()
    b56d305274b6 mm, page_alloc: fix build_zonerefs_node()
    e07a70ca831e perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant
    d05cd68ed846 drivers: net: slip: fix NPD bug in sl_tx_timeout()
    6d41134f3037 scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan
    3ecd43dcdac4 scsi: mvsas: Add PCI ID of RocketRaid 2640
    deab81144d5a powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit
    dd9b4b435a56 drm/amd/display: Fix allocate_mst_payload assert on resume
    404998a137bc net: usb: aqc111: Fix out-of-bounds accesses in RX fixup
    4a244167964a tlb: hugetlb: Add more sizes to tlb_remove_huge_tlb_entry
    29c2910c5060 arm64: alternatives: mark patch_alternative() as `noinstr`
    8c4db601ac8c regulator: wm8994: Add an off-on delay for WM8994 variant
    066180758fd0 gpu: ipu-v3: Fix dev_dbg frequency output
    b4ef44c7c27b ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs
    4cd3c9e070d6 net: micrel: fix KS8851_MLL Kconfig
    6117facb44a1 scsi: ibmvscsis: Increase INITIAL_SRP_LIMIT to 1024
    fb7a5115422f scsi: target: tcmu: Fix possible page UAF
    70b97c1546f9 Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer
    c7a268b33882 drm/amdkfd: Check for potential null return of kmalloc_array()
    2f3e1f38631f drm/amdkfd: Fix Incorrect VMIDs passed to HWS
    46ca8233f12d drm/amd/display: Update VTEM Infopacket definition
    74090c44c1f2 drm/amd/display: fix audio format not updated after edid updated
    0b3c2222d73a drm/amd: Add USBC connector ID
    22d658c6c5af cifs: potential buffer overflow in handling symlinks
    5c63ad2b0a26 nfc: nci: add flush_workqueue to prevent uaf
    1407cc68aaa8 testing/selftests/mqueue: Fix mq_perf_tests to free the allocated cpu set
    37e54d151eab sctp: Initialize daddr on peeled off socket
    a05f5e26cb8b net/smc: Fix NULL pointer dereference in smc_pnet_find_ib()
    1ac7c6d75ede drm/msm/dsi: Use connector directly in msm_dsi_manager_connector_init()
    02ee10d2a4a0 cfg80211: hold bss_lock while updating nontrans_list
    99a435c3789c net/sched: taprio: Check if socket flags are valid
    7e59fdf9547c net: ethernet: stmmac: fix altr_tse_pcs function when using a fixed-link
    94541468c11a net/sched: fix initialization order when updating chain 0 head
    4f83ba16a1b8 mlxsw: i2c: Fix initialization error flow
    8cefae8c40df gpiolib: acpi: use correct format characters
    2fd90b86dff4 veth: Ensure eth header is in skb's linear part
    5f2e54391893 net/sched: flower: fix parsing of ethertype following VLAN header
    9250186785f4 memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe
    e7f5213d755b Linux 5.4.189
    b15feb09a32e ACPI: processor idle: Check for architectural support for LPI
    60b6aae07249 cpuidle: PSCI: Move the `has_lpi` check to the beginning of the function
    598a22a077a8 selftests: cgroup: Test open-time cgroup namespace usage for migration checks
    a3f6c5949f66 selftests: cgroup: Test open-time credential usage for migration checks
    48848242d378 selftests: cgroup: Make cg_create() use 0755 for permission instead of 0644
    8a887060af61 cgroup: Use open-time cgroup namespace for process migration perm checks
    9bd1ced6466e cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
    691a0fd625e0 cgroup: Use open-time credentials for process migraton perm checks
    1a623d361ffe io_uring: fix fs->users overflow
    33fcb359a642 drm/amdkfd: Fix -Wstrict-prototypes from amdgpu_amdkfd_gfx_10_0_get_functions()
    1549bc8cc165 drm/amdkfd: add missing void argument to function kgd2kfd_init
    fdfb9ae26161 mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning
    a0c0867f06b9 arm64: module: remove (NOLOAD) from linker script
    2bd5b0d56d7b mm: don't skip swap entry even if zap_details specified
    dfa87d9a5db3 mmc: mmci: stm32: correctly check all elements of sg list
    c645de49e971 mmc: mmci_sdmmc: Replace sg_dma_xxx macros
    0d99cce85e34 dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error"
    9e6980c68cbf tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts
    f0752ee5efdc tools build: Filter out options and warnings not supported by clang
    3c07cc242baf irqchip/gic-v3: Fix GICR_CTLR.RWP polling
    e44d6af17b15 perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator
    55e1465ba795 ata: sata_dwc_460ex: Fix crash due to OOB write
    b0c4b3fc01ae arm64: patch_text: Fixup last cpu should be master
    44277c50fdba btrfs: fix qgroup reserve overflow the qgroup limit
    17f3e31c8603 x86/speculation: Restore speculation related MSRs during S3 resume
    0b8043e0fcea x86/pm: Save the MSR validity status at context setup
    25f506273b6a mm/mempolicy: fix mpol_new leak in shared_policy_replace
    c19d8de4e682 mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0)
    73953dfa9d50 lz4: fix LZ4_decompress_safe_partial read out of bound
    3b3514388895 mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is complete
    0869cb9f6235 Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning"
    c79c1846bdd7 perf session: Remap buf if there is no space for event
    9b6894db7c46 perf tools: Fix perf's libperf_print callback
    4ecef6f28aa1 SUNRPC: Handle low memory situations in call_status()
    9a0da98a36b4 SUNRPC: Handle ENOMEM in call_transmit_status()
    b6a4055036ee drbd: Fix five use after free bugs in get_initial_state
    a581b089216d bpf: Support dual-stack sockets in bpf_tcp_check_syncookie
    eb175e060699 spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op()
    034a92c6a810 qede: confirm skb is allocated before using
    7ee84d29f22d rxrpc: fix a race in rxrpc_exit_net()
    fee500c33534 net: openvswitch: don't send internal clone attribute to the userspace.
    c154cf184b2c ipv6: Fix stats accounting in ip6_pkt_drop
    fbe5f4c0dd34 dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe
    8a50937227c3 IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition
    1ef586a864df bnxt_en: reserve space inside receive page for skb_shared_info
    c539a6a5896e drm/imx: Fix memory leak in imx_pd_connector_get_modes
    cc9c2f51cd48 net: stmmac: Fix unset max_speed difference between DT and non-DT platforms
    f5064531c23a net: ipv4: fix route with nexthop object delete warning
    2b7d14c105dd net/tls: fix slab-out-of-bounds bug in decrypt_internal
    34a47f7ddb4f scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one()
    2133c422a103 Drivers: hv: vmbus: Fix potential crash on module unload
    c5e12c3a47db drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire()
    00914290958d KVM: arm64: Check arm64_get_bp_hardening_data() didn't return NULL
    18e0097daf8c mm: fix race between MADV_FREE reclaim and blkdev direct IO read
    abb1f310e7f0 parisc: Fix patch code locking and flushing
    bab8e3b4f68a parisc: Fix CPU affinity for Lasi, WAX and Dino chips
    1b8a6d1bdac5 SUNRPC: Fix socket waits for write buffer space
    e19c3149a80e jfs: prevent NULL deref in diFree
    3504b0a17720 virtio_console: eliminate anonymous module_init & module_exit
    60ade478c965 serial: samsung_tty: do not unlock port->lock for uart_write_wakeup()
    14e6bab37373 NFS: swap-out must always use STABLE writes.
    66cf5de08460 NFS: swap IO handling is slightly different for O_DIRECT IO
    fa47286c010a SUNRPC/call_alloc: async tasks mustn't block waiting for memory
    e427cd0ad559 clk: Enforce that disjoints limits are invalid
    8a7462b5211c xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32
    3f8f3a1c10e2 NFSv4: Protect the state recovery thread against direct reclaim
    96cdf2fdbe89 w1: w1_therm: fixes w1_seq for ds28ea00 sensors
    823f0364d4a4 clk: si5341: fix reported clk_rate when output divider is 2
    f4e16d12bc7c minix: fix bug when opening a file with O_DIRECT
    a95bbfea8f70 init/main.c: return 1 from handled __setup() functions
    b4be80aa4bda netlabel: fix out-of-bounds memory accesses
    3803d896ddd9 Bluetooth: Fix use after free in hci_send_acl
    8beb760f634e xtensa: fix DTC warning unit_address_format
    d41bdccb3c29 usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm
    5cf2ce8967b0 scsi: libfc: Fix use after free in fc_exch_abts_resp()
    0aeaadc52b05 MIPS: fix fortify panic when copying asm exception handlers
    c871b8374896 bnxt_en: Eliminate unintended link toggle during FW reset
    1166f5c139d5 tuntap: add sanity checks about msg_controllen in sendmsg
    c68dd44fb896 macvtap: advertise link netns via netlink
    060a485df4ec mips: ralink: fix a refcount leak in ill_acc_of_setup()
    1dd7569b8c70 net/smc: correct settings of RMB window update limit
    2fda284a3acb scsi: aha152x: Fix aha152x_setup() __setup handler return value
    a0ef536256c9 scsi: pm8001: Fix pm8001_mpi_task_abort_resp()
    a45af7e34091 drm/amdkfd: make CRAT table missing message informational only
    0320bac5801b dm ioctl: prevent potential spectre v1 gadget
    73dd98ac192d ipv4: Invalidate neighbour for broadcast address upon address addition
    f5e4f728d5c9 power: supply: axp288-charger: Set Vhold to 4.4V
    6e2dff272cb4 PCI: pciehp: Add Qualcomm quirk for Command Completed erratum
    4225947957f8 usb: ehci: add pci device support for Aspeed platforms
    ea057ac8c942 iommu/arm-smmu-v3: fix event handling soft lockup
    4e85f5ab589d PCI: aardvark: Fix support for MSI interrupts
    c0e9d868a1e0 drm/amdgpu: Fix recursive locking warning
    cee00fd8004f powerpc: Set crashkernel offset to mid of RMA region
    fbb7b033209c ipv6: make mc_forwarding atomic
    9f24efe239df power: supply: axp20x_battery: properly report current when discharging
    3575fa75da6c scsi: bfa: Replace snprintf() with sysfs_emit()
    9cd46ee37456 scsi: mvsas: Replace snprintf() with sysfs_emit()
    ca5da71a5838 bpf: Make dst_port field in struct bpf_sock 16-bit wide
    90dbc4c6649f powerpc: dts: t104xrdb: fix phy type for FMAN 4/5
    9388d8760997 ptp: replace snprintf with sysfs_emit
    4009f104b02b drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj
    c4e2f577271e ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
    61ffe2183351 drm: Add orientation quirk for GPD Win Max
    01f700bae439 KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs
    a5476f8d359f ARM: 9187/1: JIVE: fix return value of __setup handler
    63efb9003069 riscv module: remove (NOLOAD)
    68a7bb69486e rtc: wm8350: Handle error for wm8350_register_irq
    d95e0367fdc5 ubifs: Rectify space amount budget for mkdir/tmpfile operations
    9e24d03dd4fe KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated
    1553126eccf4 KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
    eb05ef70b621 openvswitch: Fixed nd target mask field in the flow dump.
    ce8043771fcd um: Fix uml_mconsole stop/go
    337eb9557035 ARM: dts: spear13xx: Update SPI dma properties
    4e48a6662356 ARM: dts: spear1340: Update serial node properties
    7f19400e5957 ASoC: topology: Allow TLV control to be either read or write
    32a76a557494 ubi: fastmap: Return error code if memory allocation fails in add_aeb()
    0c1a26c3d325 dt-bindings: spi: mxic: The interrupt property is not mandatory
    97ba943e9940 dt-bindings: mtd: nand-controller: Fix a comment in the examples
    a42ab650d33b dt-bindings: mtd: nand-controller: Fix the reg property description
    7d418a0a5626 bpf: Fix comment for helper bpf_current_task_under_cgroup()
    a075e95614f0 mm/usercopy: return 1 from hardened_usercopy __setup() handler
    abc0b4ea02f6 mm/memcontrol: return 1 from cgroup.memory __setup() handler
    2e16f48838fc mm/mmap: return 1 from stack_guard_gap __setup() handler
    d650ed0617e0 ASoC: soc-compress: Change the check for codec_dai
    7f19245c3647 powerpc/kasan: Fix early region not updated correctly
    cb249f8c00f4 ACPI: CPPC: Avoid out of bounds access when parsing _CPC data
    7d4a3c930d1d ARM: iop32x: offset IRQ numbers by 1
    d727fd32cbd1 ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
    4f9a59cf842a ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs
    230987c2bbc5 pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()
    18455cc74e95 pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()
    9611d8ef6829 pinctrl: pinconf-generic: Print arguments for bias-pull-*
    b0c0f4057020 net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware
    2a548fbf09f3 gfs2: Make sure FITRIM minlen is rounded up to fs block size
    8d67f67361c0 rtc: check if __rtc_read_time was successful
    9a8835902eb6 XArray: Update the LRU list in xas_split()
    cbd110b8dd7a can: mcba_usb: properly check endpoint type
    2dfe9422d528 can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
    3e2852eda19e XArray: Fix xas_create_range() when multi-order entry present
    a840286f13df ubifs: rename_whiteout: correct old_dir size computing
    b80ccbec0e48 ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
    1afe219e4a66 ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
    786013ecbaed ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
    37bdf1ad5925 ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
    14276d38c89a ubifs: rename_whiteout: Fix double free for whiteout_ui->data
    01df5f7627f1 ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM
    4c277c846a21 KVM: x86: fix sending PV IPI
    a1c03f11cc3c KVM: Prevent module exit until all VMs are freed
    8f608ee87ebf scsi: qla2xxx: Use correct feature type field during RFF_ID processing
    af744ef8f18e scsi: qla2xxx: Reduce false trigger to login
    7f9ce17a1d1b scsi: qla2xxx: Fix N2N inconsistent PLOGI
    2d087c7e55db scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests
    4a0a3c66a58e scsi: qla2xxx: Fix hang due to session stuck
    9d1651c8a40d scsi: qla2xxx: Fix incorrect reporting of task management failure
    2eb127417609 scsi: qla2xxx: Fix disk failure to rediscover
    8077a7162bc3 scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
    c478b2cde9b5 scsi: qla2xxx: Check for firmware dump already collected
    96391480abfe scsi: qla2xxx: Add devids and conditionals for 28xx
    08d04784ccc5 scsi: qla2xxx: Fix device reconnect in loop topology
    167debaeaaca scsi: qla2xxx: Fix warning for missing error code
    e67e9620a09c scsi: qla2xxx: Fix wrong FDMI data for 64G adapter
    8e561cbb7863 scsi: qla2xxx: Fix stuck session in gpdb
    f196d94cc7c2 powerpc: Fix build errors with newer binutils
    71ca99a50960 powerpc/lib/sstep: Fix build errors with newer binutils
    d42b045e92c2 powerpc/lib/sstep: Fix 'sthcx' instruction
    0af21531f5ed ALSA: hda/realtek: Add alc256-samsung-headphone fixup
    95d65bca6eb9 mmc: host: Return an error when ->enable_sdio_irq() ops is missing
    813553e4a91f media: hdpvr: initialize dev->worker at hdpvr_register_videodev
    236311be0976 media: Revert "media: em28xx: add missing em28xx_close_extension"
    3b36c05f68ba video: fbdev: sm712fb: Fix crash in smtcfb_write()
    11186875ba8f ARM: mmp: Fix failure to remove sram device
    dc958cd4c88c ARM: tegra: tamonten: Fix I2C3 pad setting
    691b0c0cb6df media: cx88-mpeg: clear interrupt status register before streaming video
    b239e9d52dbe ASoC: soc-core: skip zero num_dai component in searching dai name
    7d0afbc41b89 video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
    efe9631a76e6 video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of snprintf()
    ee7ce43367f3 video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
    046d9fd86bd8 ASoC: madera: Add dependencies on MFD
    46ac0e768dc7 ARM: dts: bcm2837: Add the missing L1/L2 cache information
    bf27f5dfcf82 ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960
    3856562e940c video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
    53a2088a396c video: fbdev: cirrusfb: check pixclock to avoid divide by zero
    b19c7df304f5 video: fbdev: w100fb: Reset global state
    055cdd2e7b99 video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow
    fe41ad8be036 ntfs: add sanity check on allocation size
    5a016c053f42 ext4: don't BUG if someone dirty pages without asking ext4 first
    07150842fac9 spi: tegra20: Use of_device_get_match_data()
    0cccf9d4fb45 PM: core: keep irq flags in device_pm_check_callbacks()
    f24e2362d667 ACPI/APEI: Limit printable size of BERT table data
    931aff627469 Revert "Revert "block, bfq: honor already-setup queue merges""
    7a7b11d694ed lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3
    c7f6ae51b1b4 ACPICA: Avoid walking the ACPI Namespace if it is not there
    5117c9ff4c2e bfq: fix use-after-free in bfq_dispatch_request
    e464aafd3537 irqchip/nvic: Release nvic_base upon failure
    c159eb634e52 irqchip/qcom-pdc: Fix broken locking
    c345724f2b79 Fix incorrect type in assignment of ipv6 port for audit
    927649f3f379 loop: use sysfs_emit() in the sysfs xxx show()
    799f22279e11 selinux: use correct type for context length
    c4f5a678add5 block, bfq: don't move oom_bfqq
    f409e9d1780b pinctrl: npcm: Fix broken references to chip->parent_device
    f36dd10d1b95 gcc-plugins/stackleak: Exactly match strings instead of prefixes
    ddcdda888e14 LSM: general protection fault in legacy_parse_param
    1f316b42a8e3 lib/test: use after free in register_test_dev_kmod()
    7a2ba24cee9a net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
    910a98e5c1e5 NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
    9acf05b4e7b5 net/x25: Fix null-ptr-deref caused by x25_disconnect
    d15a70fcda7b qlcnic: dcb: default to returning -EOPNOTSUPP
    8ba93ab509ec selftests: test_vxlan_under_vrf: Fix broken test case
    ae713d7d9987 net: phy: broadcom: Fix brcm_fet_config_init()
    ab2c789d1c0a xen: fix is_xen_pmu()
    d85841e4b2ff clk: Initialize orphan req_rate
    025c75ba3811 clk: qcom: gcc-msm8994: Fix gpll4 width
    f6f1c9a51e28 NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error
    806ef544cf1a netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
    cec71a718ce1 jfs: fix divide error in dbNextAG
    b3ac1e01963d driver core: dd: fix return value of __setup handler
    1bb231de81fc firmware: google: Properly state IOMEM dependency
    e9f2a8c6428d kgdbts: fix return value of __setup handler
    16fe77f86aa5 kgdboc: fix return value of __setup handler
    7c617cb38c19 tty: hvc: fix return value of __setup handler
    0615a444c5dd pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
    bc1e29a35147 pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
    27681f9e02e7 pinctrl: mediatek: paris: Fix pingroup pin config state readback
    e9eacc8952ea pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
    b348618c175e pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
    6e0d69618863 staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
    efc605469e47 NFS: remove unneeded check in decode_devicenotify_args()
    110c038779cc clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver
    2b5e68095c43 clk: clps711x: Terminate clk_div_table with sentinel element
    166c0185f32f clk: loongson1: Terminate clk_div_table with sentinel element
    1d04467bbbd0 clk: actions: Terminate clk_div_table with sentinel element
    50b48ba439bc remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region
    b5625e7a16e3 remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
    16ad029942bd clk: qcom: clk-rcg2: Update the frac table for pixel clock
    52592f9afbfe clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
    b576488fa3b5 clk: imx7d: Remove audio_mclk_root_clk
    79467b956333 dma-debug: fix return value of __setup handlers
    fe334765e4bb NFS: Return valid errors from nfs2/3_decode_dirent()
    546604de8acc iio: adc: Add check for devm_request_threaded_irq
    1da082f728c7 serial: 8250: Fix race condition in RTS-after-send handling
    617d9c0b9806 serial: 8250_mid: Balance reference count for PCI DMA device
    61d3fdef61b9 phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
    84ee0c81dd28 clk: qcom: ipq8074: Use floor ops for SDCC1 clock
    dd719fca42e4 pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
    b82465c1ff4a staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
    3ba0143128ee misc: alcor_pci: Fix an error handling path
    af1fdbbb7b22 pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
    996291d06851 mxser: fix xmit_buf leak in activate when LSR == 0xff
    58200dedbd10 mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
    043b19701332 tipc: fix the timer expires after interval 100ms
    6e2e80b2e9be openvswitch: always update flow key after nat
    7a970dbb7d16 tcp: ensure PMTU updates are processed during fastopen
    b4725ad1e459 selftests/bpf/test_lirc_mode2.sh: Exit with proper code
    1c7b252a6053 i2c: mux: demux-pinctrl: do not deactivate a master that is not active
    41249fff5073 af_netlink: Fix shift out of bounds in group mask calculation
    874eca93966a Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
    2fe415601b2d USB: storage: ums-realtek: fix error code in rts51x_read_mem()
    94c6ac22abcd bpf, sockmap: Fix double uncharge the mem of sk_msg
    244ce90c8d0b bpf, sockmap: Fix more uncharged while msg has more_data
    6d03722c34d9 bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full
    0174a89663a5 RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
    9b08d211db4c mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init
    443121c9948d MIPS: RB532: fix return value of __setup handler
    9a9a62846c15 vxcan: enable local echo for sent CAN frames
    6f259b1a4ab0 powerpc: 8xx: fix a return value error in mpc8xx_pic_init
    d87803ba6be8 selftests/bpf: Make test_lwt_ip_encap more stable and faster
    ac6edd6fcbf5 mfd: mc13xxx: Add check for mc13xxx_irq_request
    d2577dc2b3c3 powerpc/sysdev: fix incorrect use to determine if list is empty
    7192df97a018 mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
    10705a430557 PCI: Reduce warnings on possible RW1C corruption
    90bec38f6a4c power: supply: wm8350-power: Add missing free in free_charger_irq
    a16d8f4191a7 power: supply: wm8350-power: Handle error for wm8350_register_irq
    c7032923159c i2c: xiic: Make bus names unique
    6f41e4a69ba3 hv_balloon: rate-limit "Unhandled message" warning
    c00a91aca237 KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()
    5f43ec383eba KVM: x86: Fix emulation in writing cr8
    e91ba23f55cf powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
    3c660fa0f905 libbpf: Skip forward declaration when counting duplicated type names
    b62e615a619d bpf, arm64: Feed byte-offset into bpf line info
    8f3192a241d1 bpf, arm64: Call build_prologue() first in first JIT pass
    54bc98a0ab2b drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt
    30c5cf4bf219 scsi: hisi_sas: Change permission of parameter prot_mask
    e2cd206815a6 power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return
    a72507070188 drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
    cc16d0bc1c69 ext2: correct max file size computing
    b689622cc42a TOMOYO: fix __setup handlers return values
    aa7981012a98 drm/amd/display: Remove vupdate_int_entry definition
    765674e3b301 scsi: pm8001: Fix abort all task initialization
    442685f95296 scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
    e7336d47759d scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
    898c73387e8f scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
    5e3359ed0944 dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS
    37e847b674f1 iwlwifi: mvm: Fix an error code in iwl_mvm_up()
    4ad7d29ee42c iwlwifi: Fix -EIO error code that is never returned
    770d42fff12d dax: make sure inodes are flushed before destroy cache
    c10980c522d8 IB/cma: Allow XRC INI QPs to set their local ACK timeout
    2eaa9d86e007 drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
    8ae97a595b84 iommu/ipmmu-vmsa: Check for error num after setting mask
    a29ce9592cf6 HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
    41ed61364285 power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
    af5ad6e8370b PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge
    93b47d22d6a9 net: dsa: mv88e6xxx: Enable port policy support on 6097
    b03c06171b6e mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update
    eb5932160e37 mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
    d2ee8da9f72d powerpc/perf: Don't use perf_hw_context for trace IMC PMU
    135eb4e2bed1 ray_cs: Check ioremap return value
    3be1bb175f2c power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
    9a0e270c40ae i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
    5607badbb145 KVM: PPC: Fix vmx/vsx mixup in mmio emulation
    4d244b731188 ath9k_htc: fix uninit value bugs
    57f4ad5e286f drm/amd/display: Fix a NULL pointer dereference in amdgpu_dm_connector_add_common_modes()
    1feb6ff89d7f drm/edid: Don't clear formats if using deep color
    0d0ee651e72c mtd: rawnand: gpmi: fix controller timings setting
    750d2dc19f25 mtd: onenand: Check for error irq
    d58d281d6a3f Bluetooth: hci_serdev: call init_rwsem() before p->open()
    5d50f851dd30 udmabuf: validate ubuf->pagecount
    2cf7d537d330 ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
    820e469a2f37 drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
    e7a0c8546f74 drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
    f419751373a5 ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe
    1f31073b7772 mmc: davinci_mmc: Handle error for clk_enable
    93476f9f8277 ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe
    9e1fdf18fecb ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
    67e12f1cb2f9 ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
    ed41d104be54 ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
    29e91a49b6fb ivtv: fix incorrect device_caps for ivtvfb
    0342da635054 video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
    58e42ee4a022 ASoC: fsi: Add check for clk_enable
    ea9adaa598ec ASoC: wm8350: Handle error for wm8350_register_irq
    0325193cf40d ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
    3cc050df73e3 media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUED
    97398470c9b6 arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly
    7025f40690a2 ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
    fd5dda439e1c memory: emif: check the pointer temp in get_device_details()
    0ead05f7218f memory: emif: Add check for setup_interrupts
    68a69ad8df95 ASoC: soc-compress: prevent the potentially use of null pointer
    af6e1d11f758 ASoC: atmel_ssc_dai: Handle errors for clk_enable
    fd0c4082fd14 ASoC: mxs-saif: Handle errors for clk_enable
    5847873140e6 printk: fix return value of printk.devkmsg __setup handler
    38bc92ae39b1 arm64: dts: broadcom: Fix sata nodename
    9873232fde53 arm64: dts: ns2: Fix spi-cpol and spi-cpha property
    c6475df1e7bf ALSA: spi: Add check for clk_enable()
    e0cfb41d4635 ASoC: ti: davinci-i2s: Add check for clk_enable()
    3905742f93b4 ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()
    a975000e7aa3 uaccess: fix nios2 and microblaze get_user_8()
    14cd5a8e61c6 media: usb: go7007: s2250-board: fix leak in probe()
    92f84aa82dfa media: em28xx: initialize refcount before kref_get
    c6f0999461e6 media: video/hdmi: handle short reads of hdmi info frame.
    a9d0bb298880 ARM: dts: imx: Add missing LVDS decoder on M53Menlo
    cac1473d83e4 soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
    fb7f2eabfe18 arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc
    583fcb66ab17 soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
    755dbc3d7378 soc: qcom: rpmpd: Check for null return of devm_kcalloc
    12081a152046 ARM: dts: qcom: ipq4019: fix sleep clock
    547d36fa4100 video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
    125d10f0bef8 video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()
    da8b269cc0a2 video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
    4d847e455d0b media: aspeed: Correct value for h-total-pixels
    bd342c7bef23 media: hantro: Fix overfill bottom register field name
    db1b3b99d610 media: coda: Fix missing put_device() call in coda_get_vdoa_data
    b0f6b41490a7 media: bttv: fix WARNING regression on tunerless devices
    0478ccdc8ea0 f2fs: fix to avoid potential deadlock
    005f9cdab70c f2fs: fix missing free nid in f2fs_handle_failed_inode
    a2e534c6a06f perf/x86/intel/pt: Fix address filter config for 32-bit kernel
    015d31165da3 perf/core: Fix address filter parser for multiple filters
    841f5b235d69 sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
    715a34317255 clocksource: acpi_pm: fix return value of __setup handler
    4c0173521db1 hwmon: (pmbus) Add Vin unit off handling
    acba28618203 crypto: ccp - ccp_dmaengine_unregister release dma channels
    39a521faf426 ACPI: APEI: fix return value of __setup handlers
    8dc887ae33d2 clocksource/drivers/timer-of: Check return value of of_iomap in timer_of_base_init()
    b305975a6625 crypto: vmx - add missing dependencies
    b7f3e230ca45 hwrng: atmel - disable trng on failure path
    63266a148888 PM: suspend: fix return value of __setup handler
    6c4c026c3d91 PM: hibernate: fix __setup handler error handling
    84fe3ca6e791 block: don't delete queue kobject before its children
    b68d1742f420 hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
    bf78aca8e41d hwmon: (pmbus) Add mutex to regulator ops
    00d67f54b830 spi: pxa2xx-pci: Balance reference count for PCI DMA device
    40e6d5d1de06 crypto: ccree - don't attempt 0 len DMA mappings
    c3a5acf91cb9 audit: log AUDIT_TIME_* records only from rules
    152ebc0ee9b4 selftests/x86: Add validity check and allow field splitting
    f8a3de8d7c2f spi: tegra114: Add missing IRQ check in tegra_spi_probe
    e5e748a6ff11 crypto: mxs-dcp - Fix scatterlist processing
    30d3f45bcfa7 crypto: authenc - Fix sleep in atomic context in decrypt_tail
    9b19022137e8 regulator: qcom_smd: fix for_each_child.cocci warnings
    accf175d0c54 PCI: pciehp: Clear cmd_busy bit in polling mode
    a92f72055486 brcmfmac: pcie: Fix crashes due to early IRQs
    51fffd722ef0 brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
    d0ab87f8dcdf brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
    2c894b12b206 brcmfmac: firmware: Allocate space for default boardrev in nvram
    34a57be0f9f0 xtensa: fix xtensa_wsr always writing 0
    54c9fb17bef1 xtensa: fix stop_machine_cpuslocked call in patch_text
    4df9d88a9c54 media: davinci: vpif: fix unbalanced runtime PM get
    28859c3a7782 DEC: Limit PMAX memory probing to R3k systems
    baa4aa800d32 crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
    058b2e59dbf5 crypto: rsa-pkcs1pad - restore signature length check
    7973dc9118ba crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
    002288800e10 lib/raid6/test: fix multiple definition linking error
    e73efa5ad5d2 thermal: int340x: Increase bitmap size
    5d553ed5c5d4 carl9170: fix missing bit-wise or operator for tx_params
    55f078dc6620 ARM: dts: exynos: add missing HDMI supplies on SMDK5420
    0e0d9bd6be8d ARM: dts: exynos: add missing HDMI supplies on SMDK5250
    a77dd759bd71 ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
    2fafe8b57c0d ARM: dts: at91: sama5d2: Fix PMERRLOC resource size
    51186190c4e8 video: fbdev: atari: Atari 2 bpp (STe) palette bugfix
    478154be3a8c video: fbdev: sm712fb: Fix crash in smtcfb_read()
    67643b89fbe5 drm/edid: check basic audio support on CEA extension block
    3f91687e6e5d block: don't merge across cgroup boundaries if blkcg is enabled
    8d3a7b206458 mailbox: tegra-hsp: Flush whole channel
    28c8fd84bea1 drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()
    5217ae080efd ACPI: properties: Consistently return -ENOENT if there are no more references
    f3ec0c9db5d3 udp: call udp_encap_enable for v6 sockets when enabling encap
    11dc8286f9f6 powerpc/kvm: Fix kvm_use_magic_page
    ded627763026 drbd: fix potential silent data corruption
    35b72d8e2c8e mm/kmemleak: reset tag when compare object pointer
    d102fcacfcf3 mm,hwpoison: unmap poisoned page before invalidation
    099553a1a87f ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
    a86bde89304a ALSA: cs4236: fix an incorrect NULL check on list iterator
    848977412065 Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"
    097479aeb214 riscv: Fix fill_callchain return value
    c82cbbefc6e6 qed: validate and restrict untrusted VFs vlan promisc mode
    5081cbfb62d2 qed: display VF trust config
    930a3ed5d8d0 scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
    ae2a271ed562 mempolicy: mbind_range() set_policy() after vma_merge()
    d1313f5e8fe5 mm: invalidate hwpoison page cache page in fault path
    2efe956a74dc mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
    455f4a23490b jffs2: fix memory leak in jffs2_scan_medium
    0978e9af4559 jffs2: fix memory leak in jffs2_do_mount_fs
    30bf7244acf3 jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
    e27caad38b59 can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
    00a856fa6976 spi: mxic: Fix the transmit path
    e05221d20153 pinctrl: samsung: drop pin banks references on error paths
    0996eaaddfe4 f2fs: fix to do sanity check on .cp_pack_total_block_count
    f1d5946d47c0 f2fs: quota: fix loop condition at f2fs_quota_sync()
    947ca26390d2 f2fs: fix to unlock page correctly in error path of is_alive()
    ce1aa09cc14e NFSD: prevent integer overflow on 32 bit systems
    85259340fc9b NFSD: prevent underflow in nfssvc_decode_writeargs()
    1cfeeeee8cf0 SUNRPC: avoid race between mod_timer() and del_timer_sync()
    1a1e73e9add7 HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
    beb7d969063a Documentation: update stable tree link
    20de1038e245 Documentation: add link to stable release candidate tree
    d312c0035eb4 KEYS: fix length validation in keyctl_pkey_params_get_2()
    2458ecd21f29 ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
    8a609c88fe3c clk: uniphier: Fix fixed-rate initialization
    9d97610e74e4 greybus: svc: fix an error handling bug in gb_svc_hello()
    468757502e2f iio: inkern: make a best effort on offset calculation
    be2b89a909b3 iio: inkern: apply consumer scale when no channel scale is available
    5be8a07b9574 iio: inkern: apply consumer scale on IIO_VAL_INT cases
    c459b2794597 iio: afe: rescale: use s64 for temporary scale calculations
    576a1ce64c62 coresight: Fix TRCCONFIGR.QE sysfs interface
    d8f98a23b4ad xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()
    b310e82e779f xhci: make xhci_handshake timeout for xhci_reset() adjustable
    a771cc784a9c xhci: fix runtime PM imbalance in USB2 resume
    b5a7ab0e1a66 USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
    212765c94fc9 virtio-blk: Use blk_validate_block_size() to validate block size
    40f282870d6c block: Add a helper to validate the block size
    a27ed2f3695b tpm: fix reference counting for struct tpm_chip
    631bb18e8371 iommu/iova: Improve 32-bit free space estimate
    2e2dee5e226b net: dsa: microchip: add spi_device_id tables
    ef388db2fe35 af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register
    0cdb512da072 spi: Fix erroneous sgs value with min_t()
    ab951c9c23a3 net:mcf8390: Use platform_get_irq() to get the interrupt
    e62e6c2d7aa8 spi: Fix invalid sgs value
    96f9c386fec2 ethernet: sun: Free the coherent when failing in probing
    aa3c3746e781 virtio_console: break out of buf poll on remove
    291efbad3d6e xfrm: fix tunnel model fragmentation behavior
    a83df90a3b61 HID: logitech-dj: add new lightspeed receiver id
    5c727ba42ca3 netdevice: add the case if dev is NULL
    7e9c9e3f626a USB: serial: simple: add Nokia phone driver
    80e5bf89a895 USB: serial: pl2303: add IBM device IDs
    6bfc5377a210 swiotlb: fix info leak with DMA_FROM_DEVICE

(From OE-Core rev: 84f30aecf2767becd4a623a1ab80a52535f1d4a2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
Bruce Ashfield
65d3f419d4 linux-yocto/5.4: update to v5.4.188
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    2845ff3fd344 Linux 5.4.188
    993c23880bce llc: only change llc->dev when bind() succeeds
    bb4878b39d6d nds32: fix access_ok() checks in get/put_user
    5b1d2561a03e tpm: use try_get_ops() in tpm-space.c
    3bbd0000d012 mac80211: fix potential double free on mesh join
    cda27a2c6d54 rcu: Don't deboost before reporting expedited quiescent state
    edcc12ae3249 crypto: qat - disable registration of algorithms
    b0222e222d77 ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
    d7f29f397b74 ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
    2374007850c5 ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
    06f0ff82c702 netfilter: nf_tables: initialize registers in nft_do_chain()
    5061bf0f79d5 ALSA: hda/realtek: Add quirk for ASUS GA402
    f7a7cd530a9e ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
    0c4190b41a69 ALSA: oss: Fix PCM OSS buffer allocation overflow
    ab49515f7db3 ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call
    d5c7e1987ce3 drivers: net: xgene: Fix regression in CRC stripping
    7870321eaf41 ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
    1f4eefc585a7 ALSA: cmipci: Restore aux vol on suspend/resume
    d86bf7e0732e ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
    0f27a350f8b8 ALSA: pcm: Add stream lock during PCM reset ioctl operations
    572f9a0d3f3f llc: fix netdevice reference leaks in llc_ui_bind()
    2e798814e018 thermal: int340x: fix memory leak in int3400_notify()
    5ff048f4ab5c staging: fbtft: fb_st7789v: reset display before initialization
    637d12f9dc67 tpm: Fix error handling in async work
    fee4dfbda68b esp: Fix possible buffer overflow in ESP transformation
    2774edd43ab1 net: ipv6: fix skb_over_panic in __ip6_append_data
    0aef7184630b nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
    628adfa21815 nfsd: Containerise filecache laundrette
    c32f1041382a nfsd: cleanup nfsd_file_lru_dispose()
    055c4cf7e6da Linux 5.4.187
    1771bc0d04d6 Revert "selftests/bpf: Add test for bpf_timer overwriting crash"
    0dd366cfdfe0 perf symbols: Fix symbol size calculation condition
    e732b0412f8c Input: aiptek - properly check endpoint type
    700a0715854c usb: usbtmc: Fix bug in pipe direction for control transfers
    2282a6eb6d4e usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
    218293762683 usb: gadget: rndis: prevent integer overflow in rndis_set_response()
    58ee8e2cb30a arm64: fix clang warning about TRAMP_VALIAS
    d7b929637527 net: dsa: Add missing of_node_put() in dsa_port_parse_of
    f96aa063ffd5 net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()
    3fd96bc64c95 drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
    b01e2df5fbf6 hv_netvsc: Add check for kvmalloc_array
    97ccef56e53c atm: eni: Add check for dma_map_single
    268dcf1f7b31 net/packet: fix slab-out-of-bounds access in packet_recvmsg()
    93697483660a net: phy: marvell: Fix invalid comparison in the resume and suspend functions
    d0f3c2d1d85a efi: fix return value of __setup handlers
    e61655430d29 ocfs2: fix crash when initialize filecheck kobj fails
    184f7bd08ce5 crypto: qcom-rng - ensure buffer for generate is completely filled

(From OE-Core rev: 6a445ac241b2f4885416daacf2068ee58f177e4a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
Bruce Ashfield
41cd7b5e3b linux-yocto/5.4: update to v5.4.186
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    8e24ff11b5d2 Linux 5.4.186
    fcbdaa6a3c92 fixup for "arm64 entry: Add macro for reading symbol address from the trampoline"
    b8bc0718baed kselftest/vm: fix tests build with old libc
    2643ca24f511 sfc: extend the locking on mcdi->seqno
    46fd0a07409b tcp: make tcp_read_sock() more robust
    16a2e50fe934 nl80211: Update bss channel on channel switch for P2P_CLIENT
    941e8bcd2b2b drm/vrr: Set VRR capable prop only if it is attached to connector
    6becb057247e iwlwifi: don't advertise TWT support
    51969ebe7f97 atm: firestream: check the return value of ioremap() in fs_init()
    23352749f0b2 can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when fully ready
    4006447f558c ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE
    c2420bc33331 MIPS: smp: fill in sibling and core maps earlier
    d1df59e3124c mac80211: refuse aggregations sessions before authorized
    fb35b0cfbaf8 ARM: dts: rockchip: fix a typo on rk3288 crypto-controller
    4857a9b291db ARM: dts: rockchip: reorder rk322x hmdi clocks
    ba14ba2d4c63 arm64: dts: agilex: use the compatible "intel,socfpga-agilex-hsotg"
    aca8fdddeee0 arm64: dts: rockchip: reorder rk3399 hdmi clocks
    e49ebea3f536 arm64: dts: rockchip: fix rk3399-puma eMMC HS400 signal integrity
    bd33f9b864ec xfrm: Fix xfrm migrate issues when address family changes
    3c21ece77549 xfrm: Check if_id in xfrm_migrate
    970a21404ebc arm64: Use the clearbhb instruction in mitigations
    fb65675f6620 KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated
    9013fd4bc958 arm64: Mitigate spectre style branch history side channels
    26129ea2953b KVM: arm64: Add templates for BHB mitigation sequences
    1b735c8dc1fb arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2
    c45d885c5a77 arm64: Add percpu vectors for EL1
    1bb1944970a9 arm64: entry: Add macro for reading symbol addresses from the trampoline
    3abf6e8a7aa0 arm64: entry: Add vectors that have the bhb mitigation sequences
    2933ca8c816f arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations
    9232867e4fc2 arm64: entry: Allow the trampoline text to occupy multiple pages
    ad8800443b69 arm64: entry: Make the kpti trampoline's kpti sequence optional
    4b91f35c8739 arm64: entry: Move trampoline macros out of ifdef'd section
    0bfdd7334882 arm64: entry: Don't assume tramp_vectors is the start of the vectors
    fb117a27c64e arm64: entry: Allow tramp_alias to access symbols after the 4K boundary
    788fbb5fe290 arm64: entry: Move the trampoline data page before the text page
    33397322d4c3 arm64: entry: Free up another register on kpti's tramp_exit path
    3f95cc642c3f arm64: entry: Make the trampoline cleanup optional
    8aa1257128a1 arm64: entry.S: Add ventry overflow sanity checks
    503fdc244aee arm64: Add Cortex-X2 CPU part definition
    7103651c98c8 arm64: add ID_AA64ISAR2_EL1 sys register
    f5f94aa5004a arm64: Add Neoverse-N2, Cortex-A710 CPU part definition
    ed5bf8a5075b arm64: Add part number for Arm Cortex-A77
    0b84cfaefea6 sctp: fix the processing for INIT chunk
    57e401a53c9f Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
    70f77a2cb528 Linux 5.4.185
    afb684cb976a KVM: SVM: Don't flush cache if hardware enforces cache coherency across encryption domains
    690909c6d971 x86/mm/pat: Don't flush cache if hardware enforces cache coherency across encryption domnains
    6b13a188609f x86/cpu: Add hardware-enforced cache coherency as a CPUID feature
    9dd71ec10658 x86/cpufeatures: Mark two free bits in word 3
    a4eef9e76934 ext4: add check to prevent attempting to resize an fs with sparse_super2
    269db254c3b7 ARM: fix Thumb2 regression with Spectre BHB
    635959a82154 virtio: acknowledge all features before access
    ffeb42e05d7d virtio: unexport virtio_finalize_features
    19d57cfbf8c0 arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0
    978e4f2648c1 riscv: Fix auipc+jalr relocation range checks
    d6948de3b630 mmc: meson: Fix usage of meson_mmc_post_req()
    ba0d7beec2c2 net: macb: Fix lost RX packet wakeup race in NAPI receive
    403e3afe241b staging: gdm724x: fix use after free in gdm_lte_rx()
    a9174077febf fuse: fix pipe buffer lifetime for direct_io
    d72c79b60d6a ARM: Spectre-BHB: provide empty stub for non-config
    ad66df9064f4 selftests/memfd: clean up mapping in mfd_fail_write
    849c78024e65 selftest/vm: fix map_fixed_noreplace test failure
    500158df8757 tracing: Ensure trace buffer is at least 4096 bytes large
    090e73fb9cce ipv6: prevent a possible race condition with lifetimes
    1d4bdaaa8d23 Revert "xen-netback: Check for hotplug-status existence before watching"
    60e4e3198ce8 Revert "xen-netback: remove 'hotplug-status' once it has served its purpose"
    8879b5313e9f net-sysfs: add check for netdevice being present to speed_show
    dcf55b071de9 selftests/bpf: Add test for bpf_timer overwriting crash
    e0eca9285cf4 net: bcmgenet: Don't claim WOL when its not available
    bbf59d7ae558 sctp: fix kernel-infoleak for SCTP sockets
    e93437197131 net: phy: DP83822: clear MISR2 register to disable interrupts
    f7b3b5203491 gianfar: ethtool: Fix refcount leak in gfar_get_ts_info
    54fd6b2eb1d7 gpio: ts4900: Do not set DAT and OE together
    82b298e0142d selftests: pmtu.sh: Kill tcpdump processes launched by subshell.
    cd2a5c0da0d1 NFC: port100: fix use-after-free in port100_send_complete
    1a4017926eee net/mlx5: Fix a race on command flush flow
    6102e2e5c62d net/mlx5: Fix size field in bufferx_reg struct
    0a64aea5fe02 ax25: Fix NULL pointer dereference in ax25_kill_by_device
    45bfd0a937ba net: ethernet: lpc_eth: Handle error for clk_enable
    e84d37af40a9 net: ethernet: ti: cpts: Handle error for clk_enable
    8ee065a7a9b6 ethernet: Fix error handling in xemaclite_of_probe
    4c0b769d9571 ARM: dts: aspeed: Fix AST2600 quad spi group
    7db2bc08619f drm/sun4i: mixer: Fix P010 and P210 format numbers
    7f8f5641417e qed: return status of qed_iov_get_link
    f59e78609075 net: qlogic: check the return value of dma_alloc_coherent() in qed_vf_hw_prepare()
    45d470e4f808 virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero
    278b2c7d9fe5 arm64: dts: armada-3720-turris-mox: Add missing ethernet0 alias
    f62922b601c5 clk: qcom: gdsc: Add support to update GDSC transition delay
    1346e17653a5 Linux 5.4.184
    f7fc9c348790 Revert "ACPI: PM: s2idle: Cancel wakeup before dispatching EC GPE"
    0e35f3ab69bc xen/netfront: react properly to failing gnttab_end_foreign_access_ref()
    782e5ebcc888 xen/gnttab: fix gnttab_end_foreign_access() without page specified
    051c4cc7bdb7 xen/pvcalls: use alloc/free_pages_exact()
    be63ea883e56 xen/9p: use alloc/free_pages_exact()
    8efaf0c862c7 xen: remove gnttab_query_foreign_access()
    d193785a4bc9 xen/gntalloc: don't use gnttab_query_foreign_access()
    089a8e491d6d xen/scsifront: don't use gnttab_query_foreign_access() for mapped status
    b507879c1e2d xen/netfront: don't use gnttab_query_foreign_access() for mapped status
    a83400456f9c xen/blkfront: don't use gnttab_query_foreign_access() for mapped status
    44d86dccd2a5 xen/grant-table: add gnttab_try_end_foreign_access()
    95ff82383266 xen/xenbus: don't let xenbus_grant_ring() remove grants in error case
    56f1b3c5c82a ARM: fix build warning in proc-v7-bugs.c
    40da947ba076 ARM: Do not use NOCROSSREFS directive with ld.lld
    583662bfd8df ARM: fix co-processor register typo
    21a466c32f3e ARM: fix build error when BPF_SYSCALL is disabled
    d1cfdd50778c ARM: include unprivileged BPF status in Spectre V2 reporting
    920f7970cf0d ARM: Spectre-BHB workaround
    dcf33beb492a ARM: use LOADADDR() to get load address of sections
    31814db6e478 ARM: early traps initialisation
    fdfc0baf829d ARM: report Spectre v2 status through sysfs
    26171b016b40 arm/arm64: smccc/psci: add arm_smccc_1_1_get_conduit()
    baaaba74e014 arm/arm64: Provide a wrapper for SMCCC 1.1 calls
    6c1599fd1bf8 x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT
    7c7702569422 x86/speculation: Warn about Spectre v2 LFENCE mitigation
    865da3868b56 x86/speculation: Update link to AMD speculation whitepaper
    b1bacf22a847 x86/speculation: Use generic retpoline by default on AMD
    1e47ab3df908 x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation reporting
    327a4da9b0ef Documentation/hw-vuln: Update spectre doc
    96b3d45aeae0 x86/speculation: Add eIBRS + Retpoline options
    41b50510e593 x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
    b70bc2e3552a x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
    22aed240891c x86/speculation: Merge one test in spectre_v2_user_select_mitigation()

(From OE-Core rev: bcabfe3640d9963c60ebf479ae016e7bee94ce66)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
Bruce Ashfield
31766c908e linux-yocto/5.4: update to v5.4.183
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    e7d1268f5671 Linux 5.4.183
    5817c13cd6dc hamradio: fix macro redefine warning
    3c7d63cfa150 net: dcb: disable softirqs in dcbnl_flush_dev()
    5f53a6a8ae0f Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
    f73eb7342bb0 btrfs: add missing run of delayed items after unlink during log replay
    f8d4a8eebb22 btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
    39403d72b4c1 btrfs: fix lost prealloc extents beyond eof after full fsync
    4dd5d3310c75 tracing: Fix return value of __setup handlers
    c0f7253376c8 tracing/histogram: Fix sorting on old "cpu" value
    35fa6f2a31d3 HID: add mapping for KEY_ALL_APPLICATIONS
    ecefb8cc0f8b HID: add mapping for KEY_DICTATE
    52b984b17df9 Input: elan_i2c - fix regulator enable count imbalance after suspend/resume
    16eb602eaddf Input: elan_i2c - move regulator_[en|dis]able() out of elan_[en|dis]able_power()
    3f123c305e4a nl80211: Handle nla_memdup failures in handle_nan_filter
    ec89b276464c net: chelsio: cxgb3: check the return value of pci_find_capability()
    6650fa5f3bcf soc: fsl: qe: Check of ioremap return value
    e89c53fcd28c memfd: fix F_SEAL_WRITE after shmem huge page allocated
    58b07100c20e ibmvnic: free reset-work-item when flushing
    2e7abe2efc31 igc: igc_write_phy_reg_gpy: drop premature return
    5c215ea574a0 ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
    89b881f339ce ARM: Fix kgdb breakpoint for Thumb2
    87765309bf59 igc: igc_read_phy_reg_gpy: drop premature return
    44ff6c29b2ea arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
    d59120a48997 can: gs_usb: change active_channels's type from atomic_t to u8
    bc653724929c ASoC: cs4265: Fix the duplicated control name
    cff3987e097d firmware: arm_scmi: Remove space in MODULE_ALIAS name
    461a26ebf0dd efivars: Respect "block" flag in efivar_entry_set_safe()
    b4f46598431f ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()
    e50c589678e5 net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()
    044e209c72cc net: sxgbe: fix return value of __setup handler
    a54dedf620d2 iavf: Fix missing check for running netdev
    150b8a05d005 net: stmmac: fix return value of __setup handler
    e9fa4009032d mac80211: fix forwarded mesh frames AC & queue selection
    f17b27f3d4bc ia64: ensure proper NUMA distance and possible map initialization
    80998dbde14d sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa()
    407ec382ba67 sched/topology: Make sched_init_numa() use a set for the deduplicating sort
    b40c91262477 xen/netfront: destroy queues before real_num_tx_queues is zeroed
    fa84d44df437 block: Fix fsync always failed if once failed
    849339fd72ff net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
    8e306a76b9b0 net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client
    1f5abd671dbd net: dcb: flush lingering app table entries for unregistered devices
    ed05368024a9 batman-adv: Don't expect inter-netns unique iflink indices
    863953227106 batman-adv: Request iflink once in batadv_get_real_netdevice
    a1ccea6183eb batman-adv: Request iflink once in batadv-on-batadv check
    43c25da41e30 netfilter: nf_queue: fix possible use-after-free
    3c934f1087ff netfilter: nf_queue: don't assume sk is full socket
    d2c96b19305f xfrm: enforce validity of offload input flags
    019b4b9d5977 xfrm: fix the if_id check in changelink
    49c24579cec4 netfilter: fix use-after-free in __nf_register_net_hook()
    ac858e4462bd xfrm: fix MTU regression
    f3537f1b2bfd ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
    75a471401b10 ALSA: intel_hdmi: Fix reference to PCM buffer address
    e28372b295d8 ata: pata_hpt37x: fix PCI clock detection
    58b419d16e87 usb: gadget: clear related members when goto fail
    ba6fdd55b166 usb: gadget: don't release an existing dev->buf
    0babb778ff75 net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
    a7ef01d25a31 i2c: qup: allow COMPILE_TEST
    da9bf89344a6 i2c: cadence: allow COMPILE_TEST
    bb07c8bb77d0 dmaengine: shdma: Fix runtime PM imbalance on error
    e208668ef7ba cifs: fix double free race when mount fails in cifs_get_root()
    2ed93e3e3f82 Input: clear BTN_RIGHT/MIDDLE on buttonpads
    7b6d98f86905 ASoC: rt5682: do not block workqueue if card is unbound
    e2106e429f05 ASoC: rt5668: do not block workqueue if card is unbound
    7b7c65abeb10 i2c: bcm2835: Avoid clock stretching timeouts
    964f155c382f mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
    1a7d2fccd8f6 mac80211_hwsim: report NOACK frames in tx_status

(From OE-Core rev: d0399ed433e3a77cb66d30bd027f52bd356d7acf)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
Bruce Ashfield
a14b11c500 linux-yocto/5.4: update to v5.4.182
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    866ae42cf478 Linux 5.4.182
    fb2bbb7d3021 fget: clarify and improve __fget_files() implementation
    d6a29ce52a79 memblock: use kfree() to release kmalloced memblock regions
    5d9453bf4126 Revert "drm/nouveau/pmu/gm200-: avoid touching PMU outside of DEVINIT/PREOS/ACR"
    1fb051bbbce3 gpio: tegra186: Fix chip_data type confusion
    2782b05d0208 tty: n_gsm: fix NULL pointer access due to DLCI release
    c03a49581417 tty: n_gsm: fix proper link termination after failed open
    912144e8a3b0 tty: n_gsm: fix encoding of control signal octet bit DV
    1879db4f2521 xhci: Prevent futile URB re-submissions due to incorrect return value.
    80922d7b52b0 xhci: re-initialize the HC during resume if HCE was set
    0139a10090da usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
    6e74aebbf78b usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
    ba3e83e5a0b4 USB: serial: option: add Telit LE910R1 compositions
    92ac25b79d5d USB: serial: option: add support for DW5829e
    40256addf566 tracefs: Set the group ownership in apply_options() not parse_options()
    6b23eda98923 USB: gadget: validate endpoint index for xilinx udc
    9ab652d41dea usb: gadget: rndis: add spinlock for rndis response list
    39848d7e4ea6 Revert "USB: serial: ch341: add new Product ID for CH341A"
    7c453de366c3 ata: pata_hpt37x: disable primary channel on HPT371
    a28f8dbd474a iio: Fix error handling for PM
    8fff0310e66c iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits
    ce1076b33e29 iio: adc: men_z188_adc: Fix a resource leak in an error handling path
    cb90ab3f0997 tracing: Have traceon and traceoff trigger honor the instance
    901206f71e6a RDMA/ib_srp: Fix a deadlock
    b7e2b91fcb5c configfs: fix a race in configfs_{,un}register_subsystem()
    df14d2bed8e2 spi: spi-zynq-qspi: Fix a NULL pointer dereference in zynq_qspi_exec_mem_op()
    a62f4266d572 net/mlx5: Fix wrong limitation of metadata match on ecpf
    45618e915757 net/mlx5: Fix possible deadlock on rule deletion
    53026346a94c netfilter: nf_tables: fix memory leak during stateful obj update
    5ad5886f85b6 nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()
    dfe537b0c94e net: Force inlining of checksum functions in net/checksum.h
    eee01c88c90f net: ll_temac: check the return value of devm_kmalloc()
    fc92a14fa076 net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
    3cbf1f98d893 drm/edid: Always set RGB444
    d0251c38dff8 openvswitch: Fix setting ipv6 fields causing hw csum failure
    2b3cdd70ea5f gso: do not skip outer ip header in case of ipip and net_failover
    0240bb276fd6 tipc: Fix end of loop tests for list_for_each_entry()
    2ed132637619 net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
    97a6c07d6ff4 bpf: Do not try bpf_msg_push_data with len 0
    dffce58f6f75 perf data: Fix double free in perf_session__delete()
    3174b09fe16c ping: remove pr_err from ping_lookup
    767099f0ec5b lan743x: fix deadlock in lan743x_phy_link_status_change()
    5d76e0b69da9 optee: use driver internal tee_context for some rpc
    0e526f533f35 tee: export teedev_open() and teedev_close_context()
    64e0b5894c81 x86/fpu: Correct pkru/xstate inconsistency
    49c011a44edd netfilter: nf_tables_offload: incorrect flow offload action array size
    49a4536a46ed USB: zaurus: support another broken Zaurus
    b95d71abeb7d sr9700: sanity check for packet length
    d0dac454b9e3 drm/amdgpu: disable MMHUB PG for Picasso
    eb88a38831e5 parisc/unaligned: Fix ldw() and stw() unalignment handlers
    b783ef3eb66a parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel
    0b608b3392c4 vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
    dd0de3510240 clk: jz4725b: fix mmc0 clock gating
    d1f1de5dff78 cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
    b6e8856b8a5f Linux 5.4.181
    3e73b02af6c3 kconfig: fix failing to generate auto.conf
    90c0d3cc676f net: macb: Align the dma and coherent dma masks
    f1c3f41245d8 net: usb: qmi_wwan: Add support for Dell DW5829e
    6b364ca4814a tracing: Fix tp_printk option related with tp_printk_stop_on_boot
    8bf73d5ea94a drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
    5a21d5072300 ata: libata-core: Disable TRIM on M88V29
    41da91158ed9 kconfig: let 'shell' return enough output for deep path names
    913932a306f0 arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
    d2fd1c7804e8 arm64: dts: meson-g12: add ATF BL32 reserved-memory region
    daa868080996 arm64: dts: meson-gx: add ATF BL32 reserved-memory region
    ba4b40356abd netfilter: conntrack: don't refresh sctp entries in closed state
    d4de2bbcbc91 irqchip/sifive-plic: Add missing thead,c900-plic match string
    2d7a327a129e ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of
    fff21185f598 ARM: OMAP2+: hwmod: Add of_node_put() before break
    3deabc3f60fd KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
    fe595759c2a4 Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
    ba71b1b30d85 i2c: brcmstb: fix support for DSL and CM variants
    6f08452c560d copy_process(): Move fd_install() out of sighand->siglock critical section
    e52dfd2a4906 dmaengine: sh: rcar-dmac: Check for error num after setting mask
    c83049cb8817 net: sched: limit TC_ACT_REPEAT loops
    87c575d2a238 lib/iov_iter: initialize "flags" in new pipe_buffer
    091dac5c6392 EDAC: Fix calculation of returned address and next offset in edac_align_ptr()
    f0c2c023c226 scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
    56f9abba9805 mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
    bdc70b603da9 mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe()
    3758a570762e NFS: Do not report writeback errors in nfs_getattr()
    357d42d593fc NFS: LOOKUP_DIRECTORY is also ok with symlinks
    20f4ee3c3340 block/wbt: fix negative inflight counter when remove scsi device
    4cd3281a910a mtd: rawnand: gpmi: don't leak PM reference in error path
    c6fee7c8546a powerpc/lib/sstep: fix 'ptesync' build error
    edfac6b77bc2 ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range()
    d6d8d1db8094 ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()
    99c2b13ce951 ALSA: hda: Fix missing codec probe on Shenker Dock 15
    2b2b531ceba9 ALSA: hda: Fix regression on forced probe mask option
    aca7e5b6a500 libsubcmd: Fix use-after-free for realloc(..., 0)
    7af6164ceefe bonding: fix data-races around agg_select_timer
    aeb993412eb2 drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
    db3ffc5d332e bonding: force carrier update when releasing slave
    fb8c98f92ad3 ping: fix the dif and sdif check in ping_lookup
    8198c4d4c2f8 net: ieee802154: ca8210: Fix lifs/sifs periods
    a06440508acd net: dsa: lan9303: fix reset on probe
    73f8575216b1 netfilter: nft_synproxy: unregister hooks on init error path
    5e8c5b217cfb iwlwifi: pcie: gen2: fix locking when "HW not ready"
    e1d0e738b02e iwlwifi: pcie: fix locking when "HW not ready"
    902528183f4d mmc: block: fix read single on recovery logic
    5f326fe2aef4 vsock: remove vsock from connected table when connect is interrupted by a signal
    f48a38703c11 dmaengine: at_xdmac: Start transfer for cyclic channels in issue_pending
    41ce06a3ec6a taskstats: Cleanup the use of task->exit_code
    8583d2ea90fe ext4: prevent partial update of the extent blocks
    d57fcf0d9195 ext4: check for inconsistent extents between index and leaf block
    6a332d095ce4 ext4: check for out-of-order index extents in ext4_valid_extent_entries()
    13f6ebef03b0 drm/radeon: Fix backlight control on iMac 12,1
    494de920d98f iwlwifi: fix use-after-free
    6194b4689731 arm64: module/ftrace: intialize PLT at load time
    adcc4b795f4c arm64: module: rework special section handling
    dfe928f16cc5 module/ftrace: handle patchable-function-entry
    30af4dcfa8b4 ftrace: add ftrace_init_nop()
    42c8cccf83d5 Revert "module, async: async_synchronize_full() on module init iff async is used"
    5c7726bd5736 drm/amdgpu: fix logic inversion in check
    d411b2a5da68 nvme-rdma: fix possible use-after-free in transport error_recovery work
    61a26ffd5ad3 nvme-tcp: fix possible use-after-free in transport error_recovery work
    70356b756a58 nvme: fix a possible use-after-free in controller reset during load
    89d2bd13252a quota: make dquot_quota_sync return errors from ->sync_fs
    f124d9eff984 vfs: make freeze_super abort when sync_filesystem returns error
    cfc8b37ef041 ax25: improve the incomplete fix to avoid UAF and NPD bugs
    dd2fcac324ea selftests/zram: Adapt the situation that /dev/zram0 is being used
    c3a9afa82493 selftests/zram01.sh: Fix compression ratio calculation
    8d1c50c8683e selftests/zram: Skip max_comp_streams interface on newer kernel
    455ef08d6e54 net: ieee802154: at86rf230: Stop leaking skb's
    3bd8bebb16fe selftests: rtc: Increase test timeout so that all tests run
    bc6ac6c0f67d platform/x86: ISST: Fix possible circular locking dependency detected
    bd6492930a10 btrfs: send: in case of IO error log it
    3ff48a67ed65 parisc: Fix sglist access in ccio-dma.c
    efccc9b0c7e2 parisc: Fix data TLB miss in sba_unmap_sg
    3434d8837fe9 parisc: Drop __init from map_pages declaration
    bd282ee53e34 serial: parisc: GSC: fix build when IOSAPIC is not set
    9d2aad133b22 Revert "svm: Add warning message for AVIC IPI invalid target"
    190272552099 HID:Add support for UGTABLET WP5540
    866a85813b92 Makefile.extrawarn: Move -Wunaligned-access to W=1
    7b3eb66d0daf Linux 5.4.180
    9d09cb110868 ACPI: PM: s2idle: Cancel wakeup before dispatching EC GPE
    a2ed7b29d067 perf: Fix list corruption in perf_cgroup_switch()
    f79cbf75ac76 scsi: lpfc: Remove NVMe support if kernel has NVME_FC disabled
    a1a018e2a068 hwmon: (dell-smm) Speed up setting of fan speed
    1e30073c0e55 seccomp: Invalidate seccomp mode to catch death failures
    a3769078c945 USB: serial: cp210x: add CPI Bulk Coin Recycler id
    fade0cbf6682 USB: serial: cp210x: add NCR Retail IO box id
    697b9ed28b39 USB: serial: ch341: add support for GW Instek USB2.0-Serial devices
    ed4fddac9d7c USB: serial: option: add ZTE MF286D modem
    f729dfd364b8 USB: serial: ftdi_sio: add support for Brainboxes US-159/235/320
    f297b6109cbe usb: gadget: f_uac2: Define specific wTerminalType
    c9e952871ae4 usb: gadget: rndis: check size of RNDIS_MSG_SET command
    38fd68f55a7e USB: gadget: validate interface OS descriptor requests
    3054dfef06a7 usb: gadget: udc: renesas_usb3: Fix host to USB_ROLE_NONE transition
    8f032eaebc2f usb: dwc3: gadget: Prevent core from processing stale TRBs
    3a9953b2806c usb: ulpi: Call of_node_put correctly
    12ab57a21372 usb: ulpi: Move of_node_put to ulpi_dev_release
    a0fd5492ee76 net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup
    3937c35493ee eeprom: ee1004: limit i2c reads to I2C_SMBUS_BLOCK_MAX
    d4dc28db1b98 n_tty: wake up poll(POLLRDNORM) on receiving data
    0e31f914d761 vt_ioctl: add array_index_nospec to VT_ACTIVATE
    ae3d57411562 vt_ioctl: fix array_index_nospec in vt_setactivate
    311c82a68093 net: amd-xgbe: disable interrupts during pci removal
    b3e998a5dc46 tipc: rate limit warning for received illegal binding update
    e7daad5c28ad net: mdio: aspeed: Add missing MODULE_DEVICE_TABLE
    c99e66350ca0 veth: fix races around rq->rx_notify_masked
    a80817adc2a4 net: fix a memleak when uncloning an skb dst and its metadata
    0b6087c63586 net: do not keep the dst cache when uncloning an skb dst and its metadata
    3f41ec8c830e nfp: flower: fix ida_idx not being released
    16dcfde98a25 ipmr,ip6mr: acquire RTNL before calling ip[6]mr_free_table() on failure path
    4bcfbec337cf bonding: pair enable_port with slave_arr_updates
    e432f25c77a2 ixgbevf: Require large buffers for build_skb on 82599VF
    4e6fd2b5fcf8 misc: fastrpc: avoid double fput() on failed usercopy
    c9fc422c9a43 usb: f_fs: Fix use-after-free for epfile
    336222182a3b ARM: dts: imx6qdl-udoo: Properly describe the SD card detect
    94888cf75535 staging: fbtft: Fix error path in fbtft_driver_module_init()
    2650ed47077b ARM: dts: meson: Fix the UART compatible strings
    4ccb639bde50 perf probe: Fix ppc64 'perf probe add events failed' case
    b4a59eafcbc5 net: bridge: fix stale eth hdr pointer in br_dev_xmit
    b55a0cdbec5b PM: s2idle: ACPI: Fix wakeup interrupts handling
    e37a2a6b52d4 ACPI/IORT: Check node revision for PMCG resources
    153d0f357b12 nvme-tcp: fix bogus request completion when failing to send AER
    a44ca4038725 ARM: socfpga: fix missing RESET_CONTROLLER
    8a0bad445a50 ARM: dts: imx23-evk: Remove MX23_PAD_SSP1_DETECT from hog group
    9d5e5832ffe7 riscv: fix build with binutils 2.38
    c230f6ba1011 bpf: Add kconfig knob for disabling unpriv bpf by default
    e2424c010a98 KVM: nVMX: eVMCS: Filter out VM_EXIT_SAVE_VMX_PREEMPTION_TIMER
    a437c524394c net: stmmac: dwmac-sun8i: use return val of readl_poll_timeout()
    032065cc5b6c usb: dwc2: gadget: don't try to disable ep0 in dwc2_hsotg_suspend
    0863dedf58c8 PM: hibernate: Remove register_nosave_region_late()
    5c5ceea00c8c scsi: myrs: Fix crash in error case
    7cc32ff0cd6c scsi: qedf: Fix refcount issue when LOGO is received during TMF
    c6a7077144ed scsi: target: iscsi: Make sure the np under each tpg is unique
    9babdef28879 net: sched: Clarify error message when qdisc kind is unknown
    978264fbc524 drm: panel-orientation-quirks: Add quirk for the 1Netbook OneXPlayer
    162e8d788545 NFSv4 expose nfs_parse_server_name function
    852c95db75a7 NFSv4 remove zero number of fs_locations entries error check
    75e67eed756a NFSv4.1: Fix uninitialised variable in devicenotify
    6efe39614039 nfs: nfs4clinet: check the return value of kstrdup()
    2acac498a507 NFSv4 only print the label when its queried
    891c4ebf3b94 nvme: Fix parsing of ANA log page
    d7d345c80727 NFSD: Fix offset type in I/O trace points
    34217d7730b9 NFSD: Clamp WRITE offsets
    5fde7ca7b17d NFS: Fix initialisation of nfs_client cl_flags field
    09295a989319 net: phy: marvell: Fix MDI-x polarity setting in 88e1118-compatible PHYs
    f84d17e6dd90 net: phy: marvell: Fix RGMII Tx/Rx delays setting in 88e1121-compatible PHYs
    60027834114d mmc: sdhci-of-esdhc: Check for error num after setting mask
    8a9511fd10ea ima: Do not print policy rule with inactive LSM labels
    89e51f2ab81c ima: Allow template selection with ima_template[_fmt]= after ima_hash=
    0939988b16a4 ima: Remove ima_policy file before directory
    ea58704f06f1 integrity: check the return value of audit_log_start()
    52871671099d Linux 5.4.179
    d692e3406e05 tipc: improve size validations for received domain records
    3a0a7ec5574b moxart: fix potential use-after-free on remove path

(From OE-Core rev: 7efa786ed2fb2f214c0a34cf933429ed31c9c510)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
Steve Sakoman
b82a9877d5 git update from 2.24.3 to 2.24.4
Security release, fixes CVE-2021-21300, so remove that patch.

22539ec3b5 unpack_trees(): start with a fresh lstat cache
0d58fef58a run-command: invalidate lstat cache after a command finished
684dd4c2b4 checkout: fix bug that makes checkout follow symlinks in leading path

(From OE-Core rev: 8606d99041c3c1a002b2300c59afc116050c73cc)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
Peter Kjellerstedt
8fdcbd703b u-boot: Correct the SRC_URI
This avoids a redirect.

(From OE-Core rev: 4da46e0423a7003fb689a8b6a03f5924b8f22cb9)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 879bc5098943cf6977c32555ac31cb21be7b46ae)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 2233e83da4fab1d6d34517f6ebf5860f4fd5b2a1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
zhengruoqin
f62b028452 wireless-regdb: upgrade 2022.02.18 -> 2022.04.08
(From OE-Core rev: 635d1ab7ed8e813e01f49b47894d978c8497df34)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c6ea7450a919f2b571746e7af350c1362e41f8e1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
wangmy
57e1d6d9a6 linux-firmware: upgrade 20220310 -> 20220411
License-Update:
    Version of driver files updated
    Added files for some drivers

(From OE-Core rev: de880e23bff4e0da0306ec61396044e1f3b48aa1)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 01684df3a51be476081ee21eb54c24fef00acb3f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-22 23:39:12 +01:00
Steve Sakoman
ef1323fbb7 poky.conf: Bump version for 3.1.16 release
(From meta-yocto rev: 7e0063a8546250c4c5b9454cfa89fff451a280ee)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:02 +01:00
Steve Sakoman
0ab1adc2fc documentation: update for 3.1.16 release
(From yocto-docs rev: e8cf0e7290d07448af3b55dcd478e200a10cee42)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:02 +01:00
Richard Purdie
1a14b4f693 libxshmfence: Correct LICENSE to HPND
The license in this code is listed as MIT and whilst it is compatible with and
usable as MIT, it actually looks like HPND. Clarify the license field accordingly.

(From OE-Core master rev: 922b645f443c33060a8990d32e6b7b62ea5497c3)

(From OE-Core rev: 8fd5133fc7f6bc84193ec6fcbc1746c59bfc8caf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:02 +01:00
Peter Kjellerstedt
076d50da2e metadata_scm.bbclass: Use immediate expansion for the METADATA_* variables
Define METADATA_BRANCH and METADATA_REVISION using immediate expansion.
This avoids running `git rev-parse HEAD` multiple times during recipe
parsing.

(From OE-Core rev: f76fc325520386c0d25c6d6b422c85e9fb87e663)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 34e1841ec14c545c73fbe03a9f946d43d65ab326)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Ralph Siemsen
39ba556a2e apt: add -fno-strict-aliasing to CXXFLAGS to fix SHA256 bug
Recently we've begun seeing issues with apt SHA256 generation/checking on some
distros (fedora 35, alma 8). The version of apt in dunfell uses its own
SHA256 code, not a standard library.

Investigation reveals that the issue is related to -fstrict-aliasing enabled by
-O2 optimization, so turn it off with -fno-strict-aliasing

(From OE-Core rev: dc61dfd7791976c70c93e0d253a8fdbd40d27f3b)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Martin Jansa
aee507fe6c license_image.bbclass: close package.manifest file
* fixes:
  NOTE: Executing write_package_manifest ...
  DEBUG: Executing python function write_package_manifest
  /OE/build/oe-core/openembedded-core/meta/classes/license_image.bbclass:23: ResourceWarning: unclosed file <_io.TextIOWrapper name='/OE/build/oe-core/tmp-glibc/deploy/licenses/core-image-minimal-qemux86-64/package.manifest' mode='w+' encoding='UTF-8'>
    'w+').write(output)
  ResourceWarning: Enable tracemalloc to get the object allocation traceback
  DEBUG: Python function write_package_manifest finished

[YOCTO #14772]

(From OE-Core rev: 3e88c663e65fbc1b2e77a8616af4371224ed0ca5)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b3114d5d438b7a63a276b4e825b62f3b1ebceed6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Alexandre Belloni
ba9b4222e1 pseudo: Fix handling of absolute links
Update to a version of pseudo which has a fix for absolute links,
evaluating them from the chroot path.

(From OE-Core rev: 4e79b3fa07d6b8d044f2fb21e691ff3683aee1ea)

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 33147b89bc3c9e9bdd53a942a5551d8a1d06130c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Richard Purdie
112973ae37 pseudo: Add patch to workaround paths with crazy lengths
Update to a version of pseudo which includes a workaround for crazy
long paths, as shown by the libfm failures from the libtool upgrade.

(From OE-Core rev: 5cac1e855e397b58c3c2b251a9794f3d480c8ad6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 67dfa32d82b8862e6e543c37315f211aba3ec28b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Richard Purdie
507183f4b0 git: Ignore CVE-2022-24975
Everyone I've talked to doesn't see this as a major issue. The CVE
asks for a documentation improvement on the --mirror option to
git clone as deleted content could be leaked into a mirror. For OE's
general users/use cases, we wouldn't build or ship docs so this wouldn't
affect us.

(From OE-Core rev: f35500a442d6a4564d52e23f9602a3f90a4ceee5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5dfe2dd5482c9a446f8e722fe51903d205e6770d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Ralph Siemsen
62aefd3864 xz: fix CVE-2022-1271
Malicious filenames can make xzgrep to write to arbitrary files
or (with a GNU sed extension) lead to arbitrary code execution.

Upstream-Status: Backport [https://tukaani.org/xz/xzgrep-ZDI-CAN-16587.patch]
CVE: CVE-2022-1271

(From OE-Core rev: da4180062f12aa855a0dd2c0dbe4f0721df67055)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Ross Burton
f36e87ec4f zlib: backport the fix for CVE-2018-25032
(From OE-Core rev: 27385658aa552b287c4f8f4585f9c783db834123)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Ralph Siemsen
170ce893e7 gzip: fix CVE-2022-1271
zgrep applied to a crafted file name with two or more newlines
can no longer overwrite an arbitrary, attacker-selected file.

Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/gzip.git/commit/?id=dc9740df61e575e8c3148b7bd3c147a81ea00c7c]
CVE: CVE-2022-1271

(From OE-Core rev: b7f0696bc60409af215549d26621526c1a93a002)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Richard Purdie
08a3ac8403 vim: Upgrade 8.2.4524 -> 8.2.4681
License change is a date in the license file only.

This includes a fix for CVE-2022-0943.

(From OE-Core rev: 1c68d33f4742df9bcec7d1032dab61d676f86371)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 69bc2f37d6ca7fa4823237b45dd698b8debca0a9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-21 21:26:01 +01:00
Richard Purdie
b6ce93d565 conf.py/poky.yaml: Move version information to poky.yaml and read in conf.py
Merge in the changes from master allowing conf.py to use information from
poky.yaml. This allows the head version mapped to X.999 on the website to
have the version information displayed clearly and correctly.

(From yocto-docs rev: df813c6d6c1477519f13699987215c8d9bc0a7bf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-20 17:26:55 +01:00
Richard Purdie
ce50594d70 bitbake: server/process: Disable gc around critical section
The python gc can trigger whilst we're holding the event stream lock
and when cleaning up objects, they can trigger warnings. This translates
into a new event which would then need the lock and we can deadlock.

Disable gc whilst we hold that lock to avoid this unfortunate and
problematic situation.

(Bitbake rev: 0784db7dd0fef6f0621ad8d74372f44e87fef950)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 96a6303949cefd469bcf5ed250ff512271354357)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-16 23:03:41 +01:00
Oleksandr Kravchuk
38c55bd388 tzdata: update to 2022a
(From OE-Core rev: aa762b7ca2417b80dd114a4ab263d69074912f82)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b280aecd79e95811f8baec6c4479c5752c54d9e5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-09 08:27:11 +01:00
Peter Kjellerstedt
86285152bd python3-jinja2: Correct HOMEPAGE
(From OE-Core rev: 7d429e8385ca01728d797abe8ab9575140734476)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 261778c1e3665b34c0d4e49bda63b520d5335587)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-09 08:27:11 +01:00
Martin Jansa
6b6d412f59 boost: fix native build with glibc-2.34
(From OE-Core rev: 64ba0d40a4c77a23778c51511f2d167e2056eea3)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-09 08:27:11 +01:00
Richard Purdie
331a9f9068 mirrors: Add missing gitsm entries for yocto/oe mirrors
The missing gitsm:// mappings looks like an oversight, add them.

(From OE-Core rev: f748360a854a5c80c8008ba6ac90546865651f10)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6600b9fca7888fb41647cd000b9efb7f0762dfde)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-09 08:27:11 +01:00
Ralph Siemsen
7e0d217559 bind: update to 9.11.37
Security Fixes

The rules for acceptance of records into the cache have been tightened
to prevent the possibility of poisoning if forwarders send records
outside the configured bailiwick. (CVE-2021-25220)

License-Update: copyright years

(From OE-Core rev: 58aea0c02bb101dbb378afb578b70b8730cce6fd)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-09 08:27:11 +01:00
Ralph Siemsen
64205bf3ec bluez5: fix CVE-2022-0204
Fix heap overflow when appending prepare writes

The code shall check if the prepare writes would append more the
allowed maximum attribute length.

Upstream-Status: Backport [591c546c53]
CVE: CVE-2022-0204

(From OE-Core rev: 058dec11cc6580212c6d4560d0f0e5b704d501dc)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-09 08:27:11 +01:00
Davide Gardenal
048094bcf9 go: backport patch fix for CVE-2021-38297
Patch taken from
4548fcc8df
from the following issue
https://github.com/golang/go/issues/48797

Original repo
https://go.googlesource.com/go/+/77f2750f4398990eed972186706f160631d7dae4

(From OE-Core rev: e9e3c3969544d18f0da90a10156c40da84d5b549)

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-09 08:27:11 +01:00
Ross Burton
f80b5868fa grub: ignore CVE-2021-46705
This is specific to SUSE Linux.

(From OE-Core rev: 10e12faf6172f399da7b3d73a33bd908aa8f32b3)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 594baef3b08d40fbbf1899f4cadeb9931c035c1a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-09 08:27:11 +01:00
Scott Weaver
ab03f130e4 bitbake: fetch2: add check for empty SRC_URI hash string
No error was being reported when the hash string was set to empty.
For example: SRC_URI[md5sum] = ""

On a related note (not a bug):
Because whitespace in the string will result in a checksum mismatch, the error
message was updated to make it a little clearer why the error was thrown.
For example: SRC_URI[md5sum] = " " or
SRC_URI[md5sum] = " 209f8326f5137d8817a6276d9577a2f1"

Now creates a message like this:
File: '/home/scott/yocto-cache/downloads/rsync-3.2.3.tar.gz' has md5
checksum '209f8326f5137d8817a6276d9577a2f1' when ' 209f8326f5137d8817a6276d9577a2f1' was expected

[YOCTO #14232]

(Bitbake rev: d8c2175f6a7b5fdf111d6a073b2c3dbd3c0b061d)

Signed-off-by: Scott Weaver <weaverjs@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a13510d0028e234ea2f4744b0d0c38558395c70f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-05 20:49:51 +01:00
Steve Sakoman
a743227d81 xserver-xorg: update to 1.20.14
Fixes: CVE-2021-4008 CVE-2021-4009 CVE-2021-4010 CVE-2021-4011

Stable branch update:

97c5b7777 (HEAD -> server-1.20-branch, tag: xorg-server-1.20.14, origin/server-1.20-branch) xserver 1.20.14
35b4681c7 render: Fix out of bounds access in SProcRenderCompositeGlyphs()
67425fcab Xext: Fix out of bounds access in SProcScreenSaverSuspend()
6bb8aeb30 xfixes: Fix out of bounds access in *ProcXFixesCreatePointerBarrier()
acc50e609 record: Fix out of bounds access in SwapCreateRegister()
5ff3310b6 modesetting: Allow Present flips with mismatched stride on atomic drivers.
574fe59ef Fix RandR leasing for more than 1 simultaneously active lease.

(From OE-Core rev: aa2bb4f62dd7e5c6fdf220264c3d62fbf2cc7d16)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-01 23:22:43 +01:00
Steve Sakoman
f0240a36a3 xserver-xorg: update to 1.20.13
Stable branch update:

86a72cb19 (tag: xorg-server-1.20.13) xserver 1.20.13
f85e4edba modesetting: unflip not possible when glamor is not set
b03d7184b present: fallback get_crtc to return crtc belonging to screen with present extension

(From OE-Core rev: 3e9ecd77449a5bd70a55d47db7a2dfb85d44d9c2)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-01 23:22:43 +01:00
Steve Sakoman
a5f13b762b xserver-xorg: update to 1.20.12
Stable branch update:

b88ad0b34 (tag: xorg-server-1.20.12) xserver 1.20.12
8dea50223 Build xz tarballs instead of bzip2
b7adbac7d hw/dmx/config: Link directly with libdmxconfig.a
e49738f0c xfree86: Fix NULL pointer dereference crash
9a59631a4 glx: Fix use after free in MakeCurrent
1fc0ca6e6 xfree86: Fix out of array bound access to xf86Entities
a4210fe07 xfree86: Change displays array to pointers array to fix invalid pointer issues after table reallocation
22449f630 glamor: Avoid using GL_QUADS on V3D
d16f64031 modesetting: Fix possible_crtcs
f1e76731a modesetting: Update props for dynamically added outputs
7bf477711 xquartz: Ensure the mouse pointer is shown when switching to a native macOS alert or window
3ef6e7b76 xquartz: Fix appFlags build failure with macOS 10.15+ SDKs
2a83c840c glx: Set ContextTag for all contexts
394b6cc1c glx: don't create implicit GLXWindow if one already exists
0086535e7 modesetting: Remove few common functions from ms namespace
321964443 modesetting: remove unnecessary ms_covering_xf86_crtc dup of ms_covering_randr_crtc
52eb801d0 modesetting: Find crtc on slave outputs as fallback instead of returning primary crtc
c7a2da7b9 present: fix msc offset calculation in screen mode
31544e68e present: Use crtc's screen present operation for syncing
464cbee1c modesetting: Initialize present extension despite glamor is disabled
4e11bd390 modesetting: Disable reverse prime offload mode for displays running on evdi,udl
627252933 dix: Guard against non-existing PtrFeedbackPtr
d41b43345 xwayland: Add PtrFeedback to the touch device
23a53f0d5 glx: fixup symbol name for get_extensions function

(From OE-Core rev: e8416c75630a27527faedeab218a8ba71a1eb5ea)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-01 23:22:43 +01:00
Steve Sakoman
884024d1d8 xserver-xorg: update to 1.20.11
Fixes CVE-2021-3472

Stable branch update:

6b767cdf6 (tag: xorg-server-1.20.11) xserver 1.20.11
a1a1aa2c1 Fix XChangeFeedbackControl() request underflow
8890c44a7 xquartz: Remove a check for NSAppKitVersionNumber >= NSAppKitVersionNumber10_7
3c3680c36 xquartz: Don't include strndup.c any more since we no longer support 10.8 and older
e1fdc856a xquartz: Add a launch trampoline to better integrate with modern versions of macOS
8f8e9c53e xquartz: Don't process AppKit events if we haven't finished initializing
aa6f84021 xquartz: Allocate each fbconfig separately
7aa51bb57 xquartz: Fix a compiler warning about const incompatible pointer assignment
d751c46bd xquartz: Fix build with sparkle enabled
03c2e12a8 xquartz: Silence a compiler warning about missing internal methods on NSApplication
fcbd57367 xquartz: Rewrite Window menu handling to not depend on X11App.windowsMenu.numberOfItems being correct in -awakeFromNib
b27c6602b xquartz: Convert X11Controller ivars into @properties
625c7e4de xquartz: Convert X11Application ivars into @properties
3017fec60 xquartz: Fold quartzCommon.h into quartz.h
bdaff44f9 xquartz: Fold away some unnecessary hops to X11Controller through X11Application
7d22031a6 xquartz: Fold away array_with_strings_and_numbers and simplify with more modern Objective-C
937b63ff4 xqaurtz: Remove message_kit_thread() and use dispatch instead
e531d3a4c xquartz: Use objc_autoreleasePoolPush / objc_autoreleasePoolPop directly in QuartzBlockHandler
08cf6c90f xquartz: Minor code modernization -- @autoreleasepool adoption
26e0c59a9 xquartz: Remove some dead code for compatibility with older nibs
2853f3896 xquartz: Remove a workaround for AppKit versions older than Lion
1edc9b980 xquartz: Apply spell check fixes from master for easier cherry-picking of changes in xquartz
67f25cc18 xquartz: Fix applications menu table background color for dark mode
4028c2ad1 xquartz: Apply Xcode 12.4 automatic updates to nibs
ff1c8e2f7 xquartz: Update the about box copyright to 2021
a16df6028 xquartz: Ensure we call into TIS on the main thread
2087b7782 xquartz: Ensure that NSRunAlertPanel() is run on the main thread
2fe5bf4ba xquartz: Remove support for older versions of libXplugin
bc1a2a0d8 xquartz: Remove unused include of AvailabilityMacros.h from various sources
393da8b43 xquartz: Remove support for building for i386
43aaa1093 xquartz: Remove support for Mountain Lion and earlier versions of macOS
fb492686d xquartz: Remove support for Lion and earlier versions of macOS
34784415a xquartz: Remove support for SnowLeopard and earlier versions of macOS
d3f81ecaf xquartz: Remove check for libdispatch now that we don't support pre-SnowLeopard
739c5bd32 xquartz: Remove support for Leopard and earlier versions of macOS
2d7eb8249 xquartz: Remove support for Tiger and earlier versions of macOS
080f9eb76 os: Remove support for Tiger and earlier versions of macOS
be9d2fd87 xquartz: Remove support for Panther and earlier versions of macOS
d39eb5840 Fix typo "XQaurtz" in Xquartz.man
1f2b73176 XQuartz: recognize F16-F20 and Menu keys
ecc4ebf53 xquartz: Add stub ddxInputThread()
f5df31c76 meson.build: KMS support also depends on dri2
b09f5f42d xwayland: Replace LogMessage with LogMessageVerb
c17872d50 xkb: Fix heap overflow caused by optimized away min.

(From OE-Core rev: 928759347e18e56c991959d1a33aeb87ba6de4ee)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-01 23:22:43 +01:00
Steve Sakoman
e2ecbb13db xserver-xorg: update to 1.20.10
Remove CVE patches contained in this release.

Stable branch update:

bc111a2e6 (tag: xorg-server-1.20.10) xserver 1.20.10
06d1a032e Check SetMap request length carefully.
7ccb3b0ea Fix XkbSetDeviceInfo() and SetDeviceIndicators() heap overflows
440ed5948 present/wnmd: Translate update region to screen space
54f9af1c6 modesetting: keep going if a modeset fails on EnterVT
bd0f53725 modesetting: check the kms state on EnterVT
5c400cae1 configure: Build hashtable for Xres and glvnd
253569a3d xwayland: Create an xwl_window for toplevel only
0811a9ff7 xwayland: non-rootless requires the wl_shell protocol
b3ae038c3 glamor: Update pixmap's devKind when making it exportable
d6c389cb8 os: Fix instruction pointer written in xorg_backtrace
c3e4c1a0f present/wnmd: Execute copies at target_msc-1 already
96ef31e0f present/wnmd: Move up present_wnmd_queue_vblank
669e40390 present: Add present_vblank::exec_msc field
dae234efd present: Move flip target_msc adjustment out of present_vblank_create
1930ed233 xwayland: Remove pending stream reference when freeing
1ac389dda xwayland: use drmGetNodeTypeFromFd for checking if a node is a render one
d108c2c82 xwayland: Do not discard frame callbacks on allow commits
174cb91d8 present/wnmd: Remove dead check from present_wnmd_check_flip
51ee6e5ce xwayland: Check window pixmap in xwl_present_check_flip2
f4006d795 present/wnmd: Can't use page flipping for windows clipped by children
1e84fda20 xfree86: Take second reference for SavedCursor in xf86CursorSetCursor
8c3c8bda2 glamor: Fix glamor_poly_fill_rect_gl xRectangle::width/height handling
b28c88288 include: Increase the number of max. input devices to 256.
af4c84ce8 Revert "linux: Make platform device probe less fragile"
39cb95e95 Revert "linux: Fix platform device PCI detection for complex bus topologies"
4b6fce597 Revert "linux: Fix platform device probe for DT-based PCI"

(From OE-Core rev: ac86083917380ca8398307f0e59b7bb73c727b4f)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-01 23:22:43 +01:00
Steve Sakoman
14127d25e7 xserver-xorg: update to 1.20.9
Remove CVE patches contained in this release.

Stable branch update:

afb77415e (tag: xorg-server-1.20.9) xserver 1.20.9
705d72139 Fix XRecordRegisterClients() Integer underflow
5b384e767 Fix XkbSelectEvents() integer underflow
eff3f6cdd Fix XIChangeHierarchy() integer underflow
1d3a1092c Correct bounds checking in XkbSetNames()
249a12c54 linux: Fix platform device probe for DT-based PCI
5c96eb5f4 linux: Fix platform device PCI detection for complex bus topologies
74b7427c4 linux: Make platform device probe less fragile
4979ac8f0 fix for ZDI-11426
2720b8715 xfree86: add drm modes on non-GTF panels
7da8e7bab present: Check valid region in window mode flips
4a65b6617 xwayland: Handle NULL xwl_seat in xwl_seat_can_emulate_pointer_warp
10cabe0b9 xwayland: Propagate damage x1/y1 coordinates in xwl_present_flip
3b51978b9 doc: Update URLs in Xserver-DTrace.xml
6cbd6a09b xwayland: Use a fixed DPI value for core protocol
d4e8c4622 xwayland: only use linux-dmabuf if format/modifier was advertised
c726ceacc hw/xfree86: Avoid cursor use after free
0679d4660 Update URL's in man pages
3059a2e62 xwayland: Disable the MIT-SCREEN-SAVER extension when rootless
23c55ec32 xwayland: Hold a pixmap reference in struct xwl_present_event
1179938c1 randr: Check rrPrivKey in RRHasScanoutPixmap()
4912f693e modesetting: Fix front_bo leak at drmmode_xf86crtc_resize on XRandR rotation
ccbcf083d xwayland: Store xwl_tablet_pad in its own private key
cc3613559 xwayland: Initialise values in xwlVidModeGetGamma()
533cc6ca0 xwayland: Fix crashes when there is no pointer
3aa31823d xwayland: Clear private on device removal
22c0808ac xwayland: Free all remaining events in xwl_present_cleanup
37779d7f4 xwayland: Always use xwl_present_free_event for freeing Present events
ba52e5eb0 present/wnmd: Free flip_queue entries in present_wnmd_clear_window_flip
b3310ed50 present/wnmd: Keep pixmap pointer in present_wnmd_clear_window_flip
fc297c87d xwayland: import DMA-BUFs with GBM_BO_USE_RENDERING only
0430d13c1 xwayland: Fix infinite loop at startup
b8b10e293 modesetting: Disable pageflipping when using a swcursor
271934db9 dix: do not send focus event when grab actually does not change

(From OE-Core rev: 9fba10e19c8de5df1361e222bf255c0d9dad949f)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-01 23:22:43 +01:00
Steve Sakoman
67f1490197 util-linux: fix CVE-2022-0563
A flaw was found in the util-linux chfn and chsh utilities when compiled
with Readline support. The Readline library uses an "INPUTRC" environment
variable to get a path to the library config file. When the library cannot
parse the specified file, it prints an error message containing data from
the file. This flaw allows an unprivileged user to read root-owned files,
potentially leading to privilege escalation. This flaw affects util-linux
versions prior to 2.37.4.

Backport patch from upstream:
faa5a3a83a

Patch required slight modifications to apply cleanly to util-linux 2.35.1

(From OE-Core rev: dffbf6301612ca91f6a1c306b9dde754b44912bb)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-01 23:22:43 +01:00
Richard Purdie
631df12969 oeqa/selftest/tinfoil: Fix intermittent event loss issue in test
We've been seeing occasional test failures on the autobuilder where
we don't see the expected events. It turns out this is due to
run_command being helpful and eating them if the server is fast and
the client slow. Adding a sleep into the run_command code makes the
failure consistent.

Use a new "handle_events" argument to allow us to handle all the
events which is what this test requires.

[YOCTO #14585]

(From OE-Core rev: da5cba5ec56cc437ede46d8aa71219a2a34cbe9e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 2292983c717b8cadcf0c443bb7b649a84ea5ad57)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Minjae Kim
5a05390de1 virglrenderer: update SRC_URI
The git repo for virglrenderer was changed, so update the
SRC_URI accordingly with the new link.

(From OE-Core rev: 619d9ba2bb1f869869937f7d7942cc77580fdc08)

Signed-off-by:Minjae Kim <flowergom@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Minjae Kim
b6e2a1acd4 gnu-config: update SRC_URI
The git repo for gnu-config was changed, so update the
SRC_URI accordingly with the new link.

(From OE-Core rev: 4ee75d865b34f615bc649004e9dd0460eaf42dbf)

Signed-off-by:Minjae Kim <flowergom@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Ralph Siemsen
82abf31270 libxml2: fix CVE-2022-23308 regression
The fix for the CVE in 2.9.13 caused a regression which
was addressed after 2.9.13.  We import that patch here.

(From OE-Core rev: 906ffe5bf83c0e587299aaedb9382ce04c3c7acf)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Davide Gardenal
a27aa2316f ghostscript: backport patch fix for CVE-2021-3781
Upstream advisory:
https://ghostscript.com/blog/CVE-2021-3781.html

Other than the CVE fix other two commits are backported
to fit the patch.

(From OE-Core rev: ce856e5e07589d49d5ff84b515c48735cc78cd01)

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Steve Sakoman
4391ddecb2 ghostscript: fix CVE-2020-15900 and CVE-2021-45949 for -native
CVE patches (and the stack limits check patch) should have been
added to SRC_URI_BASE so that they are applied for both target
and -native packages.

(From OE-Core rev: da9b7b8973913c80c989aee1f5b34c98362725a8)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Davide Gardenal
92b8b18ca9 apt: backport patch fix for CVE-2020-3810
Upstream commit:
dceb1e49e4/apt-pkg/contrib/arfile.cc

CVE: CVE-2020-3810

(From OE-Core rev: 2c58d4691b07230616272f2727e0ad0a345064be)

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Davide Gardenal
d69c49f33a qemu: backport patch fix for CVE-2020-13791
Upstream patch:
https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg00979.html

CVE: CVE-2020-13791

(From OE-Core rev: 6d4e6302fa21b1c663b94b05088ecf9b9d544c0a)

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Ross Burton
513cfaa43d python3: ignore CVE-2022-26488
This CVE is specific to Microsoft Windows, so we can ignore it.

(From OE-Core rev: d966a07d1f04aa76a4970d4af141f817197be0d2)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 2bd3c5a93988140d9927340b3af68785ae03db65)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Steve Sakoman
e779ccdf4e libsolv: fix CVE: CVE-2021-44568-71 and CVE-2021-44573-77
The existing patch for CVE-2021-3200 also fixes CVE-2021-44568 through
CVE-2021-44671 and CVE-2021-44573 through CVE-2021-44677, so update
CVE tags in patch to reflect this.

Reference:

https://github.com/openSUSE/libsolv/issues/426

(From OE-Core rev: 3096134d25fc4cf9bd18839838a62a6c89344e31)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-31 21:09:33 +01:00
Richard Purdie
d084cd4388 poky: Drop PREMIRRORS entries for scms
The reasons for this are lost in the mists of time. These are already
in OE-Core as MIRRORS and we should be falling back to the project as
a backup, not a default. Update accordingly.

(From meta-yocto rev: 99435619a3d5f6afb5b5bb4169fc7b4ef31556dd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1b71a3b9418fd928fb72bd23898cffe70c43d9d5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-30 18:34:18 +01:00
Richard Purdie
8b09f50d1a bitbake: tinfoil: Allow run_command not to wait on events
There are some commands where we want to see the events returned so allow
the caller to request this. This also allows us to fix an infamous bug in
the tinfoil testsuite in OE-Core.

(Bitbake rev: 41bf1fa85a540232dcf92fe473c3b3c4cd7259dd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0e8421c41d97d5d50a553d70c8f775d521f1a199)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-28 13:30:50 +01:00
Richard Purdie
7616c49355 bitbake: server/process: Note when commands complete in logs
Its hard to tell from the server logs whether commands complete or not
(or how long they take). Add extra info to allow more debugging of
server timeouts.

(Bitbake rev: d388f6d159b9d7e1ed3f199f2d1aca0c473cda6d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 56285ada585ec1481449522282b335bcb5a2671e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-28 13:30:50 +01:00
Richard Purdie
8183149d3e oeqa/selftest/tinfoil: Improve tinfoil event test debugging
We still see occasional test failures for unknown reasons. Add some debugging to
show whether the matching files event was received even if the command complete wasn't.

Also ensure any commandfailed/commandexit event is shown.

This will hopefully aid debugging the next time the issue occurs.

(From OE-Core rev: 71015408c60ddf2e9af00cc8574815971e1b689d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2f7a788bb51ef09ee23c94176285437ea760fab7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Richard Purdie
22be09c708 oeqa/runtime/ping: Improve failure message to include more detail
When the ping test fails due to a timeout we only get limited debug
information. Tweak the code to improve that in case it sheds any light
on intermittent failures.

(From OE-Core rev: df98e96c7a1601798caf7f4882b09406a4fdacd6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d81704057950e1970ef7f673fa771834fd2b3f1e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Richard Purdie
4c3d1b0120 python3targetconfig: Use for nativesdk too
nativesdk is a cross compiled target and therefore should use the target
config, not the native one. Copy the target entries accordingly.

(From OE-Core rev: e997487c0068bfe4017fc98c4fa5b51f660a1b4e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b1b5fec350b390fa7f2d26966df1411b032faf87)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Changhyeok Bae
08b8cd174d mobile-broadband-provider-info: upgrade 20210805 -> 20220315
(From OE-Core rev: 9e3758114cbc74d820c5904b81b011e5c4a1715b)

Signed-off-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ed02ee8f20094f598448d58875cb7be8a24a019f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Alexander Kanavin
c740a0b5a3 mobile-broadband-provider-info: upgrade 20201225 -> 20210805
(From OE-Core rev: b60558f44d0145c0d68a78b3eabe483cb016700f)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 93a335993ce592a8ee34fc9a490e327f2775e03f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
wangmy
c1f606809d linux-firmware: upgrade 20220209 -> 20220310
License-Update:
 year updated to 2022
 Version of some driver files updated
 Added files for some drivers

(From OE-Core rev: ca8fa031e79b6893b4b2a9f906134e6ef4fe2b0e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit be1b1d204c89035c54a626db46c5054e553b82c2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Tim Orling
c625f6524d python3: upgrade 3.8.12 -> 3.8.13
Security and bug fixes (including upgrades for security and bug fixes to
bundled components).

For changes see:
https://docs.python.org/release/3.8.13/whatsnew/changelog.html#python-3-8-13-final

CVE: CVE-2022-26488

License-Update: Add 2022 to copyright years

* Update bpo-36852 patch to apply after change in 3.8.13

(From OE-Core rev: bcad36b6d34b3176dc313ed6af99897cc442bf2b)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Ovidiu Panait
95bdd2e6f8 openssl: upgrade 1.1.1l -> 1.1.1n
Upgrade openssl 1.1.1l -> 1.1.1n to fix CVE-2022-0778:
https://nvd.nist.gov/vuln/detail/CVE-2022-0778
https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=3118eb64934499d93db3230748a452351d1d9a65

This also fixes an evp_extra_test ptest failure introduced by openssl-1.1.1m:
"""
not ok 19 - test_signatures_with_engine
ERROR: (ptr) 'e = ENGINE_by_id(engine_id) != NULL' failed @ ../openssl-1.1.1m/test/evp_extra_test.c:1890
0x0
not ok 20 - test_cipher_with_engine
<snip>
"""

The ptest change is already present in Yocto master since oe-core
commit 5cd40648b0ba ("openssl: upgrade to 3.0.1").

(From OE-Core rev: 4d33b7ce0c50af81a01014a7d7d37c93a041a28d)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Minjae Kim
8b369ca021 bluez5: fix CVE-2021-3658
adapter incorrectly restores Discoverable state after powered down

Upstream-Status: Backport [b497b5942a]
CVE: CVE-2021-3658
(From OE-Core rev: 12669ab256a3ffbcb4bcbaba1bc9c690920d32b1)

Signed-off-by:Minjae Kim <flowergom@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Davide Gardenal
094a9a9a23 qemu: backport fix for CVE-2020-13253
Backport commits from the following MR:
https://git.qemu.org/?p=qemu.git;a=commit;h=3a9163af4e3dd61795a35d47b702e302f98f81d6

Two other commits have been backported in order to be able
to correctly apply the patches.

CVE: CVE-2020-13253

(From OE-Core rev: b258b0deccde2d8fd2c4372dd0f376c7b95945f5)

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Davide Gardenal
9d155cbf95 re2c: backport fix for CVE-2018-21232
Backport commits from the following issue:
https://github.com/skvadrik/re2c/issues/219

CVE: CVE-2018-21232

(From OE-Core rev: 8c5ee47d446b36d6832acc8452687f50101f3e65)

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Ralph Siemsen
cb78d34faf libxml2: move to gitlab.gnome.org
The project has migrated from www.xmlsoft.org to gitlab.gnome.org.
Update the homepage accordingly, and use gnomebase to construct the
download URL, rather than including it in SRC_URI explicitly.

Note that the download is now in .xz format rather than .gz, so the
sha256sum is updated accordingly. Post-decompression tarballs are
identical, so there is no change to the libxml2 code.

(From OE-Core rev: 38681a213a3b5f57b37257f7d96c4e970032ffe4)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8bc17ceb997f8f31a03e5f5efc41c03ef1df3add)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Ralph Siemsen
0c0b8487c9 libxml2: backport fix for CVE-2022-23308
Use-after-free of ID and IDREF attributes, which could result in denial
of service.

https://nvd.nist.gov/vuln/detail/CVE-2022-23308
CVE: CVE-2022-23308

(From OE-Core rev: 6c2f91ce93921c9bfe52c62c0347b992df98d62d)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-23 23:16:12 +00:00
Steve Sakoman
3ec873af83 documentation: update for 3.1.15 release
(From yocto-docs rev: 14e7f0c3d8b482e11e9df18364b39019779a619c)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-22 22:32:30 +00:00
Richard Purdie
52b59e8841 build-appliance-image: Update to dunfell head revision
(From OE-Core rev: ff90d0e91aec252d3f5986df9ce02293cddadbca)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-03-14 14:45:39 +00:00
84 changed files with 3440 additions and 1174 deletions

View File

@@ -562,6 +562,9 @@ def verify_checksum(ud, d, precomputed={}):
checksum_expected = getattr(ud, "%s_expected" % checksum_id)
if checksum_expected == '':
checksum_expected = None
return {
"id": checksum_id,
"name": checksum_name,
@@ -612,7 +615,7 @@ def verify_checksum(ud, d, precomputed={}):
for ci in checksum_infos:
if ci["expected"] and ci["expected"] != ci["data"]:
messages.append("File: '%s' has %s checksum %s when %s was " \
messages.append("File: '%s' has %s checksum '%s' when '%s' was " \
"expected" % (ud.localpath, ci["id"], ci["data"], ci["expected"]))
bad_checksum = ci["data"]

View File

@@ -25,6 +25,7 @@ import subprocess
import errno
import re
import datetime
import gc
import bb.server.xmlrpcserver
from bb import daemonize
from multiprocessing import queues
@@ -221,6 +222,7 @@ class ProcessServer(multiprocessing.Process):
try:
print("Running command %s" % command)
self.command_channel_reply.send(self.cooker.command.runCommand(command))
print("Command Completed")
except Exception as e:
logger.exception('Exception in server main event loop running command %s (%s)' % (command, str(e)))
@@ -670,8 +672,10 @@ class ConnectionWriter(object):
def send(self, obj):
obj = multiprocessing.reduction.ForkingPickler.dumps(obj)
gc.disable()
with self.wlock:
self.writer.send_bytes(obj)
gc.enable()
def fileno(self):
return self.writer.fileno()

View File

@@ -448,7 +448,7 @@ class Tinfoil:
self.run_actions(config_params)
self.recipes_parsed = True
def run_command(self, command, *params):
def run_command(self, command, *params, handle_events=True):
"""
Run a command on the server (as implemented in bb.command).
Note that there are two types of command - synchronous and
@@ -468,7 +468,7 @@ class Tinfoil:
try:
result = self.server_connection.connection.runCommand(commandline)
finally:
while True:
while handle_events:
event = self.wait_event()
if not event:
break

View File

@@ -15,9 +15,27 @@
import os
import sys
import datetime
try:
import yaml
except ImportError:
sys.stderr.write("The Yocto Project Sphinx documentation requires PyYAML.\
\nPlease make sure to install pyyaml python package.\n")
sys.exit(1)
current_version = "3.1.14"
bitbake_version = "1.46"
# current_version = "dev"
# bitbake_version = "" # Leave empty for development branch
# Obtain versions from poky.yaml instead
with open("poky.yaml") as data:
buff = data.read()
subst_vars = yaml.safe_load(buff)
if "DOCCONF_VERSION" not in subst_vars:
sys.stderr.write("Please set DOCCONF_VERSION in poky.yaml")
sys.exit(1)
current_version = subst_vars["DOCCONF_VERSION"]
if "BITBAKE_SERIES" not in subst_vars:
sys.stderr.write("Please set BITBAKE_SERIES in poky.yaml")
sys.exit(1)
bitbake_version = subst_vars["BITBAKE_SERIES"]
# String used in sidebar
version = 'Version: ' + current_version

View File

@@ -1,11 +1,13 @@
DISTRO : "3.1.14"
DISTRO : "3.1.16"
DISTRO_NAME_NO_CAP : "dunfell"
DISTRO_NAME : "Dunfell"
DISTRO_NAME_NO_CAP_MINUS_ONE : "zeus"
YOCTO_DOC_VERSION : "3.1.14"
YOCTO_DOC_VERSION : "3.1.16"
YOCTO_DOC_VERSION_MINUS_ONE : "3.0.4"
DISTRO_REL_TAG : "yocto-3.1.14"
POKYVERSION : "23.0.14"
DISTRO_REL_TAG : "yocto-3.1.16"
DOCCONF_VERSION : "3.1.16"
BITBAKE_SERIES : "1.46"
POKYVERSION : "23.0.16"
YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"

View File

@@ -1,6 +1,6 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
DISTRO_VERSION = "3.1.15"
DISTRO_VERSION = "3.1.16"
DISTRO_CODENAME = "dunfell"
SDK_VENDOR = "-pokysdk"
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}', 'snapshot')}"
@@ -39,16 +39,6 @@ DISTRO_EXTRA_RDEPENDS_append_qemux86-64 = " ${POKYQEMUDEPS}"
TCLIBCAPPEND = ""
PREMIRRORS ??= "\
bzr://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
cvs://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
gitsm://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
hg://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
osc://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
p4://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
svn://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n"
SANITY_TESTED_DISTROS ?= " \
poky-2.7 \n \
poky-3.0 \n \

View File

@@ -2,7 +2,7 @@ SUMMARY = "Test recipe for recipeutils.patch_recipe()"
require recipeutils-test.inc
LICENSE = "Proprietary"
LICENSE = "HPND"
LIC_FILES_CHKSUM = "file://${WORKDIR}/somefile;md5=d41d8cd98f00b204e9800998ecf8427e"
DEPENDS += "zlib"

View File

@@ -9,8 +9,8 @@ python write_package_manifest() {
pkgs = image_list_installed_packages(d)
output = format_pkg_list(pkgs)
open(os.path.join(license_image_dir, 'package.manifest'),
'w+').write(output)
with open(os.path.join(license_image_dir, 'package.manifest'), "w+") as package_manifest:
package_manifest.write(output)
}
python license_create_manifest() {

View File

@@ -1,8 +1,3 @@
METADATA_BRANCH ?= "${@base_detect_branch(d)}"
METADATA_BRANCH[vardepvalue] = "${METADATA_BRANCH}"
METADATA_REVISION ?= "${@base_detect_revision(d)}"
METADATA_REVISION[vardepvalue] = "${METADATA_REVISION}"
def base_detect_revision(d):
path = base_get_scmbasepath(d)
return base_get_metadata_git_revision(path, d)
@@ -42,3 +37,8 @@ def base_get_metadata_git_revision(path, d):
except bb.process.ExecutionError:
rev = '<unknown>'
return rev.strip()
METADATA_BRANCH := "${@base_detect_branch(d)}"
METADATA_BRANCH[vardepvalue] = "${METADATA_BRANCH}"
METADATA_REVISION := "${@base_detect_revision(d)}"
METADATA_REVISION[vardepvalue] = "${METADATA_REVISION}"

View File

@@ -42,6 +42,7 @@ ftp://sourceware.org/pub http://ftp.gwdg.de/pub/linux/sources.redhat.com/sourcew
cvs://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
svn://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
gitsm://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
hg://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
bzr://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
p4://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n \
@@ -52,6 +53,7 @@ npm://.*/?.* http://downloads.yoctoproject.org/mirror/sources/ \n \
cvs://.*/.* http://sources.openembedded.org/ \n \
svn://.*/.* http://sources.openembedded.org/ \n \
git://.*/.* http://sources.openembedded.org/ \n \
gitsm://.*/.* http://sources.openembedded.org/ \n \
hg://.*/.* http://sources.openembedded.org/ \n \
bzr://.*/.* http://sources.openembedded.org/ \n \
p4://.*/.* http://sources.openembedded.org/ \n \

View File

@@ -15,3 +15,15 @@ do_compile_prepend_class-target() {
do_install_prepend_class-target() {
export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
}
do_configure:prepend:class-nativesdk() {
export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
}
do_compile:prepend:class-nativesdk() {
export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
}
do_install:prepend:class-nativesdk() {
export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
}

View File

@@ -6,6 +6,7 @@ from subprocess import Popen, PIPE
from oeqa.runtime.case import OERuntimeTestCase
from oeqa.core.decorator.oetimeout import OETimeout
from oeqa.core.exception import OEQATimeoutError
class PingTest(OERuntimeTestCase):
@@ -13,14 +14,17 @@ class PingTest(OERuntimeTestCase):
def test_ping(self):
output = ''
count = 0
while count < 5:
cmd = 'ping -c 1 %s' % self.target.ip
proc = Popen(cmd, shell=True, stdout=PIPE)
output += proc.communicate()[0].decode('utf-8')
if proc.poll() == 0:
count += 1
else:
count = 0
try:
while count < 5:
cmd = 'ping -c 1 %s' % self.target.ip
proc = Popen(cmd, shell=True, stdout=PIPE)
output += proc.communicate()[0].decode('utf-8')
if proc.poll() == 0:
count += 1
else:
count = 0
except OEQATimeoutError:
self.fail("Ping timeout error for address %s, count %s, output: %s" % (self.target.ip, count, output))
msg = ('Expected 5 consecutive, got %d.\n'
'ping output is:\n%s' % (count,output))
self.assertEqual(count, 5, msg = msg)

View File

@@ -87,14 +87,14 @@ class TinfoilTests(OESelftestTestCase):
with bb.tinfoil.Tinfoil() as tinfoil:
tinfoil.prepare(config_only=True)
tinfoil.set_event_mask(['bb.event.FilesMatchingFound', 'bb.command.CommandCompleted'])
tinfoil.set_event_mask(['bb.event.FilesMatchingFound', 'bb.command.CommandCompleted', 'bb.command.CommandFailed', 'bb.command.CommandExit'])
# Need to drain events otherwise events that were masked may still be in the queue
while tinfoil.wait_event():
pass
pattern = 'conf'
res = tinfoil.run_command('testCookerCommandEvent', pattern)
res = tinfoil.run_command('testCookerCommandEvent', pattern, handle_events=False)
self.assertTrue(res)
eventreceived = False
@@ -118,7 +118,7 @@ class TinfoilTests(OESelftestTestCase):
else:
self.fail('Unexpected event: %s' % event)
self.assertTrue(commandcomplete, 'Timed out waiting for CommandCompleted event from bitbake server')
self.assertTrue(commandcomplete, 'Timed out waiting for CommandCompleted event from bitbake server (Matching event received: %s)' % str(eventreceived))
self.assertTrue(eventreceived, 'Did not receive FilesMatchingFound event from bitbake server')
def test_setvariable_clean(self):

View File

@@ -15,6 +15,8 @@ CVE_PRODUCT = "grub2"
# Applies only to RHEL
CVE_CHECK_WHITELIST += "CVE-2019-14865"
# Applies only to SUSE
CVE_CHECK_WHITELIST += "CVE-2021-46705"
SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \

View File

@@ -14,13 +14,13 @@ PE = "1"
# repo during parse
SRCREV = "303f8fed261020c1cb7da32dad63b610bf6873dd"
SRC_URI = "git://git.denx.de/u-boot.git;branch=master \
SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master \
file://remove-redundant-yyloc-global.patch \
file://CVE-2020-8432.patch \
file://CVE-2020-10648-1.patch \
file://CVE-2020-10648-2.patch \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"
do_configure[cleandirs] = "${B}"

View File

@@ -4,7 +4,7 @@ DESCRIPTION = "BIND 9 provides a full-featured Domain Name Server system"
SECTION = "console/network"
LICENSE = "ISC & BSD"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=b88e7ca5f21908e1b2720169f6807cf6"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=89a97ebbf713f7125fe5c02223d3ae95"
DEPENDS = "openssl libcap zlib"
@@ -21,7 +21,7 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \
file://0001-avoid-start-failure-with-bind-user.patch \
"
SRC_URI[sha256sum] = "c953fcb6703b395aaa53e65ff8b2869b69a5303dd60507cba2201305e1811681"
SRC_URI[sha256sum] = "0d8efbe7ec166ada90e46add4267b7e7c934790cba9bd5af6b8380a4fbfb5aff"
UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
# stay at 9.11 until 9.16, from 9.16 follow the ESV versions divisible by 4

View File

@@ -54,6 +54,8 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
file://0001-test-gatt-Fix-hung-issue.patch \
file://CVE-2021-0129.patch \
file://CVE-2021-3588.patch \
file://CVE-2021-3658.patch \
file://CVE-2022-0204.patch \
"
S = "${WORKDIR}/bluez-${PV}"

View File

@@ -0,0 +1,95 @@
From b497b5942a8beb8f89ca1c359c54ad67ec843055 Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Thu, 24 Jun 2021 16:32:04 -0700
Subject: [PATCH] adapter: Fix storing discoverable setting
discoverable setting shall only be store when changed via Discoverable
property and not when discovery client set it as that be considered
temporary just for the lifetime of the discovery.
Upstream-Status: Backport [https://github.com/bluez/bluez/commit/b497b5942a8beb8f89ca1c359c54ad67ec843055]
Signed-off-by:Minjae Kim <flowergom@gmail.com>
---
src/adapter.c | 35 ++++++++++++++++++++++-------------
1 file changed, 22 insertions(+), 13 deletions(-)
diff --git a/src/adapter.c b/src/adapter.c
index 12e4ff5c0..663b778e4 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -560,7 +560,11 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings)
if (changed_mask & MGMT_SETTING_DISCOVERABLE) {
g_dbus_emit_property_changed(dbus_conn, adapter->path,
ADAPTER_INTERFACE, "Discoverable");
- store_adapter_info(adapter);
+ /* Only persist discoverable setting if it was not set
+ * temporarily by discovery.
+ */
+ if (!adapter->discovery_discoverable)
+ store_adapter_info(adapter);
btd_adv_manager_refresh(adapter->adv_manager);
}
@@ -2162,8 +2166,6 @@ static bool filters_equal(struct mgmt_cp_start_service_discovery *a,
static int update_discovery_filter(struct btd_adapter *adapter)
{
struct mgmt_cp_start_service_discovery *sd_cp;
- GSList *l;
-
DBG("");
@@ -2173,17 +2175,24 @@ static int update_discovery_filter(struct btd_adapter *adapter)
return -ENOMEM;
}
- for (l = adapter->discovery_list; l; l = g_slist_next(l)) {
- struct discovery_client *client = l->data;
+ /* Only attempt to overwrite current discoverable setting when not
+ * discoverable.
+ */
+ if (!(adapter->current_settings & MGMT_OP_SET_DISCOVERABLE)) {
+ GSList *l;
- if (!client->discovery_filter)
- continue;
+ for (l = adapter->discovery_list; l; l = g_slist_next(l)) {
+ struct discovery_client *client = l->data;
- if (client->discovery_filter->discoverable)
- break;
- }
+ if (!client->discovery_filter)
+ continue;
- set_discovery_discoverable(adapter, l ? true : false);
+ if (client->discovery_filter->discoverable) {
+ set_discovery_discoverable(adapter, true);
+ break;
+ }
+ }
+ }
/*
* If filters are equal, then don't update scan, except for when
@@ -2216,8 +2225,7 @@ static int discovery_stop(struct discovery_client *client)
return 0;
}
- if (adapter->discovery_discoverable)
- set_discovery_discoverable(adapter, false);
+ set_discovery_discoverable(adapter, false);
/*
* In the idle phase of a discovery, there is no need to stop it
@@ -6913,6 +6921,7 @@ static void adapter_stop(struct btd_adapter *adapter)
g_free(adapter->current_discovery_filter);
adapter->current_discovery_filter = NULL;
+ set_discovery_discoverable(adapter, false);
adapter->discovering = false;
while (adapter->connections) {
--
2.25.1

View File

@@ -0,0 +1,66 @@
From 0d328fdf6564b67fc2ec3533e3da201ebabcc9e3 Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Tue, 8 Jun 2021 16:46:49 -0700
Subject: [PATCH] shared/gatt-server: Fix heap overflow when appending prepare
writes
The code shall check if the prepare writes would append more the
allowed maximum attribute length.
Fixes https://github.com/bluez/bluez/security/advisories/GHSA-479m-xcq5-9g2q
Upstream-Status: Backport [https://github.com/bluez/bluez/commit/591c546c536b42bef696d027f64aa22434f8c3f0]
Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
CVE: CVE-2022-0204
---
src/shared/gatt-server.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/src/shared/gatt-server.c b/src/shared/gatt-server.c
index 0c25a97..20e14bc 100644
--- a/src/shared/gatt-server.c
+++ b/src/shared/gatt-server.c
@@ -816,6 +816,20 @@ static uint8_t authorize_req(struct bt_gatt_server *server,
server->authorize_data);
}
+static uint8_t check_length(uint16_t length, uint16_t offset)
+{
+ if (length > BT_ATT_MAX_VALUE_LEN)
+ return BT_ATT_ERROR_INVALID_ATTRIBUTE_VALUE_LEN;
+
+ if (offset > BT_ATT_MAX_VALUE_LEN)
+ return BT_ATT_ERROR_INVALID_OFFSET;
+
+ if (length + offset > BT_ATT_MAX_VALUE_LEN)
+ return BT_ATT_ERROR_INVALID_ATTRIBUTE_VALUE_LEN;
+
+ return 0;
+}
+
static void write_cb(struct bt_att_chan *chan, uint8_t opcode, const void *pdu,
uint16_t length, void *user_data)
{
@@ -846,6 +860,10 @@ static void write_cb(struct bt_att_chan *chan, uint8_t opcode, const void *pdu,
(opcode == BT_ATT_OP_WRITE_REQ) ? "Req" : "Cmd",
handle);
+ ecode = check_length(length, 0);
+ if (ecode)
+ goto error;
+
ecode = check_permissions(server, attr, BT_ATT_PERM_WRITE_MASK);
if (ecode)
goto error;
@@ -1353,6 +1371,10 @@ static void prep_write_cb(struct bt_att_chan *chan, uint8_t opcode,
util_debug(server->debug_callback, server->debug_data,
"Prep Write Req - handle: 0x%04x", handle);
+ ecode = check_length(length, offset);
+ if (ecode)
+ goto error;
+
ecode = check_permissions(server, attr, BT_ATT_PERM_WRITE_MASK);
if (ecode)
goto error;

View File

@@ -4,11 +4,12 @@ DESCRIPTION = "Mobile Broadband Service Provider Database stores service provide
SECTION = "network"
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=87964579b2a8ece4bc6744d2dc9a8b04"
SRCREV = "90f3fe28aa25135b7e4a54a7816388913bfd4a2a"
PV = "20201225"
SRCREV = "4cbb44a9fe26aa6f0b28beb79f9488b37c097b5e"
PV = "20220315"
PE = "1"
SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https;branch=master"
SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https;branch=main"
S = "${WORKDIR}/git"
inherit autotools

View File

@@ -1,145 +0,0 @@
From e9e726506cd2a3fd9c0f12daf8cc1fe934c7dddb Mon Sep 17 00:00:00 2001
From: Bernd Edlinger <bernd.edlinger@hotmail.de>
Date: Sat, 11 Dec 2021 20:28:11 +0100
Subject: [PATCH] Fix a carry overflow bug in bn_sqr_comba4/8 for mips 32-bit
targets
bn_sqr_comba8 does for instance compute a wrong result for the value:
a=0x4aaac919 62056c84 fba7334e 1a6be678 022181ba fd3aa878 899b2346 ee210f45
The correct result is:
r=0x15c72e32 605a3061 d11b1012 3c187483 6df96999 bd0c22ba d3e7d437 4724a82f
912c5e61 6a187efe 8f7c47fc f6945fe5 75be8e3d 97ed17d4 7950b465 3cb32899
but the actual result was:
r=0x15c72e32 605a3061 d11b1012 3c187483 6df96999 bd0c22ba d3e7d437 4724a82f
912c5e61 6a187efe 8f7c47fc f6945fe5 75be8e3c 97ed17d4 7950b465 3cb32899
so the forth word of the result was 0x75be8e3c but should have been
0x75be8e3d instead.
Likewise bn_sqr_comba4 has an identical bug for the same value as well:
a=0x022181ba fd3aa878 899b2346 ee210f45
correct result:
r=0x00048a69 9fe82f8b 62bd2ed1 88781335 75be8e3d 97ed17d4 7950b465 3cb32899
wrong result:
r=0x00048a69 9fe82f8b 62bd2ed1 88781335 75be8e3c 97ed17d4 7950b465 3cb32899
Fortunately the bn_mul_comba4/8 code paths are not affected.
Also the mips64 target does in fact not handle the carry propagation
correctly.
Example:
a=0x4aaac91900000000 62056c8400000000 fba7334e00000000 1a6be67800000000
022181ba00000000 fd3aa87800000000 899b234635dad283 ee210f4500000001
correct result:
r=0x15c72e32272c4471 392debf018c679c8 b85496496bf8254c d0204f36611e2be1
0cdb3db8f3c081d8 c94ba0e1bacc5061 191b83d47ff929f6 5be0aebfc13ae68d
3eea7a7fdf2f5758 42f7ec656cab3cb5 6a28095be34756f2 64f24687bf37de06
2822309cd1d292f9 6fa698c972372f09 771e97d3a868cda0 dc421e8a00000001
wrong result:
r=0x15c72e32272c4471 392debf018c679c8 b85496496bf8254c d0204f36611e2be1
0cdb3db8f3c081d8 c94ba0e1bacc5061 191b83d47ff929f6 5be0aebfc13ae68d
3eea7a7fdf2f5758 42f7ec656cab3cb5 6a28095be34756f2 64f24687bf37de06
2822309cd1d292f8 6fa698c972372f09 771e97d3a868cda0 dc421e8a00000001
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/17258)
(cherry picked from commit 336923c0c8d705cb8af5216b29a205662db0d590)
Upstream-Status: Backport [https://git.openssl.org/gitweb/?p=openssl.git;a=patch;h=e9e726506cd2a3fd9c0f12daf8cc1fe934c7dddb]
CVE: CVE-2021-4160
Signed-off-by: Ranjitsinh Rathod <ranjitsinh.rathod@kpit.com>
---
crypto/bn/asm/mips.pl | 4 ++++
test/bntest.c | 45 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/crypto/bn/asm/mips.pl b/crypto/bn/asm/mips.pl
index 8ad715bda4..74101030f2 100644
--- a/crypto/bn/asm/mips.pl
+++ b/crypto/bn/asm/mips.pl
@@ -1984,6 +1984,8 @@ $code.=<<___;
sltu $at,$c_2,$t_1
$ADDU $c_3,$t_2,$at
$ST $c_2,$BNSZ($a0)
+ sltu $at,$c_3,$t_2
+ $ADDU $c_1,$at
mflo ($t_1,$a_2,$a_0)
mfhi ($t_2,$a_2,$a_0)
___
@@ -2194,6 +2196,8 @@ $code.=<<___;
sltu $at,$c_2,$t_1
$ADDU $c_3,$t_2,$at
$ST $c_2,$BNSZ($a0)
+ sltu $at,$c_3,$t_2
+ $ADDU $c_1,$at
mflo ($t_1,$a_2,$a_0)
mfhi ($t_2,$a_2,$a_0)
___
diff --git a/test/bntest.c b/test/bntest.c
index b58028a301..bab34ba54b 100644
--- a/test/bntest.c
+++ b/test/bntest.c
@@ -627,6 +627,51 @@ static int test_modexp_mont5(void)
if (!TEST_BN_eq(c, d))
goto err;
+ /*
+ * Regression test for overflow bug in bn_sqr_comba4/8 for
+ * mips-linux-gnu and mipsel-linux-gnu 32bit targets.
+ */
+ {
+ static const char *ehex[] = {
+ "95564994a96c45954227b845a1e99cb939d5a1da99ee91acc962396ae999a9ee",
+ "38603790448f2f7694c242a875f0cad0aae658eba085f312d2febbbd128dd2b5",
+ "8f7d1149f03724215d704344d0d62c587ae3c5939cba4b9b5f3dc5e8e911ef9a",
+ "5ce1a5a749a4989d0d8368f6e1f8cdf3a362a6c97fb02047ff152b480a4ad985",
+ "2d45efdf0770542992afca6a0590d52930434bba96017afbc9f99e112950a8b1",
+ "a359473ec376f329bdae6a19f503be6d4be7393c4e43468831234e27e3838680",
+ "b949390d2e416a3f9759e5349ab4c253f6f29f819a6fe4cbfd27ada34903300e",
+ "da021f62839f5878a36f1bc3085375b00fd5fa3e68d316c0fdace87a97558465",
+ NULL};
+ static const char *phex[] = {
+ "f95dc0f980fbd22e90caa5a387cc4a369f3f830d50dd321c40db8c09a7e1a241",
+ "a536e096622d3280c0c1ba849c1f4a79bf490f60006d081e8cf69960189f0d31",
+ "2cd9e17073a3fba7881b21474a13b334116cb2f5dbf3189a6de3515d0840f053",
+ "c776d3982d391b6d04d642dda5cc6d1640174c09875addb70595658f89efb439",
+ "dc6fbd55f903aadd307982d3f659207f265e1ec6271b274521b7a5e28e8fd7a5",
+ "5df089292820477802a43cf5b6b94e999e8c9944ddebb0d0e95a60f88cb7e813",
+ "ba110d20e1024774107dd02949031864923b3cb8c3f7250d6d1287b0a40db6a4",
+ "7bd5a469518eb65aa207ddc47d8c6e5fc8e0c105be8fc1d4b57b2e27540471d5",
+ NULL};
+ static const char *mhex[] = {
+ "fef15d5ce4625f1bccfbba49fc8439c72bf8202af039a2259678941b60bb4a8f",
+ "2987e965d58fd8cf86a856674d519763d0e1211cc9f8596971050d56d9b35db3",
+ "785866cfbca17cfdbed6060be3629d894f924a89fdc1efc624f80d41a22f1900",
+ "9503fcc3824ef62ccb9208430c26f2d8ceb2c63488ec4c07437aa4c96c43dd8b",
+ "9289ed00a712ff66ee195dc71f5e4ead02172b63c543d69baf495f5fd63ba7bc",
+ "c633bd309c016e37736da92129d0b053d4ab28d21ad7d8b6fab2a8bbdc8ee647",
+ "d2fbcf2cf426cf892e6f5639e0252993965dfb73ccd277407014ea784aaa280c",
+ "b7b03972bc8b0baa72360bdb44b82415b86b2f260f877791cd33ba8f2d65229b",
+ NULL};
+
+ if (!TEST_true(parse_bigBN(&e, ehex))
+ || !TEST_true(parse_bigBN(&p, phex))
+ || !TEST_true(parse_bigBN(&m, mhex))
+ || !TEST_true(BN_mod_exp_mont_consttime(d, e, p, m, ctx, NULL))
+ || !TEST_true(BN_mod_exp_simple(a, e, p, m, ctx))
+ || !TEST_BN_eq(a, d))
+ goto err;
+ }
+
/* Zero input */
if (!TEST_true(BN_bntest_rand(p, 1024, 0, 0)))
goto err;
--
2.25.1

View File

@@ -18,14 +18,13 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
file://afalg.patch \
file://reproducible.patch \
file://reproducibility.patch \
file://CVE-2021-4160.patch \
"
SRC_URI_append_class-nativesdk = " \
file://environment.d-openssl.sh \
"
SRC_URI[sha256sum] = "0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1"
SRC_URI[sha256sum] = "40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a"
inherit lib_package multilib_header multilib_script ptest
MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
@@ -181,6 +180,7 @@ do_install_ptest () {
install -m755 ${B}/apps/CA.pl ${D}${PTEST_PATH}/apps
install -d ${D}${PTEST_PATH}/engines
install -m755 ${B}/engines/dasync.so ${D}${PTEST_PATH}/engines
install -m755 ${B}/engines/ossltest.so ${D}${PTEST_PATH}/engines
}

View File

@@ -24,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk"
inherit core-image setuptools3
SRCREV ?= "d752cbcbbeeea9adbcc9aa74def1761f34a9de54"
SRCREV ?= "8a7fd5f633a2b72185501d4c4a8a51ed1fc7cea1"
SRC_URI = "git://git.yoctoproject.org/poky;branch=dunfell \
file://Yocto_Build_Appliance.vmx \
file://Yocto_Build_Appliance.vmxf \

View File

@@ -0,0 +1,98 @@
From 646fe48d1c8a74310c409ddf81fe7df6700052af Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Tue, 22 Feb 2022 11:51:08 +0100
Subject: [PATCH] Fix --without-valid build
Regressed in commit 652dd12a.
---
valid.c | 58 ++++++++++++++++++++++++++++-----------------------------
1 file changed, 29 insertions(+), 29 deletions(-)
---
From https://github.com/GNOME/libxml2.git
commit 646fe48d1c8a74310c409ddf81fe7df6700052af
CVE: CVE-2022-23308
Upstream-Status: Backport
Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
diff --git a/valid.c b/valid.c
index 8e596f1d..9684683a 100644
--- a/valid.c
+++ b/valid.c
@@ -479,35 +479,6 @@ nodeVPop(xmlValidCtxtPtr ctxt)
return (ret);
}
-/**
- * xmlValidNormalizeString:
- * @str: a string
- *
- * Normalize a string in-place.
- */
-static void
-xmlValidNormalizeString(xmlChar *str) {
- xmlChar *dst;
- const xmlChar *src;
-
- if (str == NULL)
- return;
- src = str;
- dst = str;
-
- while (*src == 0x20) src++;
- while (*src != 0) {
- if (*src == 0x20) {
- while (*src == 0x20) src++;
- if (*src != 0)
- *dst++ = 0x20;
- } else {
- *dst++ = *src++;
- }
- }
- *dst = 0;
-}
-
#ifdef DEBUG_VALID_ALGO
static void
xmlValidPrintNode(xmlNodePtr cur) {
@@ -2636,6 +2607,35 @@ xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table) {
(xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \
xmlFree((char *)(str));
+/**
+ * xmlValidNormalizeString:
+ * @str: a string
+ *
+ * Normalize a string in-place.
+ */
+static void
+xmlValidNormalizeString(xmlChar *str) {
+ xmlChar *dst;
+ const xmlChar *src;
+
+ if (str == NULL)
+ return;
+ src = str;
+ dst = str;
+
+ while (*src == 0x20) src++;
+ while (*src != 0) {
+ if (*src == 0x20) {
+ while (*src == 0x20) src++;
+ if (*src != 0)
+ *dst++ = 0x20;
+ } else {
+ *dst++ = *src++;
+ }
+ }
+ *dst = 0;
+}
+
static int
xmlIsStreaming(xmlValidCtxtPtr ctxt) {
xmlParserCtxtPtr pctxt;
--
2.35.1

View File

@@ -0,0 +1,204 @@
From 8b66850de350f0fcd786ae776a65ba15a5999e50 Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Tue, 8 Feb 2022 03:29:24 +0100
Subject: [PATCH] Use-after-free of ID and IDREF attributes
If a document is parsed with XML_PARSE_DTDVALID and without
XML_PARSE_NOENT, the value of ID attributes has to be normalized after
potentially expanding entities in xmlRemoveID. Otherwise, later calls
to xmlGetID can return a pointer to previously freed memory.
ID attributes which are empty or contain only whitespace after
entity expansion are affected in a similar way. This is fixed by
not storing such attributes in the ID table.
The test to detect streaming mode when validating against a DTD was
broken. In connection with the defects above, this could result in a
use-after-free when using the xmlReader interface with validation.
Fix detection of streaming mode to avoid similar issues. (This changes
the expected result of a test case. But as far as I can tell, using the
XML reader with XIncludes referencing the root document never worked
properly, anyway.)
All of these issues can result in denial of service. Using xmlReader
with validation could result in disclosure of memory via the error
channel, typically stderr. The security impact of xmlGetID returning
a pointer to freed memory depends on the application. The typical use
case of calling xmlGetID on an unmodified document is not affected.
Upstream-Status: Backport
[https://gitlab.gnome.org/GNOME/libxml2/-/commit/652dd12a858989b14eed4e84e453059cd3ba340e]
The upstream patch 652dd12a858989b14eed4e84e453059cd3ba340e has been modified
to skip the patch to the testsuite result (result/XInclude/ns1.xml.rdr), as
this particular test does not exist in v2.9.10 (it was added later).
CVE: CVE-2022-23308
Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
---
valid.c | 88 +++++++++++++++++++++++++++++++++++----------------------
1 file changed, 55 insertions(+), 33 deletions(-)
diff --git a/valid.c b/valid.c
index 07963e7..ee75311 100644
--- a/valid.c
+++ b/valid.c
@@ -479,6 +479,35 @@ nodeVPop(xmlValidCtxtPtr ctxt)
return (ret);
}
+/**
+ * xmlValidNormalizeString:
+ * @str: a string
+ *
+ * Normalize a string in-place.
+ */
+static void
+xmlValidNormalizeString(xmlChar *str) {
+ xmlChar *dst;
+ const xmlChar *src;
+
+ if (str == NULL)
+ return;
+ src = str;
+ dst = str;
+
+ while (*src == 0x20) src++;
+ while (*src != 0) {
+ if (*src == 0x20) {
+ while (*src == 0x20) src++;
+ if (*src != 0)
+ *dst++ = 0x20;
+ } else {
+ *dst++ = *src++;
+ }
+ }
+ *dst = 0;
+}
+
#ifdef DEBUG_VALID_ALGO
static void
xmlValidPrintNode(xmlNodePtr cur) {
@@ -2607,6 +2636,24 @@ xmlDumpNotationTable(xmlBufferPtr buf, xmlNotationTablePtr table) {
(xmlDictOwns(dict, (const xmlChar *)(str)) == 0))) \
xmlFree((char *)(str));
+static int
+xmlIsStreaming(xmlValidCtxtPtr ctxt) {
+ xmlParserCtxtPtr pctxt;
+
+ if (ctxt == NULL)
+ return(0);
+ /*
+ * These magic values are also abused to detect whether we're validating
+ * while parsing a document. In this case, userData points to the parser
+ * context.
+ */
+ if ((ctxt->finishDtd != XML_CTXT_FINISH_DTD_0) &&
+ (ctxt->finishDtd != XML_CTXT_FINISH_DTD_1))
+ return(0);
+ pctxt = ctxt->userData;
+ return(pctxt->parseMode == XML_PARSE_READER);
+}
+
/**
* xmlFreeID:
* @not: A id
@@ -2650,7 +2697,7 @@ xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value,
if (doc == NULL) {
return(NULL);
}
- if (value == NULL) {
+ if ((value == NULL) || (value[0] == 0)) {
return(NULL);
}
if (attr == NULL) {
@@ -2681,7 +2728,7 @@ xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value,
*/
ret->value = xmlStrdup(value);
ret->doc = doc;
- if ((ctxt != NULL) && (ctxt->vstateNr != 0)) {
+ if (xmlIsStreaming(ctxt)) {
/*
* Operating in streaming mode, attr is gonna disappear
*/
@@ -2820,6 +2867,7 @@ xmlRemoveID(xmlDocPtr doc, xmlAttrPtr attr) {
ID = xmlNodeListGetString(doc, attr->children, 1);
if (ID == NULL)
return(-1);
+ xmlValidNormalizeString(ID);
id = xmlHashLookup(table, ID);
if (id == NULL || id->attr != attr) {
@@ -3009,7 +3057,7 @@ xmlAddRef(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value,
* fill the structure.
*/
ret->value = xmlStrdup(value);
- if ((ctxt != NULL) && (ctxt->vstateNr != 0)) {
+ if (xmlIsStreaming(ctxt)) {
/*
* Operating in streaming mode, attr is gonna disappear
*/
@@ -4028,8 +4076,7 @@ xmlValidateAttributeValue2(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
xmlChar *
xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
xmlNodePtr elem, const xmlChar *name, const xmlChar *value) {
- xmlChar *ret, *dst;
- const xmlChar *src;
+ xmlChar *ret;
xmlAttributePtr attrDecl = NULL;
int extsubset = 0;
@@ -4070,19 +4117,7 @@ xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
ret = xmlStrdup(value);
if (ret == NULL)
return(NULL);
- src = value;
- dst = ret;
- while (*src == 0x20) src++;
- while (*src != 0) {
- if (*src == 0x20) {
- while (*src == 0x20) src++;
- if (*src != 0)
- *dst++ = 0x20;
- } else {
- *dst++ = *src++;
- }
- }
- *dst = 0;
+ xmlValidNormalizeString(ret);
if ((doc->standalone) && (extsubset == 1) && (!xmlStrEqual(value, ret))) {
xmlErrValidNode(ctxt, elem, XML_DTD_NOT_STANDALONE,
"standalone: %s on %s value had to be normalized based on external subset declaration\n",
@@ -4114,8 +4149,7 @@ xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
xmlChar *
xmlValidNormalizeAttributeValue(xmlDocPtr doc, xmlNodePtr elem,
const xmlChar *name, const xmlChar *value) {
- xmlChar *ret, *dst;
- const xmlChar *src;
+ xmlChar *ret;
xmlAttributePtr attrDecl = NULL;
if (doc == NULL) return(NULL);
@@ -4145,19 +4179,7 @@ xmlValidNormalizeAttributeValue(xmlDocPtr doc, xmlNodePtr elem,
ret = xmlStrdup(value);
if (ret == NULL)
return(NULL);
- src = value;
- dst = ret;
- while (*src == 0x20) src++;
- while (*src != 0) {
- if (*src == 0x20) {
- while (*src == 0x20) src++;
- if (*src != 0)
- *dst++ = 0x20;
- } else {
- *dst++ = *src++;
- }
- }
- *dst = 0;
+ xmlValidNormalizeString(ret);
return(ret);
}

View File

@@ -1,6 +1,6 @@
SUMMARY = "XML C Parser Library and Toolkit"
DESCRIPTION = "The XML Parser Library allows for manipulation of XML files. Libxml2 exports Push and Pull type parser interfaces for both XML and HTML. It can do DTD validation at parse time, on a parsed document instance or with an arbitrary DTD. Libxml2 includes complete XPath, XPointer and Xinclude implementations. It also has a SAX like interface, which is designed to be compatible with Expat."
HOMEPAGE = "http://www.xmlsoft.org/"
HOMEPAGE = "https://gitlab.gnome.org/GNOME/libxml2"
BUGTRACKER = "http://bugzilla.gnome.org/buglist.cgi?product=libxml2"
SECTION = "libs"
LICENSE = "MIT"
@@ -11,8 +11,9 @@ LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \
DEPENDS = "zlib virtual/libiconv"
SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \
http://www.w3.org/XML/Test/xmlts20080827.tar.gz;subdir=${BP};name=testtar \
inherit gnomebase
SRC_URI += "http://www.w3.org/XML/Test/xmlts20080827.tar.gz;subdir=${BP};name=testtar \
file://libxml-64bit.patch \
file://runtest.patch \
file://run-ptest \
@@ -27,10 +28,11 @@ SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \
file://CVE-2021-3537.patch \
file://CVE-2021-3518.patch \
file://CVE-2021-3541.patch \
file://CVE-2022-23308.patch \
file://CVE-2022-23308-fix-regression.patch \
"
SRC_URI[libtar.md5sum] = "10942a1dc23137a8aa07f0639cbfece5"
SRC_URI[libtar.sha256sum] = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f"
SRC_URI[archive.sha256sum] = "593b7b751dd18c2d6abcd0c4bcb29efc203d0b4373a6df98e3a455ea74ae2813"
SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a"
SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7"

View File

@@ -0,0 +1,161 @@
From faa5a3a83ad0cb5e2c303edbfd8cd823c9d94c17 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Thu, 10 Feb 2022 12:03:17 +0100
Subject: [PATCH] chsh, chfn: remove readline support [CVE-2022-0563]
The readline library uses INPUTRC= environment variable to get a path
to the library config file. When the library cannot parse the
specified file, it prints an error message containing data from the
file.
Unfortunately, the library does not use secure_getenv() (or a similar
concept) to avoid vulnerabilities that could occur if set-user-ID or
set-group-ID programs.
Reported-by: Rory Mackie <rory.mackie@trailofbits.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Upstream-status: Backport
https://github.com/util-linux/util-linux/commit/faa5a3a83ad0cb5e2c303edbfd8cd823c9d94c17
CVE: CVE-2022-0563
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
login-utils/Makemodule.am | 2 +-
login-utils/chfn.c | 16 +++------------
login-utils/chsh.c | 42 ++-------------------------------------
3 files changed, 6 insertions(+), 54 deletions(-)
diff --git a/login-utils/Makemodule.am b/login-utils/Makemodule.am
index fac5bfc..73636af 100644
--- a/login-utils/Makemodule.am
+++ b/login-utils/Makemodule.am
@@ -82,7 +82,7 @@ chfn_chsh_sources = \
login-utils/ch-common.c
chfn_chsh_cflags = $(SUID_CFLAGS) $(AM_CFLAGS)
chfn_chsh_ldflags = $(SUID_LDFLAGS) $(AM_LDFLAGS)
-chfn_chsh_ldadd = libcommon.la $(READLINE_LIBS)
+chfn_chsh_ldadd = libcommon.la
if CHFN_CHSH_PASSWORD
chfn_chsh_ldadd += -lpam
diff --git a/login-utils/chfn.c b/login-utils/chfn.c
index b739555..2f8e44a 100644
--- a/login-utils/chfn.c
+++ b/login-utils/chfn.c
@@ -56,11 +56,6 @@
# include "auth.h"
#endif
-#ifdef HAVE_LIBREADLINE
-# define _FUNCTION_DEF
-# include <readline/readline.h>
-#endif
-
struct finfo {
char *full_name;
char *office;
@@ -229,22 +224,17 @@ static char *ask_new_field(struct chfn_control *ctl, const char *question,
{
int len;
char *buf;
-#ifndef HAVE_LIBREADLINE
- size_t dummy = 0;
-#endif
if (!def_val)
def_val = "";
+
while (true) {
printf("%s [%s]: ", question, def_val);
__fpurge(stdin);
-#ifdef HAVE_LIBREADLINE
- rl_bind_key('\t', rl_insert);
- if ((buf = readline(NULL)) == NULL)
-#else
+
if (getline(&buf, &dummy, stdin) < 0)
-#endif
errx(EXIT_FAILURE, _("Aborted."));
+
/* remove white spaces from string end */
ltrim_whitespace((unsigned char *) buf);
len = rtrim_whitespace((unsigned char *) buf);
diff --git a/login-utils/chsh.c b/login-utils/chsh.c
index a9ebec8..ee6ff87 100644
--- a/login-utils/chsh.c
+++ b/login-utils/chsh.c
@@ -58,11 +58,6 @@
# include "auth.h"
#endif
-#ifdef HAVE_LIBREADLINE
-# define _FUNCTION_DEF
-# include <readline/readline.h>
-#endif
-
struct sinfo {
char *username;
char *shell;
@@ -121,33 +116,6 @@ static void print_shells(void)
endusershell();
}
-#ifdef HAVE_LIBREADLINE
-static char *shell_name_generator(const char *text, int state)
-{
- static size_t len;
- char *s;
-
- if (!state) {
- setusershell();
- len = strlen(text);
- }
-
- while ((s = getusershell())) {
- if (strncmp(s, text, len) == 0)
- return xstrdup(s);
- }
- return NULL;
-}
-
-static char **shell_name_completion(const char *text,
- int start __attribute__((__unused__)),
- int end __attribute__((__unused__)))
-{
- rl_attempted_completion_over = 1;
- return rl_completion_matches(text, shell_name_generator);
-}
-#endif
-
/*
* parse_argv () --
* parse the command line arguments, and fill in "pinfo" with any
@@ -198,20 +166,14 @@ static char *ask_new_shell(char *question, char *oldshell)
{
int len;
char *ans = NULL;
-#ifdef HAVE_LIBREADLINE
- rl_attempted_completion_function = shell_name_completion;
-#else
size_t dummy = 0;
-#endif
+
if (!oldshell)
oldshell = "";
printf("%s [%s]\n", question, oldshell);
-#ifdef HAVE_LIBREADLINE
- if ((ans = readline("> ")) == NULL)
-#else
if (getline(&ans, &dummy, stdin) < 0)
-#endif
return NULL;
+
/* remove the newline at the end of ans. */
ltrim_whitespace((unsigned char *) ans);
len = rtrim_whitespace((unsigned char *) ans);
--
2.25.1

View File

@@ -15,6 +15,7 @@ SRC_URI += "file://configure-sbindir.patch \
file://include-strutils-cleanup-strto-functions.patch \
file://CVE-2021-3995.patch \
file://CVE-2021-3996.patch \
file://CVE-2022-0563.patch \
"
SRC_URI[md5sum] = "7f64882f631225f0295ca05080cee1bf"
SRC_URI[sha256sum] = "d9de3edd287366cd908e77677514b9387b22bc7b88f45b83e1922c3597f1d7f9"

View File

@@ -0,0 +1,347 @@
CVE: CVE-2018-25032
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@arm.com>
From 5c44459c3b28a9bd3283aaceab7c615f8020c531 Mon Sep 17 00:00:00 2001
From: Mark Adler <madler@alumni.caltech.edu>
Date: Tue, 17 Apr 2018 22:09:22 -0700
Subject: [PATCH] Fix a bug that can crash deflate on some input when using
Z_FIXED.
This bug was reported by Danilo Ramos of Eideticom, Inc. It has
lain in wait 13 years before being found! The bug was introduced
in zlib 1.2.2.2, with the addition of the Z_FIXED option. That
option forces the use of fixed Huffman codes. For rare inputs with
a large number of distant matches, the pending buffer into which
the compressed data is written can overwrite the distance symbol
table which it overlays. That results in corrupted output due to
invalid distances, and can result in out-of-bound accesses,
crashing the application.
The fix here combines the distance buffer and literal/length
buffers into a single symbol buffer. Now three bytes of pending
buffer space are opened up for each literal or length/distance
pair consumed, instead of the previous two bytes. This assures
that the pending buffer cannot overwrite the symbol table, since
the maximum fixed code compressed length/distance is 31 bits, and
since there are four bytes of pending space for every three bytes
of symbol space.
---
deflate.c | 74 ++++++++++++++++++++++++++++++++++++++++---------------
deflate.h | 25 +++++++++----------
trees.c | 50 +++++++++++--------------------------
3 files changed, 79 insertions(+), 70 deletions(-)
diff --git a/deflate.c b/deflate.c
index 425babc00..19cba873a 100644
--- a/deflate.c
+++ b/deflate.c
@@ -255,11 +255,6 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
int wrap = 1;
static const char my_version[] = ZLIB_VERSION;
- ushf *overlay;
- /* We overlay pending_buf and d_buf+l_buf. This works since the average
- * output size for (length,distance) codes is <= 24 bits.
- */
-
if (version == Z_NULL || version[0] != my_version[0] ||
stream_size != sizeof(z_stream)) {
return Z_VERSION_ERROR;
@@ -329,9 +324,47 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
- overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
- s->pending_buf = (uchf *) overlay;
- s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
+ /* We overlay pending_buf and sym_buf. This works since the average size
+ * for length/distance pairs over any compressed block is assured to be 31
+ * bits or less.
+ *
+ * Analysis: The longest fixed codes are a length code of 8 bits plus 5
+ * extra bits, for lengths 131 to 257. The longest fixed distance codes are
+ * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest
+ * possible fixed-codes length/distance pair is then 31 bits total.
+ *
+ * sym_buf starts one-fourth of the way into pending_buf. So there are
+ * three bytes in sym_buf for every four bytes in pending_buf. Each symbol
+ * in sym_buf is three bytes -- two for the distance and one for the
+ * literal/length. As each symbol is consumed, the pointer to the next
+ * sym_buf value to read moves forward three bytes. From that symbol, up to
+ * 31 bits are written to pending_buf. The closest the written pending_buf
+ * bits gets to the next sym_buf symbol to read is just before the last
+ * code is written. At that time, 31*(n-2) bits have been written, just
+ * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at
+ * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1
+ * symbols are written.) The closest the writing gets to what is unread is
+ * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and
+ * can range from 128 to 32768.
+ *
+ * Therefore, at a minimum, there are 142 bits of space between what is
+ * written and what is read in the overlain buffers, so the symbols cannot
+ * be overwritten by the compressed data. That space is actually 139 bits,
+ * due to the three-bit fixed-code block header.
+ *
+ * That covers the case where either Z_FIXED is specified, forcing fixed
+ * codes, or when the use of fixed codes is chosen, because that choice
+ * results in a smaller compressed block than dynamic codes. That latter
+ * condition then assures that the above analysis also covers all dynamic
+ * blocks. A dynamic-code block will only be chosen to be emitted if it has
+ * fewer bits than a fixed-code block would for the same set of symbols.
+ * Therefore its average symbol length is assured to be less than 31. So
+ * the compressed data for a dynamic block also cannot overwrite the
+ * symbols from which it is being constructed.
+ */
+
+ s->pending_buf = (uchf *) ZALLOC(strm, s->lit_bufsize, 4);
+ s->pending_buf_size = (ulg)s->lit_bufsize * 4;
if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
s->pending_buf == Z_NULL) {
@@ -340,8 +373,12 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
deflateEnd (strm);
return Z_MEM_ERROR;
}
- s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
- s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
+ s->sym_buf = s->pending_buf + s->lit_bufsize;
+ s->sym_end = (s->lit_bufsize - 1) * 3;
+ /* We avoid equality with lit_bufsize*3 because of wraparound at 64K
+ * on 16 bit machines and because stored blocks are restricted to
+ * 64K-1 bytes.
+ */
s->level = level;
s->strategy = strategy;
@@ -552,7 +589,7 @@ int ZEXPORT deflatePrime (strm, bits, value)
if (deflateStateCheck(strm)) return Z_STREAM_ERROR;
s = strm->state;
- if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3))
+ if (s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3))
return Z_BUF_ERROR;
do {
put = Buf_size - s->bi_valid;
@@ -1113,7 +1150,6 @@ int ZEXPORT deflateCopy (dest, source)
#else
deflate_state *ds;
deflate_state *ss;
- ushf *overlay;
if (deflateStateCheck(source) || dest == Z_NULL) {
@@ -1133,8 +1169,7 @@ int ZEXPORT deflateCopy (dest, source)
ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte));
ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos));
ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos));
- overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2);
- ds->pending_buf = (uchf *) overlay;
+ ds->pending_buf = (uchf *) ZALLOC(dest, ds->lit_bufsize, 4);
if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL ||
ds->pending_buf == Z_NULL) {
@@ -1148,8 +1183,7 @@ int ZEXPORT deflateCopy (dest, source)
zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size);
ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf);
- ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush);
- ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize;
+ ds->sym_buf = ds->pending_buf + ds->lit_bufsize;
ds->l_desc.dyn_tree = ds->dyn_ltree;
ds->d_desc.dyn_tree = ds->dyn_dtree;
@@ -1925,7 +1959,7 @@ local block_state deflate_fast(s, flush)
FLUSH_BLOCK(s, 1);
return finish_done;
}
- if (s->last_lit)
+ if (s->sym_next)
FLUSH_BLOCK(s, 0);
return block_done;
}
@@ -2056,7 +2090,7 @@ local block_state deflate_slow(s, flush)
FLUSH_BLOCK(s, 1);
return finish_done;
}
- if (s->last_lit)
+ if (s->sym_next)
FLUSH_BLOCK(s, 0);
return block_done;
}
@@ -2131,7 +2165,7 @@ local block_state deflate_rle(s, flush)
FLUSH_BLOCK(s, 1);
return finish_done;
}
- if (s->last_lit)
+ if (s->sym_next)
FLUSH_BLOCK(s, 0);
return block_done;
}
@@ -2170,7 +2204,7 @@ local block_state deflate_huff(s, flush)
FLUSH_BLOCK(s, 1);
return finish_done;
}
- if (s->last_lit)
+ if (s->sym_next)
FLUSH_BLOCK(s, 0);
return block_done;
}
diff --git a/deflate.h b/deflate.h
index 23ecdd312..d4cf1a98b 100644
--- a/deflate.h
+++ b/deflate.h
@@ -217,7 +217,7 @@ typedef struct internal_state {
/* Depth of each subtree used as tie breaker for trees of equal frequency
*/
- uchf *l_buf; /* buffer for literals or lengths */
+ uchf *sym_buf; /* buffer for distances and literals/lengths */
uInt lit_bufsize;
/* Size of match buffer for literals/lengths. There are 4 reasons for
@@ -239,13 +239,8 @@ typedef struct internal_state {
* - I can't count above 4
*/
- uInt last_lit; /* running index in l_buf */
-
- ushf *d_buf;
- /* Buffer for distances. To simplify the code, d_buf and l_buf have
- * the same number of elements. To use different lengths, an extra flag
- * array would be necessary.
- */
+ uInt sym_next; /* running index in sym_buf */
+ uInt sym_end; /* symbol table full when sym_next reaches this */
ulg opt_len; /* bit length of current block with optimal trees */
ulg static_len; /* bit length of current block with static trees */
@@ -325,20 +320,22 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf,
# define _tr_tally_lit(s, c, flush) \
{ uch cc = (c); \
- s->d_buf[s->last_lit] = 0; \
- s->l_buf[s->last_lit++] = cc; \
+ s->sym_buf[s->sym_next++] = 0; \
+ s->sym_buf[s->sym_next++] = 0; \
+ s->sym_buf[s->sym_next++] = cc; \
s->dyn_ltree[cc].Freq++; \
- flush = (s->last_lit == s->lit_bufsize-1); \
+ flush = (s->sym_next == s->sym_end); \
}
# define _tr_tally_dist(s, distance, length, flush) \
{ uch len = (uch)(length); \
ush dist = (ush)(distance); \
- s->d_buf[s->last_lit] = dist; \
- s->l_buf[s->last_lit++] = len; \
+ s->sym_buf[s->sym_next++] = dist; \
+ s->sym_buf[s->sym_next++] = dist >> 8; \
+ s->sym_buf[s->sym_next++] = len; \
dist--; \
s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \
s->dyn_dtree[d_code(dist)].Freq++; \
- flush = (s->last_lit == s->lit_bufsize-1); \
+ flush = (s->sym_next == s->sym_end); \
}
#else
# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c)
diff --git a/trees.c b/trees.c
index 4f4a65011..decaeb7c3 100644
--- a/trees.c
+++ b/trees.c
@@ -416,7 +416,7 @@ local void init_block(s)
s->dyn_ltree[END_BLOCK].Freq = 1;
s->opt_len = s->static_len = 0L;
- s->last_lit = s->matches = 0;
+ s->sym_next = s->matches = 0;
}
#define SMALLEST 1
@@ -948,7 +948,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last)
Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ",
opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,
- s->last_lit));
+ s->sym_next / 3));
if (static_lenb <= opt_lenb) opt_lenb = static_lenb;
@@ -1017,8 +1017,9 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
unsigned dist; /* distance of matched string */
unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */
{
- s->d_buf[s->last_lit] = (ush)dist;
- s->l_buf[s->last_lit++] = (uch)lc;
+ s->sym_buf[s->sym_next++] = dist;
+ s->sym_buf[s->sym_next++] = dist >> 8;
+ s->sym_buf[s->sym_next++] = lc;
if (dist == 0) {
/* lc is the unmatched char */
s->dyn_ltree[lc].Freq++;
@@ -1033,30 +1034,7 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc)
s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++;
s->dyn_dtree[d_code(dist)].Freq++;
}
-
-#ifdef TRUNCATE_BLOCK
- /* Try to guess if it is profitable to stop the current block here */
- if ((s->last_lit & 0x1fff) == 0 && s->level > 2) {
- /* Compute an upper bound for the compressed length */
- ulg out_length = (ulg)s->last_lit*8L;
- ulg in_length = (ulg)((long)s->strstart - s->block_start);
- int dcode;
- for (dcode = 0; dcode < D_CODES; dcode++) {
- out_length += (ulg)s->dyn_dtree[dcode].Freq *
- (5L+extra_dbits[dcode]);
- }
- out_length >>= 3;
- Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ",
- s->last_lit, in_length, out_length,
- 100L - out_length*100L/in_length));
- if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1;
- }
-#endif
- return (s->last_lit == s->lit_bufsize-1);
- /* We avoid equality with lit_bufsize because of wraparound at 64K
- * on 16 bit machines and because stored blocks are restricted to
- * 64K-1 bytes.
- */
+ return (s->sym_next == s->sym_end);
}
/* ===========================================================================
@@ -1069,13 +1047,14 @@ local void compress_block(s, ltree, dtree)
{
unsigned dist; /* distance of matched string */
int lc; /* match length or unmatched char (if dist == 0) */
- unsigned lx = 0; /* running index in l_buf */
+ unsigned sx = 0; /* running index in sym_buf */
unsigned code; /* the code to send */
int extra; /* number of extra bits to send */
- if (s->last_lit != 0) do {
- dist = s->d_buf[lx];
- lc = s->l_buf[lx++];
+ if (s->sym_next != 0) do {
+ dist = s->sym_buf[sx++] & 0xff;
+ dist += (unsigned)(s->sym_buf[sx++] & 0xff) << 8;
+ lc = s->sym_buf[sx++];
if (dist == 0) {
send_code(s, lc, ltree); /* send a literal byte */
Tracecv(isgraph(lc), (stderr," '%c' ", lc));
@@ -1100,11 +1079,10 @@ local void compress_block(s, ltree, dtree)
}
} /* literal or match pair ? */
- /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */
- Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,
- "pendingBuf overflow");
+ /* Check that the overlay between pending_buf and sym_buf is ok: */
+ Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow");
- } while (lx < s->last_lit);
+ } while (sx < s->sym_next);
send_code(s, END_BLOCK, ltree);
}

View File

@@ -8,6 +8,7 @@ LIC_FILES_CHKSUM = "file://zlib.h;beginline=6;endline=23;md5=5377232268e952e9ef6
SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/${BPN}/${PV}/${BPN}-${PV}.tar.xz \
file://ldflags-tests.patch \
file://CVE-2018-25032.patch \
file://run-ptest \
"
UPSTREAM_CHECK_URI = "http://zlib.net/"

View File

@@ -18,6 +18,7 @@ SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/${BPN}/${P
file://0001-environment.mak-musl-based-systems-can-generate-shar.patch \
file://0001-apt-1.2.12-Fix-musl-build.patch \
file://0001-Include-array.h-for-std-array.patch \
file://CVE-2020-3810.patch \
"
SRC_URI[md5sum] = "d30eed9304e82ea8238c854b5c5a34d9"
SRC_URI[sha256sum] = "03ded4f5e9b8d43ecec083704b2dcabf20c182ed382db9ac7251da0b0b038059"
@@ -36,5 +37,9 @@ do_configure_prepend() {
rm -rf ${S}/buildlib/config.guess
}
# there are code generation issues with some compilers in the SHA256 implementation
# turn off strict-aliasing to avoid these issues
CXXFLAGS:append = " -fno-strict-aliasing"
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /nonexistent --shell /bin/false --user-group _apt"

View File

@@ -0,0 +1,174 @@
From dceb1e49e4b8e4dadaf056be34088b415939cda6 Mon Sep 17 00:00:00 2001
From: Julian Andres Klode <julian.klode@canonical.com>
Date: Tue, 12 May 2020 11:49:09 +0200
Subject: [PATCH] SECURITY UPDATE: Fix out of bounds read in .ar and .tar
implementation (CVE-2020-3810)
When normalizing ar member names by removing trailing whitespace
and slashes, an out-out-bound read can be caused if the ar member
name consists only of such characters, because the code did not
stop at 0, but would wrap around and continue reading from the
stack, without any limit.
Add a check to abort if we reached the first character in the
name, effectively rejecting the use of names consisting just
of slashes and spaces.
Furthermore, certain error cases in arfile.cc and extracttar.cc have
included member names in the output that were not checked at all and
might hence not be nul terminated, leading to further out of bound reads.
Fixes Debian/apt#111
LP: #1878177
CVE: CVE-2020-3810
Upstream-Status: Backport:
https://salsa.debian.org/apt-team/apt/-/commit/dceb1e49e4b8e4dadaf056be34088b415939cda6
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
apt-inst/contrib/arfile.cc | 11 ++-
apt-inst/contrib/extracttar.cc | 2 +-
.../test-github-111-invalid-armember | 88 +++++++++++++++++++
3 files changed, 98 insertions(+), 3 deletions(-)
create mode 100755 test/integration/test-github-111-invalid-armember
diff --git a/apt-inst/contrib/arfile.cc b/st/contrib/arfile.cc
index 3fc3afedb..5cb43c690 100644
--- a/apt-inst/contrib/arfile.cc
+++ b/apt-inst/contrib/arfile.cc
@@ -92,7 +92,7 @@ bool ARArchive::LoadHeaders()
StrToNum(Head.Size,Memb->Size,sizeof(Head.Size)) == false)
{
delete Memb;
- return _error->Error(_("Invalid archive member header %s"), Head.Name);
+ return _error->Error(_("Invalid archive member header"));
}
// Check for an extra long name string
@@ -119,7 +119,14 @@ bool ARArchive::LoadHeaders()
else
{
unsigned int I = sizeof(Head.Name) - 1;
- for (; Head.Name[I] == ' ' || Head.Name[I] == '/'; I--);
+ for (; Head.Name[I] == ' ' || Head.Name[I] == '/'; I--)
+ {
+ if (I == 0)
+ {
+ delete Memb;
+ return _error->Error(_("Invalid archive member header"));
+ }
+ }
Memb->Name = std::string(Head.Name,I+1);
}
diff --git a/apt-inst/contrib/extracttar.cc b/apt-inst/contrib/extracttar.cc
index 9bb0a55c0..b22f59dbc 100644
--- a/apt-inst/contrib/extracttar.cc
+++ b/apt-inst/contrib/extracttar.cc
@@ -254,7 +254,7 @@ bool ExtractTar::Go(pkgDirStream &Stream)
default:
BadRecord = true;
- _error->Warning(_("Unknown TAR header type %u, member %s"),(unsigned)Tar->LinkFlag,Tar->Name);
+ _error->Warning(_("Unknown TAR header type %u"), (unsigned)Tar->LinkFlag);
break;
}
diff --git a/test/integration/test-github-111-invalid-armember b/test/integration/test-github-111-invalid-armember
new file mode 100755
index 000000000..ec2163bf6
--- /dev/null
+++ b/test/integration/test-github-111-invalid-armember
@@ -0,0 +1,88 @@
+#!/bin/sh
+set -e
+
+TESTDIR="$(readlink -f "$(dirname "$0")")"
+. "$TESTDIR/framework"
+setupenvironment
+configarchitecture "amd64"
+setupaptarchive
+
+# this used to crash, but it should treat it as an invalid member header
+touch ' '
+ar -q test.deb ' '
+testsuccessequal "E: Invalid archive member header" ${BUILDDIRECTORY}/../test/interactive-helper/testdeb test.deb
+
+
+rm test.deb
+touch 'x'
+ar -q test.deb 'x'
+testsuccessequal "E: This is not a valid DEB archive, missing 'debian-binary' member" ${BUILDDIRECTORY}/../test/interactive-helper/testdeb test.deb
+
+
+# <name><size> [ other fields] - name is not nul terminated here, it ends in .
+msgmsg "Unterminated ar member name"
+printf '!<arch>\0120123456789ABCDE.A123456789A.01234.01234.0123456.012345678.0.' > test.deb
+testsuccessequal "E: Invalid archive member header" ${BUILDDIRECTORY}/../test/interactive-helper/testdeb test.deb
+
+
+# unused source code for generating $tar below
+maketar() {
+ cat > maketar.c << EOF
+ #include <stdio.h>
+ #include <string.h>
+ struct tar {
+ char Name[100];
+ char Mode[8];
+ char UserID[8];
+ char GroupID[8];
+ char Size[12];
+ char MTime[12];
+ char Checksum[8];
+ char LinkFlag;
+ char LinkName[100];
+ char MagicNumber[8];
+ char UserName[32];
+ char GroupName[32];
+ char Major[8];
+ char Minor[8];
+ };
+
+ int main(void)
+ {
+ union {
+ struct tar t;
+ char buf[512];
+ } t;
+ for (int i = 0; i < sizeof(t.buf); i++)
+ t.buf[i] = '7';
+ memcpy(t.t.Name, "unterminatedName", 16);
+ memcpy(t.t.UserName, "userName", 8);
+ memcpy(t.t.GroupName, "thisIsAGroupNamethisIsAGroupName", 32);
+ t.t.LinkFlag = 'X'; // I AM BROKEN
+ memcpy(t.t.Size, "000000000000", sizeof(t.t.Size));
+ memset(t.t.Checksum,' ',sizeof(t.t.Checksum));
+
+ unsigned long sum = 0;
+ for (int i = 0; i < sizeof(t.buf); i++)
+ sum += t.buf[i];
+
+ int written = sprintf(t.t.Checksum, "%lo", sum);
+ for (int i = written; i < sizeof(t.t.Checksum); i++)
+ t.t.Checksum[i] = ' ';
+ fwrite(t.buf, sizeof(t.buf), 1, stdout);
+ }
+EOF
+
+ gcc maketar.c -o maketar -Wall
+ ./maketar
+}
+
+
+#
+tar="unterminatedName77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700000000000077777777777773544 X777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777userName777777777777777777777777thisIsAGroupNamethisIsAGroupName777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777"
+printf '%s' "$tar" | gzip > control.tar.gz
+cp control.tar.gz data.tar.gz
+touch debian-binary
+rm test.deb
+ar -q test.deb debian-binary control.tar.gz data.tar.gz
+testsuccessequal "W: Unknown TAR header type 88" ${BUILDDIRECTORY}/../test/interactive-helper/testdeb test.deb
--
GitLab

View File

@@ -1,305 +0,0 @@
From 0e9cef2414f0df3fa5b9b56ff9072aa122bef29c Mon Sep 17 00:00:00 2001
From: Minjae Kim <flowrgom@gmail.com>
Date: Sat, 27 Mar 2021 15:18:46 +0900
Subject: [PATCH] checkout: fix bug that makes checkout follow symlinks in
leading path
Before checking out a file, we have to confirm that all of its leading
components are real existing directories. And to reduce the number of
lstat() calls in this process, we cache the last leading path known to
contain only directories. However, when a path collision occurs (e.g.
when checking out case-sensitive files in case-insensitive file
systems), a cached path might have its file type changed on disk,
leaving the cache on an invalid state. Normally, this doesn't bring
any bad consequences as we usually check out files in index order, and
therefore, by the time the cached path becomes outdated, we no longer
need it anyway (because all files in that directory would have already
been written).
But, there are some users of the checkout machinery that do not always
follow the index order. In particular: checkout-index writes the paths
in the same order that they appear on the CLI (or stdin); and the
delayed checkout feature -- used when a long-running filter process
replies with "status=delayed" -- postpones the checkout of some entries,
thus modifying the checkout order.
When we have to check out an out-of-order entry and the lstat() cache is
invalid (due to a previous path collision), checkout_entry() may end up
using the invalid data and thrusting that the leading components are
real directories when, in reality, they are not. In the best case
scenario, where the directory was replaced by a regular file, the user
will get an error: "fatal: unable to create file 'foo/bar': Not a
directory". But if the directory was replaced by a symlink, checkout
could actually end up following the symlink and writing the file at a
wrong place, even outside the repository. Since delayed checkout is
affected by this bug, it could be used by an attacker to write
arbitrary files during the clone of a maliciously crafted repository.
Some candidate solutions considered were to disable the lstat() cache
during unordered checkouts or sort the entries before passing them to
the checkout machinery. But both ideas include some performance penalty
and they don't future-proof the code against new unordered use cases.
Instead, we now manually reset the lstat cache whenever we successfully
remove a directory. Note: We are not even checking whether the directory
was the same as the lstat cache points to because we might face a
scenario where the paths refer to the same location but differ due to
case folding, precomposed UTF-8 issues, or the presence of `..`
components in the path. Two regression tests, with case-collisions and
utf8-collisions, are also added for both checkout-index and delayed
checkout.
Note: to make the previously mentioned clone attack unfeasible, it would
be sufficient to reset the lstat cache only after the remove_subtree()
call inside checkout_entry(). This is the place where we would remove a
directory whose path collides with the path of another entry that we are
currently trying to check out (possibly a symlink). However, in the
interest of a thorough fix that does not leave Git open to
similar-but-not-identical attack vectors, we decided to intercept
all `rmdir()` calls in one fell swoop.
This addresses CVE-2021-21300.
Co-authored-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
Upstream-Status: Acepted [https://github.com/git/git/commit/684dd4c2b414bcf648505e74498a608f28de4592]
CVE: CVE-2021-21300
Signed-off-by: Minjae Kim <flowergom@gmail.com>
---
cache.h | 1 +
compat/mingw.c | 2 ++
git-compat-util.h | 5 +++++
symlinks.c | 25 +++++++++++++++++++++
t/t0021-conversion.sh | 39 ++++++++++++++++++++++++++++++++
t/t0021/rot13-filter.pl | 21 ++++++++++++++---
t/t2006-checkout-index-basic.sh | 40 +++++++++++++++++++++++++++++++++
7 files changed, 130 insertions(+), 3 deletions(-)
diff --git a/cache.h b/cache.h
index 04cabaa..dda373f 100644
--- a/cache.h
+++ b/cache.h
@@ -1675,6 +1675,7 @@ int has_symlink_leading_path(const char *name, int len);
int threaded_has_symlink_leading_path(struct cache_def *, const char *, int);
int check_leading_path(const char *name, int len);
int has_dirs_only_path(const char *name, int len, int prefix_len);
+extern void invalidate_lstat_cache(void);
void schedule_dir_for_removal(const char *name, int len);
void remove_scheduled_dirs(void);
diff --git a/compat/mingw.c b/compat/mingw.c
index bd24d91..cea9c72 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -340,6 +340,8 @@ int mingw_rmdir(const char *pathname)
ask_yes_no_if_possible("Deletion of directory '%s' failed. "
"Should I try again?", pathname))
ret = _wrmdir(wpathname);
+ if (!ret)
+ invalidate_lstat_cache();
return ret;
}
diff --git a/git-compat-util.h b/git-compat-util.h
index d0dd9c0..a1ecfd3 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -365,6 +365,11 @@ static inline int noop_core_config(const char *var, const char *value, void *cb)
#define platform_core_config noop_core_config
#endif
+int lstat_cache_aware_rmdir(const char *path);
+#if !defined(__MINGW32__) && !defined(_MSC_VER)
+#define rmdir lstat_cache_aware_rmdir
+#endif
+
#ifndef has_dos_drive_prefix
static inline int git_has_dos_drive_prefix(const char *path)
{
diff --git a/symlinks.c b/symlinks.c
index 69d458a..ae3c665 100644
--- a/symlinks.c
+++ b/symlinks.c
@@ -267,6 +267,13 @@ int has_dirs_only_path(const char *name, int len, int prefix_len)
*/
static int threaded_has_dirs_only_path(struct cache_def *cache, const char *name, int len, int prefix_len)
{
+ /*
+ * Note: this function is used by the checkout machinery, which also
+ * takes care to properly reset the cache when it performs an operation
+ * that would leave the cache outdated. If this function starts caching
+ * anything else besides FL_DIR, remember to also invalidate the cache
+ * when creating or deleting paths that might be in the cache.
+ */
return lstat_cache(cache, name, len,
FL_DIR|FL_FULLPATH, prefix_len) &
FL_DIR;
@@ -321,3 +328,21 @@ void remove_scheduled_dirs(void)
{
do_remove_scheduled_dirs(0);
}
+
+
+void invalidate_lstat_cache(void)
+{
+ reset_lstat_cache(&default_cache);
+}
+
+#undef rmdir
+int lstat_cache_aware_rmdir(const char *path)
+{
+ /* Any change in this function must be made also in `mingw_rmdir()` */
+ int ret = rmdir(path);
+
+ if (!ret)
+ invalidate_lstat_cache();
+
+ return ret;
+}
diff --git a/t/t0021-conversion.sh b/t/t0021-conversion.sh
index c954c70..6a1d5f6 100755
--- a/t/t0021-conversion.sh
+++ b/t/t0021-conversion.sh
@@ -820,4 +820,43 @@ test_expect_success PERL 'invalid file in delayed checkout' '
grep "error: external filter .* signaled that .unfiltered. is now available although it has not been delayed earlier" git-stderr.log
'
+for mode in 'case' 'utf-8'
+do
+ case "$mode" in
+ case) dir='A' symlink='a' mode_prereq='CASE_INSENSITIVE_FS' ;;
+ utf-8)
+ dir=$(printf "\141\314\210") symlink=$(printf "\303\244")
+ mode_prereq='UTF8_NFD_TO_NFC' ;;
+ esac
+
+ test_expect_success PERL,SYMLINKS,$mode_prereq \
+ "delayed checkout with $mode-collision don't write to the wrong place" '
+ test_config_global filter.delay.process \
+ "\"$TEST_ROOT/rot13-filter.pl\" --always-delay delayed.log clean smudge delay" &&
+ test_config_global filter.delay.required true &&
+ git init $mode-collision &&
+ (
+ cd $mode-collision &&
+ mkdir target-dir &&
+ empty_oid=$(printf "" | git hash-object -w --stdin) &&
+ symlink_oid=$(printf "%s" "$PWD/target-dir" | git hash-object -w --stdin) &&
+ attr_oid=$(echo "$dir/z filter=delay" | git hash-object -w --stdin) &&
+ cat >objs <<-EOF &&
+ 100644 blob $empty_oid $dir/x
+ 100644 blob $empty_oid $dir/y
+ 100644 blob $empty_oid $dir/z
+ 120000 blob $symlink_oid $symlink
+ 100644 blob $attr_oid .gitattributes
+ EOF
+ git update-index --index-info <objs &&
+ git commit -m "test commit"
+ ) &&
+ git clone $mode-collision $mode-collision-cloned &&
+ # Make sure z was really delayed
+ grep "IN: smudge $dir/z .* \\[DELAYED\\]" $mode-collision-cloned/delayed.log &&
+ # Should not create $dir/z at $symlink/z
+ test_path_is_missing $mode-collision/target-dir/z
+ '
+done
+
test_done
diff --git a/t/t0021/rot13-filter.pl b/t/t0021/rot13-filter.pl
index 4701072..007f2d7 100644
--- a/t/t0021/rot13-filter.pl
+++ b/t/t0021/rot13-filter.pl
@@ -2,9 +2,15 @@
# Example implementation for the Git filter protocol version 2
# See Documentation/gitattributes.txt, section "Filter Protocol"
#
-# The first argument defines a debug log file that the script write to.
-# All remaining arguments define a list of supported protocol
-# capabilities ("clean", "smudge", etc).
+# Usage: rot13-filter.pl [--always-delay] <log path> <capabilities>
+#
+# Log path defines a debug log file that the script writes to. The
+# subsequent arguments define a list of supported protocol capabilities
+# ("clean", "smudge", etc).
+#
+# When --always-delay is given all pathnames with the "can-delay" flag
+# that don't appear on the list bellow are delayed with a count of 1
+# (see more below).
#
# This implementation supports special test cases:
# (1) If data with the pathname "clean-write-fail.r" is processed with
@@ -53,6 +59,13 @@ sub gitperllib {
use Git::Packet;
my $MAX_PACKET_CONTENT_SIZE = 65516;
+
+my $always_delay = 0;
+if ( $ARGV[0] eq '--always-delay' ) {
+ $always_delay = 1;
+ shift @ARGV;
+}
+
my $log_file = shift @ARGV;
my @capabilities = @ARGV;
@@ -134,6 +147,8 @@ sub rot13 {
if ( $buffer eq "can-delay=1" ) {
if ( exists $DELAY{$pathname} and $DELAY{$pathname}{"requested"} == 0 ) {
$DELAY{$pathname}{"requested"} = 1;
+ } elsif ( !exists $DELAY{$pathname} and $always_delay ) {
+ $DELAY{$pathname} = { "requested" => 1, "count" => 1 };
}
} else {
die "Unknown message '$buffer'";
diff --git a/t/t2006-checkout-index-basic.sh b/t/t2006-checkout-index-basic.sh
index 57cbdfe..f223a02 100755
--- a/t/t2006-checkout-index-basic.sh
+++ b/t/t2006-checkout-index-basic.sh
@@ -21,4 +21,44 @@ test_expect_success 'checkout-index -h in broken repository' '
test_i18ngrep "[Uu]sage" broken/usage
'
+for mode in 'case' 'utf-8'
+do
+ case "$mode" in
+ case) dir='A' symlink='a' mode_prereq='CASE_INSENSITIVE_FS' ;;
+ utf-8)
+ dir=$(printf "\141\314\210") symlink=$(printf "\303\244")
+ mode_prereq='UTF8_NFD_TO_NFC' ;;
+ esac
+
+ test_expect_success SYMLINKS,$mode_prereq \
+ "checkout-index with $mode-collision don't write to the wrong place" '
+ git init $mode-collision &&
+ (
+ cd $mode-collision &&
+ mkdir target-dir &&
+ empty_obj_hex=$(git hash-object -w --stdin </dev/null) &&
+ symlink_hex=$(printf "%s" "$PWD/target-dir" | git hash-object -w --stdin) &&
+ cat >objs <<-EOF &&
+ 100644 blob ${empty_obj_hex} ${dir}/x
+ 100644 blob ${empty_obj_hex} ${dir}/y
+ 100644 blob ${empty_obj_hex} ${dir}/z
+ 120000 blob ${symlink_hex} ${symlink}
+ EOF
+ git update-index --index-info <objs &&
+ # Note: the order is important here to exercise the
+ # case where the file at ${dir} has its type changed by
+ # the time Git tries to check out ${dir}/z.
+ #
+ # Also, we use core.precomposeUnicode=false because we
+ # want Git to treat the UTF-8 paths transparently on
+ # Mac OS, matching what is in the index.
+ #
+ git -c core.precomposeUnicode=false checkout-index -f \
+ ${dir}/x ${dir}/y ${symlink} ${dir}/z &&
+ # Should not create ${dir}/z at ${symlink}/z
+ test_path_is_missing target-dir/z
+ )
+ '
+done
+
test_done
--
2.17.1

View File

@@ -9,7 +9,6 @@ PROVIDES_append_class-native = " git-replacement-native"
SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.gz;name=tarball \
${KERNELORG_MIRROR}/software/scm/git/git-manpages-${PV}.tar.gz;name=manpages \
file://CVE-2021-21300.patch \
file://fixsort.patch \
file://CVE-2021-40330.patch \
"
@@ -20,6 +19,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7c0d7ef03a7eb04ce795b0f60e68e7e1"
CVE_PRODUCT = "git-scm:git"
# This is about a manpage not mentioning --mirror may "leak" information
# in mirrored git repos. Most OE users wouldn't build the docs and
# we don't see this as a major issue for our general users/usecases.
CVE_CHECK_IGNORE += "CVE-2022-24975"
PACKAGECONFIG ??= ""
PACKAGECONFIG[cvsserver] = ""
PACKAGECONFIG[svn] = ""

View File

@@ -5,5 +5,5 @@ EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
"
EXTRA_OEMAKE += "NO_GETTEXT=1"
SRC_URI[tarball.sha256sum] = "ef6d1d1de1d7921a54d23d07479bd2766f050d6435cea5d3b5322aa4897cb3d7"
SRC_URI[manpages.sha256sum] = "325795ba33c0be02370de79636f32ad3b447665c1f2b5b4de65181fa804bed31"
SRC_URI[tarball.sha256sum] = "6e119e70d3762f28e1dc9928c526eb4d7519fd3870f862775cd10186653eb85a"
SRC_URI[manpages.sha256sum] = "e687bcc91a6fd9cb74243f91a9c2d77c50ce202a09b35931021ecc521a373ed5"

View File

@@ -12,7 +12,7 @@ INHIBIT_DEFAULT_DEPS = "1"
SRCREV = "5256817ace8493502ec88501a19e4051c2e220b0"
PV = "20200117+git${SRCPV}"
SRC_URI = "git://git.savannah.gnu.org/config.git;branch=master \
SRC_URI = "git://git.savannah.gnu.org/git/config.git;protocol=https;branch=master \
file://gnu-configize.in"
S = "${WORKDIR}/git"
UPSTREAM_CHECK_COMMITS = "1"

View File

@@ -19,9 +19,11 @@ SRC_URI += "\
file://CVE-2021-34558.patch \
file://CVE-2021-33196.patch \
file://CVE-2021-33197.patch \
file://CVE-2021-38297.patch \
file://CVE-2022-23806.patch \
file://CVE-2022-23772.patch \
"
SRC_URI_append_libc-musl = " file://0009-ld-replace-glibc-dynamic-linker-with-musl.patch"
SRC_URI[main.sha256sum] = "7ed13b2209e54a451835997f78035530b331c5b6943cdcd68a3d815fdc009149"

View File

@@ -0,0 +1,97 @@
From 4548fcc8dfd933c237f29bba6f90040a85922564 Mon Sep 17 00:00:00 2001
From: Michael Knyszek <mknyszek@google.com>
Date: Thu, 2 Sep 2021 16:51:59 -0400
Subject: [PATCH] [release-branch.go1.16] misc/wasm, cmd/link: do not let
command line args overwrite global data
On Wasm, wasm_exec.js puts command line arguments at the beginning
of the linear memory (following the "zero page"). Currently there
is no limit for this, and a very long command line can overwrite
the program's data section. Prevent this by limiting the command
line to 4096 bytes, and in the linker ensuring the data section
starts at a high enough address (8192).
(Arguably our address assignment on Wasm is a bit confusing. This
is the minimum fix I can come up with.)
Thanks to Ben Lubar for reporting this issue.
Change by Cherry Mui <cherryyz@google.com>.
For #48797
Fixes #48799
Fixes CVE-2021-38297
Change-Id: I0f50fbb2a5b6d0d047e3c134a88988d9133e4ab3
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/1205933
Reviewed-by: Roland Shoemaker <bracewell@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/354591
Trust: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
CVE: CVE-2021-38297
Upstream-Status: Backport:
https://github.com/golang/go/commit/4548fcc8dfd933c237f29bba6f90040a85922564
Inline of ctxt.isWAsm followin this implemetation:
https://github.com/golang/go/blob/4548fcc8dfd933c237f29bba6f90040a85922564/src/cmd/link/internal/ld/target.go#L127
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
misc/wasm/wasm_exec.js | 7 +++++++
src/cmd/link/internal/ld/data.go | 11 ++++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/misc/wasm/wasm_exec.js b/misc/wasm/wasm_exec.js
index 82041e6bb901..a0a264278b1b 100644
--- a/misc/wasm/wasm_exec.js
+++ b/misc/wasm/wasm_exec.js
@@ -564,6 +564,13 @@
offset += 8;
});
+ // The linker guarantees global data starts from at least wasmMinDataAddr.
+ // Keep in sync with cmd/link/internal/ld/data.go:wasmMinDataAddr.
+ const wasmMinDataAddr = 4096 + 4096;
+ if (offset >= wasmMinDataAddr) {
+ throw new Error("command line too long");
+ }
+
this._inst.exports.run(argc, argv);
if (this.exited) {
this._resolveExitPromise();
diff --git a/src/cmd/link/internal/ld/data.go b/src/cmd/link/internal/ld/data.go
index 52035e96301c..54a1d188cdb9 100644
--- a/src/cmd/link/internal/ld/data.go
+++ b/src/cmd/link/internal/ld/data.go
@@ -2330,6 +2330,11 @@ func assignAddress(ctxt *Link, sect *sym.Section, n int, s loader.Sym, va uint64
return sect, n, va
}
+// On Wasm, we reserve 4096 bytes for zero page, then 4096 bytes for wasm_exec.js
+// to store command line args. Data sections starts from at least address 8192.
+// Keep in sync with wasm_exec.js.
+const wasmMinDataAddr = 4096 + 4096
+
// address assigns virtual addresses to all segments and sections and
// returns all segments in file order.
func (ctxt *Link) address() []*sym.Segment {
@@ -2339,10 +2344,14 @@ func (ctxt *Link) address() []*sym.Segment {
order = append(order, &Segtext)
Segtext.Rwx = 05
Segtext.Vaddr = va
- for _, s := range Segtext.Sections {
+ for i, s := range Segtext.Sections {
va = uint64(Rnd(int64(va), int64(s.Align)))
s.Vaddr = va
va += s.Length
+
+ if ctxt.Arch.Family == sys.Wasm && i == 0 && va < wasmMinDataAddr {
+ va = wasmMinDataAddr
+ }
}
Segtext.Length = va - uint64(*FlagTextAddr)

View File

@@ -13,7 +13,7 @@ SRC_URI:append:class-nativesdk = " \
file://older-glibc-symbols.patch"
SRC_URI[prebuilt.sha256sum] = "ed9f456856e9d86359f169f46a70ad7be4190d6040282b84c8d97b99072485aa"
SRCREV = "d34f2f6cedccf8488730001bcbde6bb7499f8814"
SRCREV = "2b4b88eb513335b0ece55fe51854693d9b20de35"
S = "${WORKDIR}/git"
PV = "1.9.0+git${SRCPV}"

View File

@@ -1,5 +1,5 @@
DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
HOMEPAGE = "https://pypi.org/project/Jinja/"
HOMEPAGE = "https://pypi.org/project/Jinja2/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"

View File

@@ -14,17 +14,21 @@ Upstream-Status: Submitted [https://github.com/python/cpython/pull/13196]
Signed-off-by: Matthias Schoepfer <matthias.schoepfer@ithinx.io>
%% original patch: 0001-bpo-36852-proper-detection-of-mips-architecture-for-.patch
Updated to apply after dea270a2a80214de22afadaaca2043d0d782eb7d
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
configure.ac | 175 +++++++--------------------------------------------
1 file changed, 21 insertions(+), 154 deletions(-)
diff --git a/configure.ac b/configure.ac
index ede710e..bc81b0b 100644
index de83332dd3..16b02d0798 100644
--- a/configure.ac
+++ b/configure.ac
@@ -710,160 +710,27 @@ fi
MULTIARCH=$($CC --print-multiarch 2>/dev/null)
AC_SUBST(MULTIARCH)
@@ -719,160 +719,27 @@ then
fi
-AC_MSG_CHECKING([for the platform triplet based on compiler characteristics])
-cat >> conftest.c <<EOF
@@ -185,25 +189,25 @@ index ede710e..bc81b0b 100644
+## Need to handle macos, vxworks and hurd special (?) :-/
+case ${target_os} in
+ darwin*)
+ PLATFORM_TRIPLET=darwin
+ ;;
+ PLATFORM_TRIPLET=darwin
+ ;;
+ hurd*)
+ PLATFORM_TRIPLET=i386-gnu
+ ;;
+ PLATFORM_TRIPLET=i386-gnu
+ ;;
+ vxworks*)
+ PLATFORM_TRIPLET=vxworks
+ ;;
+ PLATFORM_TRIPLET=vxworks
+ ;;
+ *)
+ if test "${target_cpu}" != "i686"; then
+ PLATFORM_TRIPLET=${target_cpu}-${target_os}
+ else
+ PLATFORM_TRIPLET=i386-${target_os}
+ fi
+ ;;
+esac
+ PLATFORM_TRIPLET=${target_cpu}-${target_os}
+ else
+ PLATFORM_TRIPLET=i386-${target_os}
+ fi
+ ;;
+esac
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
if test x$PLATFORM_TRIPLET != xdarwin; then
MULTIARCH=$($CC --print-multiarch 2>/dev/null)
--
2.24.1
2.32.0

View File

@@ -4,7 +4,7 @@ DESCRIPTION = "Python is a programming language that lets you work more quickly
LICENSE = "PSF-2.0 & BSD-0-Clause"
SECTION = "devel/python"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c22d2438294c784731bf9dd224a467b7"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c84eccf626bb6fde43e6ea5e28d8feb5"
SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
file://run-ptest \
@@ -42,8 +42,8 @@ SRC_URI_append_class-native = " \
file://0001-Don-t-search-system-for-headers-libraries.patch \
"
SRC_URI[md5sum] = "9dd8f82e586b776383c82e27923f8795"
SRC_URI[sha256sum] = "b1d3a76420375343b5e8a22fceb1ac65b77193e9ed27146524f0a9db058728ea"
SRC_URI[md5sum] = "c4b7100dcaace9d33ab1fda9a3a038d6"
SRC_URI[sha256sum] = "6f309077012040aa39fe8f0c61db8c0fa1c45136763299d375c9e5756f09cf57"
# exclude pre-releases for both python 2.x and 3.x
UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
@@ -56,7 +56,7 @@ CVE_CHECK_WHITELIST += "CVE-2007-4559"
CVE_CHECK_WHITELIST += "CVE-2019-18348"
# This is windows only issue.
CVE_CHECK_WHITELIST += "CVE-2020-15523"
CVE_CHECK_WHITELIST += "CVE-2020-15523 CVE-2022-26488"
PYTHON_MAJMIN = "3.8"

View File

@@ -92,6 +92,12 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
file://CVE-2020-27617.patch \
file://CVE-2020-28916.patch \
file://CVE-2021-3682.patch \
file://CVE-2020-13253_1.patch \
file://CVE-2020-13253_2.patch \
file://CVE-2020-13253_3.patch \
file://CVE-2020-13253_4.patch \
file://CVE-2020-13253_5.patch \
file://CVE-2020-13791.patch \
"
UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"

View File

@@ -0,0 +1,50 @@
From 6dd3a164f5b31c703c7d8372841ad3bd6a57de6d Mon Sep 17 00:00:00 2001
From: =?utf8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
Date: Tue, 5 Jun 2018 22:28:51 -0300
Subject: [PATCH 1/1] hw/sd/sdcard: Simplify realize() a bit
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
We don't need to check if sd->blk is set twice.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20200630133912.9428-18-f4bug@amsat.org>
Upstram-Status: Backport:
https://git.qemu.org/?p=qemu.git;a=commit;f=hw/sd/sd.c;h=6dd3a164f5b31c703c7d8372841ad3bd6a57de6d
CVE: CVE-2020-13253
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
hw/sd/sd.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 1cc16bf..edd60a0 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -2105,12 +2105,12 @@ static void sd_realize(DeviceState *dev, Error **errp)
return;
}
- if (sd->blk && blk_is_read_only(sd->blk)) {
- error_setg(errp, "Cannot use read-only drive as SD card");
- return;
- }
-
if (sd->blk) {
+ if (blk_is_read_only(sd->blk)) {
+ error_setg(errp, "Cannot use read-only drive as SD card");
+ return;
+ }
+
ret = blk_set_perm(sd->blk, BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE,
BLK_PERM_ALL, errp);
if (ret < 0) {
--
1.8.3.1

View File

@@ -0,0 +1,112 @@
From a9bcedd15a5834ca9ae6c3a97933e85ac7edbd36 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
Date: Tue, 7 Jul 2020 13:02:34 +0200
Subject: [PATCH] hw/sd/sdcard: Do not allow invalid SD card sizes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
QEMU allows to create SD card with unrealistic sizes. This could
work, but some guests (at least Linux) consider sizes that are not
a power of 2 as a firmware bug and fix the card size to the next
power of 2.
While the possibility to use small SD card images has been seen as
a feature, it became a bug with CVE-2020-13253, where the guest is
able to do OOB read/write accesses past the image size end.
In a pair of commits we will fix CVE-2020-13253 as:
Read command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR
occurred and no data transfer is performed.
Write command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR
occurred and no data transfer is performed.
WP_VIOLATION errors are not modified: the error bit is set, we
stay in receive-data state, wait for a stop command. All further
data transfer is ignored. See the check on sd->card_status at the
beginning of sd_read_data() and sd_write_data().
While this is the correct behavior, in case QEMU create smaller SD
cards, guests still try to access past the image size end, and QEMU
considers this is an invalid address, thus "all further data transfer
is ignored". This is wrong and make the guest looping until
eventually timeouts.
Fix by not allowing invalid SD card sizes (suggesting the expected
size as a hint):
$ qemu-system-arm -M orangepi-pc -drive file=rootfs.ext2,if=sd,format=raw
qemu-system-arm: Invalid SD card size: 60 MiB
SD card size has to be a power of 2, e.g. 64 MiB.
You can resize disk images with 'qemu-img resize <imagefile> <new-size>'
(note that this will lose data if you make the image smaller than it currently is).
Cc: qemu-stable@nongnu.org
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Message-Id: <20200713183209.26308-8-f4bug@amsat.org>
Upstram-Status: Backport:
https://git.qemu.org/?p=qemu.git;a=commit;h=a9bcedd15a5834ca9ae6c3a97933e85ac7edbd36
CVE: CVE-2020-13253
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
hw/sd/sd.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index edd60a09c0..76d68359a4 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -32,6 +32,7 @@
#include "qemu/osdep.h"
#include "qemu/units.h"
+#include "qemu/cutils.h"
#include "hw/irq.h"
#include "hw/registerfields.h"
#include "sysemu/block-backend.h"
@@ -2106,11 +2107,35 @@ static void sd_realize(DeviceState *dev, Error **errp)
}
if (sd->blk) {
+ int64_t blk_size;
+
if (blk_is_read_only(sd->blk)) {
error_setg(errp, "Cannot use read-only drive as SD card");
return;
}
+ blk_size = blk_getlength(sd->blk);
+ if (blk_size > 0 && !is_power_of_2(blk_size)) {
+ int64_t blk_size_aligned = pow2ceil(blk_size);
+ char *blk_size_str;
+
+ blk_size_str = size_to_str(blk_size);
+ error_setg(errp, "Invalid SD card size: %s", blk_size_str);
+ g_free(blk_size_str);
+
+ blk_size_str = size_to_str(blk_size_aligned);
+ error_append_hint(errp,
+ "SD card size has to be a power of 2, e.g. %s.\n"
+ "You can resize disk images with"
+ " 'qemu-img resize <imagefile> <new-size>'\n"
+ "(note that this will lose data if you make the"
+ " image smaller than it currently is).\n",
+ blk_size_str);
+ g_free(blk_size_str);
+
+ return;
+ }
+
ret = blk_set_perm(sd->blk, BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE,
BLK_PERM_ALL, errp);
if (ret < 0) {
--
2.32.0

View File

@@ -0,0 +1,86 @@
From 794d68de2f021a6d3874df41d6bbe8590ec05207 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
Date: Mon, 13 Jul 2020 09:27:35 +0200
Subject: [PATCH] hw/sd/sdcard: Update coding style to make checkpatch.pl happy
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
To make the next commit easier to review, clean this code first.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Alexander Bulekov <alxndr@bu.edu>
Message-Id: <20200630133912.9428-3-f4bug@amsat.org>
Upstram-Status: Backport:
https://git.qemu.org/?p=qemu.git;a=commit;f=hw/sd/sd.c;h=794d68de2f021a6d3874df41d6bbe8590ec05207
CVE: CVE-2020-13253
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
--- a/hw/sd/sd.c (revision b0ca999a43a22b38158a222233d3f5881648bb4f)
+++ b/hw/sd/sd.c (date 1647514442924)
@@ -1154,8 +1154,9 @@
sd->data_start = addr;
sd->data_offset = 0;
- if (sd->data_start + sd->blk_len > sd->size)
+ if (sd->data_start + sd->blk_len > sd->size) {
sd->card_status |= ADDRESS_ERROR;
+ }
return sd_r1;
default:
@@ -1170,8 +1171,9 @@
sd->data_start = addr;
sd->data_offset = 0;
- if (sd->data_start + sd->blk_len > sd->size)
+ if (sd->data_start + sd->blk_len > sd->size) {
sd->card_status |= ADDRESS_ERROR;
+ }
return sd_r1;
default:
@@ -1216,12 +1218,15 @@
sd->data_offset = 0;
sd->blk_written = 0;
- if (sd->data_start + sd->blk_len > sd->size)
+ if (sd->data_start + sd->blk_len > sd->size) {
sd->card_status |= ADDRESS_ERROR;
- if (sd_wp_addr(sd, sd->data_start))
+ }
+ if (sd_wp_addr(sd, sd->data_start)) {
sd->card_status |= WP_VIOLATION;
- if (sd->csd[14] & 0x30)
+ }
+ if (sd->csd[14] & 0x30) {
sd->card_status |= WP_VIOLATION;
+ }
return sd_r1;
default:
@@ -1240,12 +1245,15 @@
sd->data_offset = 0;
sd->blk_written = 0;
- if (sd->data_start + sd->blk_len > sd->size)
+ if (sd->data_start + sd->blk_len > sd->size) {
sd->card_status |= ADDRESS_ERROR;
- if (sd_wp_addr(sd, sd->data_start))
+ }
+ if (sd_wp_addr(sd, sd->data_start)) {
sd->card_status |= WP_VIOLATION;
- if (sd->csd[14] & 0x30)
+ }
+ if (sd->csd[14] & 0x30) {
sd->card_status |= WP_VIOLATION;
+ }
return sd_r1;
default:

View File

@@ -0,0 +1,139 @@
From 790762e5487114341cccc5bffcec4cb3c022c3cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
Date: Thu, 4 Jun 2020 19:22:29 +0200
Subject: [PATCH] hw/sd/sdcard: Do not switch to ReceivingData if address is
invalid
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Only move the state machine to ReceivingData if there is no
pending error. This avoids later OOB access while processing
commands queued.
"SD Specifications Part 1 Physical Layer Simplified Spec. v3.01"
4.3.3 Data Read
Read command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR
occurred and no data transfer is performed.
4.3.4 Data Write
Write command is rejected if BLOCK_LEN_ERROR or ADDRESS_ERROR
occurred and no data transfer is performed.
WP_VIOLATION errors are not modified: the error bit is set, we
stay in receive-data state, wait for a stop command. All further
data transfer is ignored. See the check on sd->card_status at the
beginning of sd_read_data() and sd_write_data().
Fixes: CVE-2020-13253
Cc: qemu-stable@nongnu.org
Reported-by: Alexander Bulekov <alxndr@bu.edu>
Buglink: https://bugs.launchpad.net/qemu/+bug/1880822
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20200630133912.9428-6-f4bug@amsat.org>
Upstram-Status: Backport:
https://git.qemu.org/?p=qemu.git;a=commit;h=790762e5487114341cccc5bffcec4cb3c022c3cd
CVE: CVE-2020-13253
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
hw/sd/sd.c | 38 ++++++++++++++++++++++++--------------
1 file changed, 24 insertions(+), 14 deletions(-)
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index f4f76f8fd2..fad9cf1ee7 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -1171,13 +1171,15 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req)
case 17: /* CMD17: READ_SINGLE_BLOCK */
switch (sd->state) {
case sd_transfer_state:
- sd->state = sd_sendingdata_state;
- sd->data_start = addr;
- sd->data_offset = 0;
- if (sd->data_start + sd->blk_len > sd->size) {
+ if (addr + sd->blk_len > sd->size) {
sd->card_status |= ADDRESS_ERROR;
+ return sd_r1;
}
+
+ sd->state = sd_sendingdata_state;
+ sd->data_start = addr;
+ sd->data_offset = 0;
return sd_r1;
default:
@@ -1188,13 +1190,15 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req)
case 18: /* CMD18: READ_MULTIPLE_BLOCK */
switch (sd->state) {
case sd_transfer_state:
- sd->state = sd_sendingdata_state;
- sd->data_start = addr;
- sd->data_offset = 0;
- if (sd->data_start + sd->blk_len > sd->size) {
+ if (addr + sd->blk_len > sd->size) {
sd->card_status |= ADDRESS_ERROR;
+ return sd_r1;
}
+
+ sd->state = sd_sendingdata_state;
+ sd->data_start = addr;
+ sd->data_offset = 0;
return sd_r1;
default:
@@ -1234,14 +1238,17 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req)
/* Writing in SPI mode not implemented. */
if (sd->spi)
break;
+
+ if (addr + sd->blk_len > sd->size) {
+ sd->card_status |= ADDRESS_ERROR;
+ return sd_r1;
+ }
+
sd->state = sd_receivingdata_state;
sd->data_start = addr;
sd->data_offset = 0;
sd->blk_written = 0;
- if (sd->data_start + sd->blk_len > sd->size) {
- sd->card_status |= ADDRESS_ERROR;
- }
if (sd_wp_addr(sd, sd->data_start)) {
sd->card_status |= WP_VIOLATION;
}
@@ -1261,14 +1268,17 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req)
/* Writing in SPI mode not implemented. */
if (sd->spi)
break;
+
+ if (addr + sd->blk_len > sd->size) {
+ sd->card_status |= ADDRESS_ERROR;
+ return sd_r1;
+ }
+
sd->state = sd_receivingdata_state;
sd->data_start = addr;
sd->data_offset = 0;
sd->blk_written = 0;
- if (sd->data_start + sd->blk_len > sd->size) {
- sd->card_status |= ADDRESS_ERROR;
- }
if (sd_wp_addr(sd, sd->data_start)) {
sd->card_status |= WP_VIOLATION;
}
--
2.32.0

View File

@@ -0,0 +1,54 @@
From 9157dd597d293ab7f599f4d96c3fe8a6e07c633d Mon Sep 17 00:00:00 2001
From: =?utf8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
Date: Wed, 3 Jun 2020 19:59:16 +0200
Subject: [PATCH] hw/sd/sdcard: Restrict Class 6 commands to SCSD cards
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
Only SCSD cards support Class 6 (Block Oriented Write Protection)
commands.
"SD Specifications Part 1 Physical Layer Simplified Spec. v3.01"
4.3.14 Command Functional Difference in Card Capacity Types
* Write Protected Group
SDHC and SDXC do not support write-protected groups. Issuing
CMD28, CMD29 and CMD30 generates the ILLEGAL_COMMAND error.
Cc: qemu-stable@nongnu.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20200630133912.9428-7-f4bug@amsat.org>
Upstram-Status: Backport:
https://git.qemu.org/?p=qemu.git;a=commit;h=9157dd597d293ab7f599f4d96c3fe8a6e07c633d
CVE: CVE-2020-13253
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
hw/sd/sd.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index 5137168..1cc16bf 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -920,6 +920,11 @@ static sd_rsp_type_t sd_normal_command(SDState *sd, SDRequest req)
sd->multi_blk_cnt = 0;
}
+ if (sd_cmd_class[req.cmd] == 6 && FIELD_EX32(sd->ocr, OCR, CARD_CAPACITY)) {
+ /* Only Standard Capacity cards support class 6 commands */
+ return sd_illegal;
+ }
+
switch (req.cmd) {
/* Basic commands (Class 0 and Class 1) */
case 0: /* CMD0: GO_IDLE_STATE */
--
1.8.3.1

View File

@@ -0,0 +1,44 @@
Date: Thu, 4 Jun 2020 16:25:24 +0530
From: Prasad J Pandit <pjp@fedoraproject.org>
Subject: [PATCH v3] ati-vga: check address before reading configuration bytes (CVE-2020-13791)
While reading PCI configuration bytes, a guest may send an
address towards the end of the configuration space. It may lead
to an OOB access issue. Add check to ensure 'address + size' is
within PCI configuration space.
CVE: CVE-2020-13791
Upstream-Status: Submitted
https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg00979.html
Reported-by: Ren Ding <rding@gatech.edu>
Reported-by: Hanqing Zhao <hanqing@gatech.edu>
Reported-by: Yi Ren <c4tren@gmail.com>
Suggested-by: BALATON Zoltan <balaton@eik.bme.hu>
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
hw/display/ati.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Update v3: avoid modifying 'addr' variable
-> https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg00834.html
diff --git a/hw/display/ati.c b/hw/display/ati.c
index 67604e68de..b4d0fd88b7 100644
--- a/hw/display/ati.c
+++ b/hw/display/ati.c
@@ -387,7 +387,9 @@ static uint64_t ati_mm_read(void *opaque, hwaddr addr, unsigned int size)
val = s->regs.crtc_pitch;
break;
case 0xf00 ... 0xfff:
- val = pci_default_read_config(&s->dev, addr - 0xf00, size);
+ if ((addr - 0xf00) + size <= pci_config_size(&s->dev)) {
+ val = pci_default_read_config(&s->dev, addr - 0xf00, size);
+ }
break;
case CUR_OFFSET:
val = s->regs.cur_offset;
--
2.26.2

View File

@@ -0,0 +1,121 @@
From 3920a727fb19e19f597e518610ce2416d08cb75f Mon Sep 17 00:00:00 2001
From: Chris Liddell <chris.liddell@artifex.com>
Date: Thu, 20 Aug 2020 17:19:09 +0100
Subject: [PATCH] Fix pdfwrite "%d" mode with file permissions
Firstly, in gx_device_delete_output_file the iodev pointer was being passed
to the delete_method incorrectly (passing a pointer to that pointer). Thus
when we attempted to use that to confirm permission to delete the file, it
crashed. Credit to Ken for finding that.
Secondly, due to the way pdfwrite works, when running with an output file per
page, it creates the current output file immediately it has completed writing
the previous one. Thus, it has to delete that partial file on exit.
Previously, the output file was not added to the "control" permission list,
so an attempt to delete it would result in an error. So add the output file
to the "control" as well as "write" list.
CVE: CVE-2021-3781
Upstream-Status: Backport:
https://git.ghostscript.com/?p=ghostpdl.git;a=commit;f=base/gslibctx.c;h=3920a727fb19e19f597e518610ce2416d08cb75f
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
base/gsdevice.c | 2 +-
base/gslibctx.c | 20 ++++++++++++++------
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/base/gsdevice.c b/base/gsdevice.c
index 913119495..ac78af93f 100644
--- a/base/gsdevice.c
+++ b/base/gsdevice.c
@@ -1185,7 +1185,7 @@ int gx_device_delete_output_file(const gx_device * dev, const char *fname)
parsed.len = strlen(parsed.fname);
}
if (parsed.iodev)
- code = parsed.iodev->procs.delete_file((gx_io_device *)(&parsed.iodev), (const char *)parsed.fname);
+ code = parsed.iodev->procs.delete_file((gx_io_device *)(parsed.iodev), (const char *)parsed.fname);
else
code = gs_note_error(gs_error_invalidfileaccess);
diff --git a/base/gslibctx.c b/base/gslibctx.c
index d726c58b5..ff8fc895e 100644
--- a/base/gslibctx.c
+++ b/base/gslibctx.c
@@ -647,7 +647,7 @@ gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
char *fp, f[gp_file_name_sizeof];
const int pipe = 124; /* ASCII code for '|' */
const int len = strlen(fname);
- int i;
+ int i, code;
/* Be sure the string copy will fit */
if (len >= gp_file_name_sizeof)
@@ -658,8 +658,6 @@ gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
rewrite_percent_specifiers(f);
for (i = 0; i < len; i++) {
if (f[i] == pipe) {
- int code;
-
fp = &f[i + 1];
/* Because we potentially have to check file permissions at two levels
for the output file (gx_device_open_output_file and the low level
@@ -671,10 +669,16 @@ gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
if (code < 0)
return code;
break;
+ code = gs_add_control_path(mem, gs_permit_file_control, f);
+ if (code < 0)
+ return code;
}
if (!IS_WHITESPACE(f[i]))
break;
}
+ code = gs_add_control_path(mem, gs_permit_file_control, fp);
+ if (code < 0)
+ return code;
return gs_add_control_path(mem, gs_permit_file_writing, fp);
}
@@ -684,7 +688,7 @@ gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
char *fp, f[gp_file_name_sizeof];
const int pipe = 124; /* ASCII code for '|' */
const int len = strlen(fname);
- int i;
+ int i, code;
/* Be sure the string copy will fit */
if (len >= gp_file_name_sizeof)
@@ -694,8 +698,6 @@ gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
/* Try to rewrite any %d (or similar) in the string */
for (i = 0; i < len; i++) {
if (f[i] == pipe) {
- int code;
-
fp = &f[i + 1];
/* Because we potentially have to check file permissions at two levels
for the output file (gx_device_open_output_file and the low level
@@ -704,6 +706,9 @@ gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
the pipe_fopen(), the leading '|' has been stripped.
*/
code = gs_remove_control_path(mem, gs_permit_file_writing, f);
+ if (code < 0)
+ return code;
+ code = gs_remove_control_path(mem, gs_permit_file_control, f);
if (code < 0)
return code;
break;
@@ -711,6 +716,9 @@ gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
if (!IS_WHITESPACE(f[i]))
break;
}
+ code = gs_remove_control_path(mem, gs_permit_file_control, fp);
+ if (code < 0)
+ return code;
return gs_remove_control_path(mem, gs_permit_file_writing, fp);
}
--
2.25.1

View File

@@ -0,0 +1,37 @@
From 9daf042fd7bb19e93388d89d9686a2fa4496f382 Mon Sep 17 00:00:00 2001
From: Chris Liddell <chris.liddell@artifex.com>
Date: Mon, 24 Aug 2020 09:24:31 +0100
Subject: [PATCH] Coverity 361429: move "break" to correct place.
We had to add the outputfile to the "control" file permission list (as well
as write), but for the "pipe" case, I accidentally added the call after the
break out of loop that checks for a pipe.
CVE: CVE-2021-3781
Upstream-Status: Backport:
https://git.ghostscript.com/?p=ghostpdl.git;a=commit;f=base/gslibctx.c;h=9daf042fd7bb19e93388d89d9686a2fa4496f382
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
base/gslibctx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/base/gslibctx.c b/base/gslibctx.c
index ff8fc895e..63dfbe2e0 100644
--- a/base/gslibctx.c
+++ b/base/gslibctx.c
@@ -668,10 +668,10 @@ gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
code = gs_add_control_path(mem, gs_permit_file_writing, f);
if (code < 0)
return code;
- break;
code = gs_add_control_path(mem, gs_permit_file_control, f);
if (code < 0)
return code;
+ break;
}
if (!IS_WHITESPACE(f[i]))
break;
--
2.25.1

View File

@@ -0,0 +1,238 @@
From a9bd3dec9fde03327a4a2c69dad1036bf9632e20 Mon Sep 17 00:00:00 2001
From: Chris Liddell <chris.liddell@artifex.com>
Date: Tue, 7 Sep 2021 20:36:12 +0100
Subject: [PATCH] Bug 704342: Include device specifier strings in access
validation
for the "%pipe%", %handle%" and %printer% io devices.
We previously validated only the part after the "%pipe%" Postscript device
specifier, but this proved insufficient.
This rebuilds the original file name string, and validates it complete. The
slight complication for "%pipe%" is it can be reached implicitly using
"|" so we have to check both prefixes.
Addresses CVE-2021-3781
CVE: CVE-2021-3781
Upstream-Status: Backport:
https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a9bd3dec9fde
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
base/gdevpipe.c | 22 +++++++++++++++-
base/gp_mshdl.c | 11 +++++++-
base/gp_msprn.c | 10 ++++++-
base/gp_os2pr.c | 13 +++++++++-
base/gslibctx.c | 69 ++++++++++---------------------------------------
5 files changed, 65 insertions(+), 60 deletions(-)
diff --git a/base/gdevpipe.c b/base/gdevpipe.c
index 96d71f5d8..5bdc485be 100644
--- a/base/gdevpipe.c
+++ b/base/gdevpipe.c
@@ -72,8 +72,28 @@ pipe_fopen(gx_io_device * iodev, const char *fname, const char *access,
#else
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
gs_fs_list_t *fs = ctx->core->fs;
+ /* The pipe device can be reached in two ways, explicltly with %pipe%
+ or implicitly with "|", so we have to check for both
+ */
+ char f[gp_file_name_sizeof];
+ const char *pipestr = "|";
+ const size_t pipestrlen = strlen(pipestr);
+ const size_t preflen = strlen(iodev->dname);
+ const size_t nlen = strlen(fname);
+ int code1;
+
+ if (preflen + nlen >= gp_file_name_sizeof)
+ return_error(gs_error_invalidaccess);
+
+ memcpy(f, iodev->dname, preflen);
+ memcpy(f + preflen, fname, nlen + 1);
+
+ code1 = gp_validate_path(mem, f, access);
+
+ memcpy(f, pipestr, pipestrlen);
+ memcpy(f + pipestrlen, fname, nlen + 1);
- if (gp_validate_path(mem, fname, access) != 0)
+ if (code1 != 0 && gp_validate_path(mem, f, access) != 0 )
return gs_error_invalidfileaccess;
/*
diff --git a/base/gp_mshdl.c b/base/gp_mshdl.c
index 2b964ed74..8d87ceadc 100644
--- a/base/gp_mshdl.c
+++ b/base/gp_mshdl.c
@@ -95,8 +95,17 @@ mswin_handle_fopen(gx_io_device * iodev, const char *fname, const char *access,
long hfile; /* Correct for Win32, may be wrong for Win64 */
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
gs_fs_list_t *fs = ctx->core->fs;
+ char f[gp_file_name_sizeof];
+ const size_t preflen = strlen(iodev->dname);
+ const size_t nlen = strlen(fname);
- if (gp_validate_path(mem, fname, access) != 0)
+ if (preflen + nlen >= gp_file_name_sizeof)
+ return_error(gs_error_invalidaccess);
+
+ memcpy(f, iodev->dname, preflen);
+ memcpy(f + preflen, fname, nlen + 1);
+
+ if (gp_validate_path(mem, f, access) != 0)
return gs_error_invalidfileaccess;
/* First we try the open_handle method. */
diff --git a/base/gp_msprn.c b/base/gp_msprn.c
index ed4827968..746a974f7 100644
--- a/base/gp_msprn.c
+++ b/base/gp_msprn.c
@@ -168,8 +168,16 @@ mswin_printer_fopen(gx_io_device * iodev, const char *fname, const char *access,
unsigned long *ptid = &((tid_t *)(iodev->state))->tid;
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
gs_fs_list_t *fs = ctx->core->fs;
+ const size_t preflen = strlen(iodev->dname);
+ const size_t nlen = strlen(fname);
- if (gp_validate_path(mem, fname, access) != 0)
+ if (preflen + nlen >= gp_file_name_sizeof)
+ return_error(gs_error_invalidaccess);
+
+ memcpy(pname, iodev->dname, preflen);
+ memcpy(pname + preflen, fname, nlen + 1);
+
+ if (gp_validate_path(mem, pname, access) != 0)
return gs_error_invalidfileaccess;
/* First we try the open_printer method. */
diff --git a/base/gp_os2pr.c b/base/gp_os2pr.c
index f852c71fc..ba54cde66 100644
--- a/base/gp_os2pr.c
+++ b/base/gp_os2pr.c
@@ -107,9 +107,20 @@ os2_printer_fopen(gx_io_device * iodev, const char *fname, const char *access,
FILE ** pfile, char *rfname, uint rnamelen)
{
os2_printer_t *pr = (os2_printer_t *)iodev->state;
- char driver_name[256];
+ char driver_name[gp_file_name_sizeof];
gs_lib_ctx_t *ctx = mem->gs_lib_ctx;
gs_fs_list_t *fs = ctx->core->fs;
+ const size_t preflen = strlen(iodev->dname);
+ const int size_t = strlen(fname);
+
+ if (preflen + nlen >= gp_file_name_sizeof)
+ return_error(gs_error_invalidaccess);
+
+ memcpy(driver_name, iodev->dname, preflen);
+ memcpy(driver_name + preflen, fname, nlen + 1);
+
+ if (gp_validate_path(mem, driver_name, access) != 0)
+ return gs_error_invalidfileaccess;
/* First we try the open_printer method. */
/* Note that the loop condition here ensures we don't
diff --git a/base/gslibctx.c b/base/gslibctx.c
index 6dfed6cd5..318039fad 100644
--- a/base/gslibctx.c
+++ b/base/gslibctx.c
@@ -655,82 +655,39 @@ rewrite_percent_specifiers(char *s)
int
gs_add_outputfile_control_path(gs_memory_t *mem, const char *fname)
{
- char *fp, f[gp_file_name_sizeof];
- const int pipe = 124; /* ASCII code for '|' */
- const int len = strlen(fname);
- int i, code;
+ char f[gp_file_name_sizeof];
+ int code;
/* Be sure the string copy will fit */
- if (len >= gp_file_name_sizeof)
+ if (strlen(fname) >= gp_file_name_sizeof)
return gs_error_rangecheck;
strcpy(f, fname);
- fp = f;
/* Try to rewrite any %d (or similar) in the string */
rewrite_percent_specifiers(f);
- for (i = 0; i < len; i++) {
- if (f[i] == pipe) {
- fp = &f[i + 1];
- /* Because we potentially have to check file permissions at two levels
- for the output file (gx_device_open_output_file and the low level
- fopen API, if we're using a pipe, we have to add both the full string,
- (including the '|', and just the command to which we pipe - since at
- the pipe_fopen(), the leading '|' has been stripped.
- */
- code = gs_add_control_path(mem, gs_permit_file_writing, f);
- if (code < 0)
- return code;
- code = gs_add_control_path(mem, gs_permit_file_control, f);
- if (code < 0)
- return code;
- break;
- }
- if (!IS_WHITESPACE(f[i]))
- break;
- }
- code = gs_add_control_path(mem, gs_permit_file_control, fp);
+
+ code = gs_add_control_path(mem, gs_permit_file_control, f);
if (code < 0)
return code;
- return gs_add_control_path(mem, gs_permit_file_writing, fp);
+ return gs_add_control_path(mem, gs_permit_file_writing, f);
}
int
gs_remove_outputfile_control_path(gs_memory_t *mem, const char *fname)
{
- char *fp, f[gp_file_name_sizeof];
- const int pipe = 124; /* ASCII code for '|' */
- const int len = strlen(fname);
- int i, code;
+ char f[gp_file_name_sizeof];
+ int code;
/* Be sure the string copy will fit */
- if (len >= gp_file_name_sizeof)
+ if (strlen(fname) >= gp_file_name_sizeof)
return gs_error_rangecheck;
strcpy(f, fname);
- fp = f;
/* Try to rewrite any %d (or similar) in the string */
- for (i = 0; i < len; i++) {
- if (f[i] == pipe) {
- fp = &f[i + 1];
- /* Because we potentially have to check file permissions at two levels
- for the output file (gx_device_open_output_file and the low level
- fopen API, if we're using a pipe, we have to add both the full string,
- (including the '|', and just the command to which we pipe - since at
- the pipe_fopen(), the leading '|' has been stripped.
- */
- code = gs_remove_control_path(mem, gs_permit_file_writing, f);
- if (code < 0)
- return code;
- code = gs_remove_control_path(mem, gs_permit_file_control, f);
- if (code < 0)
- return code;
- break;
- }
- if (!IS_WHITESPACE(f[i]))
- break;
- }
- code = gs_remove_control_path(mem, gs_permit_file_control, fp);
+ rewrite_percent_specifiers(f);
+
+ code = gs_remove_control_path(mem, gs_permit_file_control, f);
if (code < 0)
return code;
- return gs_remove_control_path(mem, gs_permit_file_writing, fp);
+ return gs_remove_control_path(mem, gs_permit_file_writing, f);
}
int
--
2.25.1

View File

@@ -33,14 +33,17 @@ SRC_URI_BASE = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/d
file://do-not-check-local-libpng-source.patch \
file://avoid-host-contamination.patch \
file://mkdir-p.patch \
file://CVE-2020-15900.patch \
file://check-stack-limits-after-function-evalution.patch \
file://CVE-2021-45949.patch \
file://CVE-2021-3781_1.patch \
file://CVE-2021-3781_2.patch \
file://CVE-2021-3781_3.patch \
"
SRC_URI = "${SRC_URI_BASE} \
file://ghostscript-9.21-prevent_recompiling.patch \
file://cups-no-gcrypt.patch \
file://CVE-2020-15900.patch \
file://check-stack-limits-after-function-evalution.patch \
file://CVE-2021-45949.patch \
"
SRC_URI_class-native = "${SRC_URI_BASE} \

View File

@@ -0,0 +1,45 @@
From 7073a366ee71639a1902eefb7500e14acb920f64 Mon Sep 17 00:00:00 2001
From: Lasse Collin <lasse.collin@tukaani.org>
Date: Mon, 4 Apr 2022 23:52:49 -0700
Subject: [PATCH] zgrep: avoid exploit via multi-newline file names
* zgrep.in: The issue with the old code is that with multiple
newlines, the N-command will read the second line of input,
then the s-commands will be skipped because it's not the end
of the file yet, then a new sed cycle starts and the pattern
space is printed and emptied. So only the last line or two get
escaped. This patch makes sed read all lines into the pattern
space and then do the escaping.
This vulnerability was discovered by:
cleemy desu wayo working with Trend Micro Zero Day Initiative
Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/gzip.git/commit/?id=dc9740df61e575e8c3148b7bd3c147a81ea00c7c]
CVE: CVE-2022-1271
Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
---
zgrep.in | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/zgrep.in b/zgrep.in
index 3efdb52..d391291 100644
--- a/zgrep.in
+++ b/zgrep.in
@@ -222,9 +222,13 @@ do
'* | *'&'* | *'\'* | *'|'*)
i=$(printf '%s\n' "$i" |
sed '
- $!N
- $s/[&\|]/\\&/g
- $s/\n/\\n/g
+ :start
+ $!{
+ N
+ b start
+ }
+ s/[&\|]/\\&/g
+ s/\n/\\n/g
');;
esac
sed_script="s|^|$i:|"

View File

@@ -4,6 +4,7 @@ LICENSE = "GPLv3+"
SRC_URI = "${GNU_MIRROR}/gzip/${BP}.tar.gz \
file://run-ptest \
file://CVE-2022-1271.patch \
"
SRC_URI_append_class-target = " file://wrong-path-fix.patch"

View File

@@ -17,9 +17,19 @@ CVE: CVE-2021-33928
CVE: CVE-2021-33929
CVE: CVE-2021-33930
CVE: CVE-2021-33938
CVE: CVE-2021-44568
CVE: CVE-2021-44569
CVE: CVE-2021-44570
CVE: CVE-2021-44571
CVE: CVE-2021-44573
CVE: CVE-2021-44574
CVE: CVE-2021-44575
CVE: CVE-2021-44576
CVE: CVE-2021-44577
Signed-off-by: Ranjitsinh Rathod <ranjitsinh.rathod@kpit.com>
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
ext/testcase.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

View File

@@ -6,7 +6,7 @@ SECTION = "base"
LICENSE = "PD & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba"
PV = "2021e"
PV = "2022a"
SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \
http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata \
@@ -14,6 +14,6 @@ SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz
UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones"
SRC_URI[tzcode.sha256sum] = "584666393a5424d13d27ec01183da17703273664742e049d4f62f62dab631775"
SRC_URI[tzdata.sha256sum] = "07ec42b737d0d3c6be9c337f8abb5f00554a0f9cc4fcf01a703d69403b6bb2b1"
SRC_URI[tzcode.sha256sum] = "f8575e7e33be9ee265df2081092526b81c80abac3f4a04399ae9d4d91cdadac7"
SRC_URI[tzdata.sha256sum] = "ef7fffd9f4f50f4f58328b35022a32a5a056b245c5cb3d6791dddb342f871664"

View File

@@ -0,0 +1,96 @@
From 6bb2369742f9ff0451c245e8ca9b9dfac0cc88ba Mon Sep 17 00:00:00 2001
From: Lasse Collin <lasse.collin@tukaani.org>
Date: Tue, 29 Mar 2022 19:19:12 +0300
Subject: [PATCH] xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
Malicious filenames can make xzgrep to write to arbitrary files
or (with a GNU sed extension) lead to arbitrary code execution.
xzgrep from XZ Utils versions up to and including 5.2.5 are
affected. 5.3.1alpha and 5.3.2alpha are affected as well.
This patch works for all of them.
This bug was inherited from gzip's zgrep. gzip 1.12 includes
a fix for zgrep.
The issue with the old sed script is that with multiple newlines,
the N-command will read the second line of input, then the
s-commands will be skipped because it's not the end of the
file yet, then a new sed cycle starts and the pattern space
is printed and emptied. So only the last line or two get escaped.
One way to fix this would be to read all lines into the pattern
space first. However, the included fix is even simpler: All lines
except the last line get a backslash appended at the end. To ensure
that shell command substitution doesn't eat a possible trailing
newline, a colon is appended to the filename before escaping.
The colon is later used to separate the filename from the grep
output so it is fine to add it here instead of a few lines later.
The old code also wasn't POSIX compliant as it used \n in the
replacement section of the s-command. Using \<newline> is the
POSIX compatible method.
LC_ALL=C was added to the two critical sed commands. POSIX sed
manual recommends it when using sed to manipulate pathnames
because in other locales invalid multibyte sequences might
cause issues with some sed implementations. In case of GNU sed,
these particular sed scripts wouldn't have such problems but some
other scripts could have, see:
info '(sed)Locale Considerations'
This vulnerability was discovered by:
cleemy desu wayo working with Trend Micro Zero Day Initiative
Thanks to Jim Meyering and Paul Eggert discussing the different
ways to fix this and for coordinating the patch release schedule
with gzip.
Upstream-Status: Backport [https://tukaani.org/xz/xzgrep-ZDI-CAN-16587.patch]
CVE: CVE-2022-1271
Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
---
src/scripts/xzgrep.in | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/scripts/xzgrep.in b/src/scripts/xzgrep.in
index a1fd19c..da1e65b 100644
--- a/src/scripts/xzgrep.in
+++ b/src/scripts/xzgrep.in
@@ -178,22 +178,26 @@ for i; do
{ test $# -eq 1 || test $no_filename -eq 1; }; then
eval "$grep"
else
+ # Append a colon so that the last character will never be a newline
+ # which would otherwise get lost in shell command substitution.
+ i="$i:"
+
+ # Escape & \ | and newlines only if such characters are present
+ # (speed optimization).
case $i in
(*'
'* | *'&'* | *'\'* | *'|'*)
- i=$(printf '%s\n' "$i" |
- sed '
- $!N
- $s/[&\|]/\\&/g
- $s/\n/\\n/g
- ');;
+ i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/');;
esac
- sed_script="s|^|$i:|"
+
+ # $i already ends with a colon so don't add it here.
+ sed_script="s|^|$i|"
# Fail if grep or sed fails.
r=$(
exec 4>&1
- (eval "$grep" 4>&-; echo $? >&4) 3>&- | sed "$sed_script" >&3 4>&-
+ (eval "$grep" 4>&-; echo $? >&4) 3>&- |
+ LC_ALL=C sed "$sed_script" >&3 4>&-
) || r=2
exit $r
fi >&3 5>&-

View File

@@ -23,7 +23,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=97d554a32881fee0aa283d96e47cb24a \
file://lib/getopt.c;endline=23;md5=2069b0ee710572c03bb3114e4532cd84 \
"
SRC_URI = "https://tukaani.org/xz/xz-${PV}.tar.gz"
SRC_URI = "https://tukaani.org/xz/xz-${PV}.tar.gz \
file://CVE-2022-1271.patch \
"
SRC_URI[md5sum] = "5ace3264bdd00c65eeec2891346f65e6"
SRC_URI[sha256sum] = "b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145"
UPSTREAM_CHECK_REGEX = "xz-(?P<pver>\d+(\.\d+)+)\.tar"

View File

@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
DEPENDS = "libdrm mesa libepoxy"
SRCREV = "7d204f3927be65fb3365dce01dbcd04d447a4985"
SRC_URI = "git://anongit.freedesktop.org/virglrenderer;branch=master \
SRC_URI = "git://anongit.freedesktop.org/git/virglrenderer;branch=master \
file://0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch \
file://0001-meson.build-use-python3-directly-for-python.patch \
"

View File

@@ -6,7 +6,7 @@ using file descriptor passing."
require xorg-lib-common.inc
LICENSE = "MIT-style"
LICENSE = "HPND"
LIC_FILES_CHKSUM = "file://COPYING;md5=47e508ca280fde97906eacb77892c3ac"
DEPENDS += "virtual/libx11"

View File

@@ -16,7 +16,7 @@ PE = "2"
INC_PR = "r8"
XORG_PN = "xorg-server"
SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2"
SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.gz"
CVE_PRODUCT = "xorg-server x_server"
# This is specific to Debian's xserver-wrapper.c

View File

@@ -1,182 +0,0 @@
From f7cd1276bbd4fe3a9700096dec33b52b8440788d Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu@herrb.eu>
Date: Tue, 18 Aug 2020 14:46:32 +0200
Subject: [PATCH] Correct bounds checking in XkbSetNames()
CVE-2020-14345 / ZDI 11428
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Upstream-Status: Backport
CVE: CVE-2020-14345
Affects < 1.20.9
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
xkb/xkb.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
Index: xorg-server-1.20.8/xkb/xkb.c
===================================================================
--- xorg-server-1.20.8.orig/xkb/xkb.c
+++ xorg-server-1.20.8/xkb/xkb.c
@@ -152,6 +152,19 @@ static RESTYPE RT_XKBCLIENT;
#define CHK_REQ_KEY_RANGE(err,first,num,r) \
CHK_REQ_KEY_RANGE2(err,first,num,r,client->errorValue,BadValue)
+static Bool
+_XkbCheckRequestBounds(ClientPtr client, void *stuff, void *from, void *to) {
+ char *cstuff = (char *)stuff;
+ char *cfrom = (char *)from;
+ char *cto = (char *)to;
+
+ return cfrom < cto &&
+ cfrom >= cstuff &&
+ cfrom < cstuff + ((size_t)client->req_len << 2) &&
+ cto >= cstuff &&
+ cto <= cstuff + ((size_t)client->req_len << 2);
+}
+
/***====================================================================***/
int
@@ -4045,6 +4058,8 @@ _XkbSetNamesCheck(ClientPtr client, Devi
client->errorValue = _XkbErrCode2(0x04, stuff->firstType);
return BadAccess;
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + stuff->nTypes))
+ return BadLength;
old = tmp;
tmp = _XkbCheckAtoms(tmp, stuff->nTypes, client->swapped, &bad);
if (!tmp) {
@@ -4074,6 +4089,8 @@ _XkbSetNamesCheck(ClientPtr client, Devi
}
width = (CARD8 *) tmp;
tmp = (CARD32 *) (((char *) tmp) + XkbPaddedSize(stuff->nKTLevels));
+ if (!_XkbCheckRequestBounds(client, stuff, width, tmp))
+ return BadLength;
type = &xkb->map->types[stuff->firstKTLevel];
for (i = 0; i < stuff->nKTLevels; i++, type++) {
if (width[i] == 0)
@@ -4083,6 +4100,8 @@ _XkbSetNamesCheck(ClientPtr client, Devi
type->num_levels, width[i]);
return BadMatch;
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + width[i]))
+ return BadLength;
tmp = _XkbCheckAtoms(tmp, width[i], client->swapped, &bad);
if (!tmp) {
client->errorValue = bad;
@@ -4095,6 +4114,9 @@ _XkbSetNamesCheck(ClientPtr client, Devi
client->errorValue = 0x08;
return BadMatch;
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp,
+ tmp + Ones(stuff->indicators)))
+ return BadLength;
tmp = _XkbCheckMaskedAtoms(tmp, XkbNumIndicators, stuff->indicators,
client->swapped, &bad);
if (!tmp) {
@@ -4107,6 +4129,9 @@ _XkbSetNamesCheck(ClientPtr client, Devi
client->errorValue = 0x09;
return BadMatch;
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp,
+ tmp + Ones(stuff->virtualMods)))
+ return BadLength;
tmp = _XkbCheckMaskedAtoms(tmp, XkbNumVirtualMods,
(CARD32) stuff->virtualMods,
client->swapped, &bad);
@@ -4120,6 +4145,9 @@ _XkbSetNamesCheck(ClientPtr client, Devi
client->errorValue = 0x0a;
return BadMatch;
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp,
+ tmp + Ones(stuff->groupNames)))
+ return BadLength;
tmp = _XkbCheckMaskedAtoms(tmp, XkbNumKbdGroups,
(CARD32) stuff->groupNames,
client->swapped, &bad);
@@ -4141,9 +4169,14 @@ _XkbSetNamesCheck(ClientPtr client, Devi
stuff->nKeys);
return BadValue;
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + stuff->nKeys))
+ return BadLength;
tmp += stuff->nKeys;
}
if ((stuff->which & XkbKeyAliasesMask) && (stuff->nKeyAliases > 0)) {
+ if (!_XkbCheckRequestBounds(client, stuff, tmp,
+ tmp + (stuff->nKeyAliases * 2)))
+ return BadLength;
tmp += stuff->nKeyAliases * 2;
}
if (stuff->which & XkbRGNamesMask) {
@@ -4151,6 +4184,9 @@ _XkbSetNamesCheck(ClientPtr client, Devi
client->errorValue = _XkbErrCode2(0x0d, stuff->nRadioGroups);
return BadValue;
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp,
+ tmp + stuff->nRadioGroups))
+ return BadLength;
tmp = _XkbCheckAtoms(tmp, stuff->nRadioGroups, client->swapped, &bad);
if (!tmp) {
client->errorValue = bad;
@@ -4344,6 +4380,8 @@ ProcXkbSetNames(ClientPtr client)
/* check device-independent stuff */
tmp = (CARD32 *) &stuff[1];
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + 1))
+ return BadLength;
if (stuff->which & XkbKeycodesNameMask) {
tmp = _XkbCheckAtoms(tmp, 1, client->swapped, &bad);
if (!tmp) {
@@ -4351,6 +4389,8 @@ ProcXkbSetNames(ClientPtr client)
return BadAtom;
}
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + 1))
+ return BadLength;
if (stuff->which & XkbGeometryNameMask) {
tmp = _XkbCheckAtoms(tmp, 1, client->swapped, &bad);
if (!tmp) {
@@ -4358,6 +4398,8 @@ ProcXkbSetNames(ClientPtr client)
return BadAtom;
}
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + 1))
+ return BadLength;
if (stuff->which & XkbSymbolsNameMask) {
tmp = _XkbCheckAtoms(tmp, 1, client->swapped, &bad);
if (!tmp) {
@@ -4365,6 +4407,8 @@ ProcXkbSetNames(ClientPtr client)
return BadAtom;
}
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + 1))
+ return BadLength;
if (stuff->which & XkbPhysSymbolsNameMask) {
tmp = _XkbCheckAtoms(tmp, 1, client->swapped, &bad);
if (!tmp) {
@@ -4372,6 +4416,8 @@ ProcXkbSetNames(ClientPtr client)
return BadAtom;
}
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + 1))
+ return BadLength;
if (stuff->which & XkbTypesNameMask) {
tmp = _XkbCheckAtoms(tmp, 1, client->swapped, &bad);
if (!tmp) {
@@ -4379,6 +4425,8 @@ ProcXkbSetNames(ClientPtr client)
return BadAtom;
}
}
+ if (!_XkbCheckRequestBounds(client, stuff, tmp, tmp + 1))
+ return BadLength;
if (stuff->which & XkbCompatNameMask) {
tmp = _XkbCheckAtoms(tmp, 1, client->swapped, &bad);
if (!tmp) {

View File

@@ -1,36 +0,0 @@
From c940cc8b6c0a2983c1ec974f1b3f019795dd4cff Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu@herrb.eu>
Date: Tue, 18 Aug 2020 14:49:04 +0200
Subject: [PATCH] Fix XIChangeHierarchy() integer underflow
CVE-2020-14346 / ZDI-CAN-11429
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Upstream-Status: Backport
[https://gitlab.freedesktop.org/xorg/xserver/-/commit/c940cc8b6c0a2983c1ec974f1b3f019795dd4cff]
CVE: CVE-2020-14346
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
---
Xi/xichangehierarchy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Xi/xichangehierarchy.c b/Xi/xichangehierarchy.c
index cbdd91258..504defe56 100644
--- a/Xi/xichangehierarchy.c
+++ b/Xi/xichangehierarchy.c
@@ -423,7 +423,7 @@ ProcXIChangeHierarchy(ClientPtr client)
if (!stuff->num_changes)
return rc;
- len = ((size_t)stuff->length << 2) - sizeof(xXIChangeHierarchyReq);
+ len = ((size_t)client->req_len << 2) - sizeof(xXIChangeHierarchyReq);
any = (xXIAnyHierarchyChangeInfo *) &stuff[1];
while (stuff->num_changes--) {
--
2.17.1

View File

@@ -1,38 +0,0 @@
From aac28e162e5108510065ad4c323affd6deffd816 Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu@herrb.eu>
Date: Sat, 25 Jul 2020 19:33:50 +0200
Subject: [PATCH] fix for ZDI-11426
Avoid leaking un-initalized memory to clients by zeroing the
whole pixmap on initial allocation.
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/-/commit/aac28e162e5108510065ad4c323affd6deffd816]
CVE: CVE-2020-14347
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
---
dix/pixmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dix/pixmap.c b/dix/pixmap.c
index 1186d7dbbf..5a0146bbb6 100644
--- a/dix/pixmap.c
+++ b/dix/pixmap.c
@@ -116,7 +116,7 @@ AllocatePixmap(ScreenPtr pScreen, int pixDataSize)
if (pScreen->totalPixmapSize > ((size_t) - 1) - pixDataSize)
return NullPixmap;
- pPixmap = malloc(pScreen->totalPixmapSize + pixDataSize);
+ pPixmap = calloc(1, pScreen->totalPixmapSize + pixDataSize);
if (!pPixmap)
return NullPixmap;
--
GitLab

View File

@@ -1,132 +0,0 @@
From 446ff2d3177087b8173fa779fa5b77a2a128988b Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu@herrb.eu>
Date: Thu, 12 Nov 2020 19:15:07 +0100
Subject: [PATCH] Check SetMap request length carefully.
Avoid out of bounds memory accesses on too short request.
ZDI-CAN 11572 / CVE-2020-14360
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Upstream-Status: Backport
https://gitlab.freedesktop.org/xorg/xserver/-/commit/446ff2d3177087b8173fa779fa5b77a2a128988b
CVE: CVE-2020-14360
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
xkb/xkb.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
Index: xorg-server-1.20.8/xkb/xkb.c
===================================================================
--- xorg-server-1.20.8.orig/xkb/xkb.c
+++ xorg-server-1.20.8/xkb/xkb.c
@@ -2382,6 +2382,93 @@ SetVirtualModMap(XkbSrvInfoPtr xkbi,
return (char *) wire;
}
+#define _add_check_len(new) \
+ if (len > UINT32_MAX - (new) || len > req_len - (new)) goto bad; \
+ else len += new
+
+/**
+ * Check the length of the SetMap request
+ */
+static int
+_XkbSetMapCheckLength(xkbSetMapReq *req)
+{
+ size_t len = sz_xkbSetMapReq, req_len = req->length << 2;
+ xkbKeyTypeWireDesc *keytype;
+ xkbSymMapWireDesc *symmap;
+ BOOL preserve;
+ int i, map_count, nSyms;
+
+ if (req_len < len)
+ goto bad;
+ /* types */
+ if (req->present & XkbKeyTypesMask) {
+ keytype = (xkbKeyTypeWireDesc *)(req + 1);
+ for (i = 0; i < req->nTypes; i++) {
+ _add_check_len(XkbPaddedSize(sz_xkbKeyTypeWireDesc));
+ if (req->flags & XkbSetMapResizeTypes) {
+ _add_check_len(keytype->nMapEntries
+ * sz_xkbKTSetMapEntryWireDesc);
+ preserve = keytype->preserve;
+ map_count = keytype->nMapEntries;
+ if (preserve) {
+ _add_check_len(map_count * sz_xkbModsWireDesc);
+ }
+ keytype += 1;
+ keytype = (xkbKeyTypeWireDesc *)
+ ((xkbKTSetMapEntryWireDesc *)keytype + map_count);
+ if (preserve)
+ keytype = (xkbKeyTypeWireDesc *)
+ ((xkbModsWireDesc *)keytype + map_count);
+ }
+ }
+ }
+ /* syms */
+ if (req->present & XkbKeySymsMask) {
+ symmap = (xkbSymMapWireDesc *)((char *)req + len);
+ for (i = 0; i < req->nKeySyms; i++) {
+ _add_check_len(sz_xkbSymMapWireDesc);
+ nSyms = symmap->nSyms;
+ _add_check_len(nSyms*sizeof(CARD32));
+ symmap += 1;
+ symmap = (xkbSymMapWireDesc *)((CARD32 *)symmap + nSyms);
+ }
+ }
+ /* actions */
+ if (req->present & XkbKeyActionsMask) {
+ _add_check_len(req->totalActs * sz_xkbActionWireDesc
+ + XkbPaddedSize(req->nKeyActs));
+ }
+ /* behaviours */
+ if (req->present & XkbKeyBehaviorsMask) {
+ _add_check_len(req->totalKeyBehaviors * sz_xkbBehaviorWireDesc);
+ }
+ /* vmods */
+ if (req->present & XkbVirtualModsMask) {
+ _add_check_len(XkbPaddedSize(Ones(req->virtualMods)));
+ }
+ /* explicit */
+ if (req->present & XkbExplicitComponentsMask) {
+ /* two bytes per non-zero explicit componen */
+ _add_check_len(XkbPaddedSize(req->totalKeyExplicit * sizeof(CARD16)));
+ }
+ /* modmap */
+ if (req->present & XkbModifierMapMask) {
+ /* two bytes per non-zero modmap component */
+ _add_check_len(XkbPaddedSize(req->totalModMapKeys * sizeof(CARD16)));
+ }
+ /* vmodmap */
+ if (req->present & XkbVirtualModMapMask) {
+ _add_check_len(req->totalVModMapKeys * sz_xkbVModMapWireDesc);
+ }
+ if (len == req_len)
+ return Success;
+bad:
+ ErrorF("[xkb] BOGUS LENGTH in SetMap: expected %ld got %ld\n",
+ len, req_len);
+ return BadLength;
+}
+
+
/**
* Check if the given request can be applied to the given device but don't
* actually do anything..
@@ -2639,6 +2726,11 @@ ProcXkbSetMap(ClientPtr client)
CHK_KBD_DEVICE(dev, stuff->deviceSpec, client, DixManageAccess);
CHK_MASK_LEGAL(0x01, stuff->present, XkbAllMapComponentsMask);
+ /* first verify the request length carefully */
+ rc = _XkbSetMapCheckLength(stuff);
+ if (rc != Success)
+ return rc;
+
tmp = (char *) &stuff[1];
/* Check if we can to the SetMap on the requested device. If this

View File

@@ -1,36 +0,0 @@
From 144849ea27230962227e62a943b399e2ab304787 Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu@herrb.eu>
Date: Tue, 18 Aug 2020 14:52:29 +0200
Subject: [PATCH] Fix XkbSelectEvents() integer underflow
CVE-2020-14361 ZDI-CAN 11573
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Upstream-Status: Backport
[https://gitlab.freedesktop.org/xorg/xserver/-/commit/144849ea27230962227e62a943b399e2ab304787]
CVE: CVE-2020-14361
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
---
xkb/xkbSwap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xkb/xkbSwap.c b/xkb/xkbSwap.c
index 1c1ed5ff4..50cabb90e 100644
--- a/xkb/xkbSwap.c
+++ b/xkb/xkbSwap.c
@@ -76,7 +76,7 @@ SProcXkbSelectEvents(ClientPtr client)
register unsigned bit, ndx, maskLeft, dataLeft, size;
from.c8 = (CARD8 *) &stuff[1];
- dataLeft = (stuff->length * 4) - SIZEOF(xkbSelectEventsReq);
+ dataLeft = (client->req_len * 4) - SIZEOF(xkbSelectEventsReq);
maskLeft = (stuff->affectWhich & (~XkbMapNotifyMask));
for (ndx = 0, bit = 1; (maskLeft != 0); ndx++, bit <<= 1) {
if (((bit & maskLeft) == 0) || (ndx == XkbMapNotify))
--
2.17.1

View File

@@ -1,70 +0,0 @@
From 2902b78535ecc6821cc027351818b28a5c7fdbdc Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu@herrb.eu>
Date: Tue, 18 Aug 2020 14:55:01 +0200
Subject: [PATCH] Fix XRecordRegisterClients() Integer underflow
CVE-2020-14362 ZDI-CAN-11574
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Upstream-Status: Backport
[https://gitlab.freedesktop.org/xorg/xserver/-/commit/2902b78535ecc6821cc027351818b28a5c7fdbdc]
CVE: CVE-2020-14362
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
---
record/record.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/record/record.c b/record/record.c
index f2d38c877..be154525d 100644
--- a/record/record.c
+++ b/record/record.c
@@ -2500,7 +2500,7 @@ SProcRecordQueryVersion(ClientPtr client)
} /* SProcRecordQueryVersion */
static int _X_COLD
-SwapCreateRegister(xRecordRegisterClientsReq * stuff)
+SwapCreateRegister(ClientPtr client, xRecordRegisterClientsReq * stuff)
{
int i;
XID *pClientID;
@@ -2510,13 +2510,13 @@ SwapCreateRegister(xRecordRegisterClientsReq * stuff)
swapl(&stuff->nRanges);
pClientID = (XID *) &stuff[1];
if (stuff->nClients >
- stuff->length - bytes_to_int32(sz_xRecordRegisterClientsReq))
+ client->req_len - bytes_to_int32(sz_xRecordRegisterClientsReq))
return BadLength;
for (i = 0; i < stuff->nClients; i++, pClientID++) {
swapl(pClientID);
}
if (stuff->nRanges >
- stuff->length - bytes_to_int32(sz_xRecordRegisterClientsReq)
+ client->req_len - bytes_to_int32(sz_xRecordRegisterClientsReq)
- stuff->nClients)
return BadLength;
RecordSwapRanges((xRecordRange *) pClientID, stuff->nRanges);
@@ -2531,7 +2531,7 @@ SProcRecordCreateContext(ClientPtr client)
swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xRecordCreateContextReq);
- if ((status = SwapCreateRegister((void *) stuff)) != Success)
+ if ((status = SwapCreateRegister(client, (void *) stuff)) != Success)
return status;
return ProcRecordCreateContext(client);
} /* SProcRecordCreateContext */
@@ -2544,7 +2544,7 @@ SProcRecordRegisterClients(ClientPtr client)
swaps(&stuff->length);
REQUEST_AT_LEAST_SIZE(xRecordRegisterClientsReq);
- if ((status = SwapCreateRegister((void *) stuff)) != Success)
+ if ((status = SwapCreateRegister(client, (void *) stuff)) != Success)
return status;
return ProcRecordRegisterClients(client);
} /* SProcRecordRegisterClients */
--
2.17.1

View File

@@ -1,102 +0,0 @@
From 87c64fc5b0db9f62f4e361444f4b60501ebf67b9 Mon Sep 17 00:00:00 2001
From: Matthieu Herrb <matthieu@herrb.eu>
Date: Sun, 11 Oct 2020 17:05:09 +0200
Subject: [PATCH] Fix XkbSetDeviceInfo() and SetDeviceIndicators() heap
overflows
ZDI-CAN 11389 / CVE-2020-25712
This vulnerability was discovered by:
Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Upstream-Status: Backport
https://gitlab.freedesktop.org/xorg/xserver/-/commit/87c64fc5b0db9f62f4e361444f4b60501ebf67b9
CVE: CVE-2020-25712
Signed-off-by: Armin Kuster <akuster@mvista.com>
---
xkb/xkb.c | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
Index: xorg-server-1.20.8/xkb/xkb.c
===================================================================
--- xorg-server-1.20.8.orig/xkb/xkb.c
+++ xorg-server-1.20.8/xkb/xkb.c
@@ -6625,7 +6625,9 @@ SetDeviceIndicators(char *wire,
unsigned changed,
int num,
int *status_rtrn,
- ClientPtr client, xkbExtensionDeviceNotify * ev)
+ ClientPtr client,
+ xkbExtensionDeviceNotify * ev,
+ xkbSetDeviceInfoReq * stuff)
{
xkbDeviceLedsWireDesc *ledWire;
int i;
@@ -6646,6 +6648,11 @@ SetDeviceIndicators(char *wire,
xkbIndicatorMapWireDesc *mapWire;
XkbSrvLedInfoPtr sli;
+ if (!_XkbCheckRequestBounds(client, stuff, ledWire, ledWire + 1)) {
+ *status_rtrn = BadLength;
+ return (char *) ledWire;
+ }
+
namec = mapc = statec = 0;
sli = XkbFindSrvLedInfo(dev, ledWire->ledClass, ledWire->ledID,
XkbXI_IndicatorMapsMask);
@@ -6664,6 +6671,10 @@ SetDeviceIndicators(char *wire,
memset((char *) sli->names, 0, XkbNumIndicators * sizeof(Atom));
for (n = 0, bit = 1; n < XkbNumIndicators; n++, bit <<= 1) {
if (ledWire->namesPresent & bit) {
+ if (!_XkbCheckRequestBounds(client, stuff, atomWire, atomWire + 1)) {
+ *status_rtrn = BadLength;
+ return (char *) atomWire;
+ }
sli->names[n] = (Atom) *atomWire;
if (sli->names[n] == None)
ledWire->namesPresent &= ~bit;
@@ -6681,6 +6692,10 @@ SetDeviceIndicators(char *wire,
if (ledWire->mapsPresent) {
for (n = 0, bit = 1; n < XkbNumIndicators; n++, bit <<= 1) {
if (ledWire->mapsPresent & bit) {
+ if (!_XkbCheckRequestBounds(client, stuff, mapWire, mapWire + 1)) {
+ *status_rtrn = BadLength;
+ return (char *) mapWire;
+ }
sli->maps[n].flags = mapWire->flags;
sli->maps[n].which_groups = mapWire->whichGroups;
sli->maps[n].groups = mapWire->groups;
@@ -6760,7 +6775,7 @@ _XkbSetDeviceInfoCheck(ClientPtr client,
ed.deviceID = dev->id;
wire = (char *) &stuff[1];
if (stuff->change & XkbXI_ButtonActionsMask) {
- int nBtns, sz, i;
+ int nBtns, sz, i;
XkbAction *acts;
DeviceIntPtr kbd;
@@ -6772,7 +6787,11 @@ _XkbSetDeviceInfoCheck(ClientPtr client,
return BadAlloc;
dev->button->xkb_acts = acts;
}
+ if (stuff->firstBtn + stuff->nBtns > nBtns)
+ return BadValue;
sz = stuff->nBtns * SIZEOF(xkbActionWireDesc);
+ if (!_XkbCheckRequestBounds(client, stuff, wire, (char *) wire + sz))
+ return BadLength;
memcpy((char *) &acts[stuff->firstBtn], (char *) wire, sz);
wire += sz;
ed.reason |= XkbXI_ButtonActionsMask;
@@ -6793,7 +6812,8 @@ _XkbSetDeviceInfoCheck(ClientPtr client,
int status = Success;
wire = SetDeviceIndicators(wire, dev, stuff->change,
- stuff->nDeviceLedFBs, &status, client, &ed);
+ stuff->nDeviceLedFBs, &status, client, &ed,
+ stuff);
if (status != Success)
return status;
}

View File

@@ -5,16 +5,9 @@ SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.pat
file://0001-test-xtest-Initialize-array-with-braces.patch \
file://sdksyms-no-build-path.patch \
file://0001-drmmode_display.c-add-missing-mi.h-include.patch \
file://CVE-2020-14347.patch \
file://CVE-2020-14346.patch \
file://CVE-2020-14361.patch \
file://CVE-2020-14362.patch \
file://CVE-2020-14345.patch \
file://CVE-2020-14360.patch \
file://CVE-2020-25712.patch \
"
SRC_URI[md5sum] = "a770aec600116444a953ff632f51f839"
SRC_URI[sha256sum] = "d17b646bee4ba0fb7850c1cc55b18e3e8513ed5c02bdf38da7e107f84e2d0146"
SRC_URI[md5sum] = "453fc86aac8c629b3a5b77e8dcca30bf"
SRC_URI[sha256sum] = "54b199c9280ff8bf0f73a54a759645bd0eeeda7255d1c99310d5b7595f3ac066"
CFLAGS += "-fcommon"

View File

@@ -72,7 +72,7 @@ LICENSE = "\
LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
file://LICENCE.adsp_sst;md5=615c45b91a5a4a9fe046d6ab9a2df728 \
file://LICENCE.agere;md5=af0133de6b4a9b2522defd5f188afd31 \
file://LICENSE.amdgpu;md5=d357524f5099e2a3db3c1838921c593f \
file://LICENSE.amdgpu;md5=44c1166d052226cb2d6c8d7400090203 \
file://LICENSE.amd-ucode;md5=3c5399dc9148d7f0e1f41e34b69cf14f \
file://LICENSE.amlogic_vdec;md5=dc44f59bf64a81643e500ad3f39a468a \
file://LICENCE.atheros_firmware;md5=30a14c7823beedac9fa39c64fdd01a13 \
@@ -132,7 +132,7 @@ LIC_FILES_CHKSUM = "file://LICENCE.Abilis;md5=b5ee3f410780e56711ad48eadc22b8bc \
file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
file://WHENCE;md5=ed3d7426e4df06fbadcca24ebf00cc5f \
file://WHENCE;md5=4cf67d71a21887c682c3989a4318745e \
"
# These are not common licenses, set NO_GENERIC_LICENSE for them
@@ -205,7 +205,7 @@ PE = "1"
SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz"
SRC_URI[sha256sum] = "e2e46fa618414952bbf2f6920cd3abcddbef45bfb7d1352994b4bfc35394d177"
SRC_URI[sha256sum] = "020b11f6412f4956f5a6f98de7d41867d2b30ea0ce81b1e2d206ec9840363849"
inherit allarch

View File

@@ -11,13 +11,13 @@ python () {
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
}
SRCREV_machine ?= "40423bc7ab2cc609f955a3dc16a0d854c1504ce3"
SRCREV_meta ?= "e8c675c7e11fbd96cd812dfb9f4f6fb6f92b6abb"
SRCREV_machine ?= "5b157591793811a9d226866d9f8acde817339fe9"
SRCREV_meta ?= "6a12bea7312868626062fe8206ce3c5bcb7c9101"
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
LINUX_VERSION ?= "5.4.178"
LINUX_VERSION ?= "5.4.190"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"

View File

@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
require recipes-kernel/linux/linux-yocto.inc
LINUX_VERSION ?= "5.4.178"
LINUX_VERSION ?= "5.4.190"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@ DEPENDS += "openssl-native util-linux-native"
KMETA = "kernel-meta"
KCONF_BSP_AUDIT_LEVEL = "2"
SRCREV_machine_qemuarm ?= "f6e09845d8bf3c307da395497b21c1ff17ef575c"
SRCREV_machine ?= "a7ba52065be4401b5d73b6b020770f7d260b7bf1"
SRCREV_meta ?= "e8c675c7e11fbd96cd812dfb9f4f6fb6f92b6abb"
SRCREV_machine_qemuarm ?= "25567bdff9816844f3b9e09cdb490d7c7bfb4edb"
SRCREV_machine ?= "36a8131ee4418c5f8883ff165833776746e61e84"
SRCREV_meta ?= "6a12bea7312868626062fe8206ce3c5bcb7c9101"
PV = "${LINUX_VERSION}+git${SRCPV}"

View File

@@ -12,16 +12,16 @@ KBRANCH_qemux86 ?= "v5.4/standard/base"
KBRANCH_qemux86-64 ?= "v5.4/standard/base"
KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
SRCREV_machine_qemuarm ?= "b3ee7c62bf5a5ce3c7e30aff6c3dd9f70a847a28"
SRCREV_machine_qemuarm64 ?= "bf6581eba15cb43af60fda7053edaf66990c18ac"
SRCREV_machine_qemumips ?= "05580fff716df568dc3f737b288e0e514a908572"
SRCREV_machine_qemuppc ?= "0a016b0775980f67d686e47cc8637adec46856dc"
SRCREV_machine_qemuriscv64 ?= "e2020dbe2ccaef50d7e8f37a5bf08c68a006a064"
SRCREV_machine_qemux86 ?= "e2020dbe2ccaef50d7e8f37a5bf08c68a006a064"
SRCREV_machine_qemux86-64 ?= "e2020dbe2ccaef50d7e8f37a5bf08c68a006a064"
SRCREV_machine_qemumips64 ?= "68f35eeca08d2a681495fd3a7b823ac34d9a97bc"
SRCREV_machine ?= "e2020dbe2ccaef50d7e8f37a5bf08c68a006a064"
SRCREV_meta ?= "e8c675c7e11fbd96cd812dfb9f4f6fb6f92b6abb"
SRCREV_machine_qemuarm ?= "c4efc0b0650c3d2a7a321a6ba5fe612b7d14bd3f"
SRCREV_machine_qemuarm64 ?= "c5b5ccb7df29d44c4e3d71d0e2ccf3e8a462a7f0"
SRCREV_machine_qemumips ?= "addad5fd9e5c386a4b06938ae73de42292d552be"
SRCREV_machine_qemuppc ?= "ee0f3e8a7de91b0520da532f87f8deeb91a92e27"
SRCREV_machine_qemuriscv64 ?= "d9d6c6e0d0a9a52f9acd488036a5ed6409352f44"
SRCREV_machine_qemux86 ?= "d9d6c6e0d0a9a52f9acd488036a5ed6409352f44"
SRCREV_machine_qemux86-64 ?= "d9d6c6e0d0a9a52f9acd488036a5ed6409352f44"
SRCREV_machine_qemumips64 ?= "971edcacc688c0deb078f4643125c5c5372010c5"
SRCREV_machine ?= "d9d6c6e0d0a9a52f9acd488036a5ed6409352f44"
SRCREV_meta ?= "6a12bea7312868626062fe8206ce3c5bcb7c9101"
# remap qemuarm to qemuarma15 for the 5.4 kernel
# KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
LINUX_VERSION ?= "5.4.178"
LINUX_VERSION ?= "5.4.190"
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
DEPENDS += "openssl-native util-linux-native"

View File

@@ -5,7 +5,7 @@ LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
SRC_URI[sha256sum] = "8828c25a4ee25020044004f57374bb9deac852809fad70f8d3d01770bf9ac97f"
SRC_URI[sha256sum] = "884ba2e3c1e8b98762b6dc25ff60b5ec75c8d33a39e019b3ed4aa615491460d3"
inherit bin_package allarch

View File

@@ -0,0 +1,32 @@
From f9d0e594d43afcb4ab0043117249feb266ba4515 Mon Sep 17 00:00:00 2001
From: Romain Geissler <romain.geissler@amadeus.com>
Date: Tue, 10 Aug 2021 14:22:28 +0000
Subject: [PATCH] Fix -Wsign-compare warning with glibc 2.34 on Linux
platforms.
In file included from /data/mwrep/res/osp/Boost/21-0-0-0/include/boost/thread/thread_only.hpp:17,
from /data/mwrep/res/osp/Boost/21-0-0-0/include/boost/thread/thread.hpp:12,
from src/GetTest.cpp:12:
/data/mwrep/res/osp/Boost/21-0-0-0/include/boost/thread/pthread/thread_data.hpp: In member function 'void boost::thread_attributes::set_stack_size(std::size_t)':
/data/mwrep/res/osp/Boost/21-0-0-0/include/boost/thread/pthread/thread_data.hpp:61:19: error: comparison of integer expressions of different signedness: 'std::size_t' {aka 'long unsigned int'} and 'long int' [-Werror=sign-compare]
61 | if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
| ^
Upstream-Status: Backport [1.78.0 https://github.com/boostorg/thread/commit/f9d0e594d43afcb4ab0043117249feb266ba4515]
---
boost/thread/pthread/thread_data.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boost/thread/pthread/thread_data.hpp b/boost/thread/pthread/thread_data.hpp
index bc9b1367..c43b276d 100644
--- a/boost/thread/pthread/thread_data.hpp
+++ b/boost/thread/pthread/thread_data.hpp
@@ -58,7 +58,7 @@ namespace boost
std::size_t page_size = ::sysconf( _SC_PAGESIZE);
#endif
#ifdef PTHREAD_STACK_MIN
- if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
+ if (size<static_cast<std::size_t>(PTHREAD_STACK_MIN)) size=PTHREAD_STACK_MIN;
#endif
size = ((size+page_size-1)/page_size)*page_size;
int res = pthread_attr_setstacksize(&val_, size);

View File

@@ -0,0 +1,24 @@
From 74fb0a26099bc51d717f5f154b37231ce7df3e98 Mon Sep 17 00:00:00 2001
From: Rob Boehne <robb@datalogics.com>
Date: Wed, 20 Nov 2019 11:25:20 -0600
Subject: [PATCH] Revert change to elide a warning that caused Solaris builds
to fail.
Upstream-Status: Backport [1.73.0 https://github.com/boostorg/thread/commit/74fb0a26099bc51d717f5f154b37231ce7df3e98]
---
boost/thread/pthread/thread_data.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boost/thread/pthread/thread_data.hpp b/boost/thread/pthread/thread_data.hpp
index aefbeb43..bc9b1367 100644
--- a/boost/thread/pthread/thread_data.hpp
+++ b/boost/thread/pthread/thread_data.hpp
@@ -57,7 +57,7 @@ namespace boost
#else
std::size_t page_size = ::sysconf( _SC_PAGESIZE);
#endif
-#if PTHREAD_STACK_MIN > 0
+#ifdef PTHREAD_STACK_MIN
if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
#endif
size = ((size+page_size-1)/page_size)*page_size;

View File

@@ -9,4 +9,6 @@ SRC_URI += " \
file://0001-dont-setup-compiler-flags-m32-m64.patch \
file://0001-revert-cease-dependence-on-range.patch \
file://0001-added-typedef-executor_type.patch \
file://0001-Revert-change-to-elide-a-warning-that-caused-Solaris.patch \
file://0001-Fix-Wsign-compare-warning-with-glibc-2.34-on-Linux-p.patch \
"

View File

@@ -0,0 +1,347 @@
From fd634998f813340768c333cdad638498602856e5 Mon Sep 17 00:00:00 2001
From: Ulya Trofimovich <skvadrik@gmail.com>
Date: Tue, 21 Apr 2020 21:28:32 +0100
Subject: [PATCH] Rewrite recursion into iteration (Tarjan's SCC algorithm and
YYFILL states).
This is to avoid stack overflow on large RE (especially on instrumented
builds that have larger stack frames, like AddressSanitizer).
Stack overflow reported by Agostino Sarubbo.
Related to #219 "overflow-1.re test fails on system with small stack".
Upstram-Status: Backport:
https://github.com/skvadrik/re2c/commit/fd634998f813340768c333cdad638498602856e5
CVE: CVE-2018-21232
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
diff --git a/src/dfa/fillpoints.cc b/src/dfa/fillpoints.cc
--- a/src/dfa/fillpoints.cc (revision e58939b34bb4c37cd990f82dc286f21cb405743e)
+++ b/src/dfa/fillpoints.cc (date 1646929180243)
@@ -5,151 +5,186 @@
#include "src/dfa/dfa.h"
-namespace re2c
-{
+
+/*
+ * note [finding strongly connected components of DFA]
+ *
+ * A slight modification of Tarjan's algorithm.
+ *
+ * The algorithm traverses the DFA in depth-first order. It maintains a stack
+ * of states that have already been visited but haven't been assigned to an SCC
+ * yet. For each state the algorithm calculates 'lowlink': index of the highest
+ * ancestor state reachable in one step from a descendant of this state.
+ * Lowlink is used to determine when a set of states should be popped off stack
+ * into a new SCC.
+ *
+ * We use lowlink to hold different kinds of information:
+ * - values in range [0 .. stack size] mean that the state is on stack (a
+ * link to a state with the smallest index reachable from this one)
+ * - SCC_UND means that this state has not been visited yet
+ * - SCC_INF means that this state has already been popped off stack
+ *
+ * We use stack size (rather than topological sort index) as a unique index of
+ * the state on stack. This is safe because the indices of states on stack are
+ * unique and less than the indices of states that have been popped off stack
+ * (SCC_INF).
+ */
+
+namespace re2c {
+ namespace {
-static const size_t SCC_INF = std::numeric_limits<size_t>::max();
-static const size_t SCC_UND = SCC_INF - 1;
+ static const size_t SCC_INF = std::numeric_limits<size_t>::max();
+ static const size_t SCC_UND = SCC_INF - 1;
-static bool loopback(size_t node, size_t narcs, const size_t *arcs)
-{
- for (size_t i = 0; i < narcs; ++i)
- {
- if (arcs[i] == node)
- {
- return true;
- }
- }
- return false;
-}
+ static bool loopback(size_t state, size_t narcs, const size_t *arcs)
+ {
+ for (size_t i = 0; i < narcs; ++i) {
+ if (arcs[i] == state) return true;
+ }
+ return false;
+ }
-/*
- * node [finding strongly connected components of DFA]
- *
- * A slight modification of Tarjan's algorithm.
- *
- * The algorithm walks graph in deep-first order. It maintains a stack
- * of nodes that have already been visited but haven't been assigned to
- * SCC yet. For each node the algorithm calculates 'lowlink': index of
- * the highest ancestor node reachable in one step from a descendant of
- * the node. Lowlink is used to determine when a set of nodes should be
- * popped off the stack into a new SCC.
- *
- * We use lowlink to hold different kinds of information:
- * - values in range [0 .. stack size] mean that this node is on stack
- * (link to a node with the smallest index reachable from this one)
- * - SCC_UND means that this node has not been visited yet
- * - SCC_INF means that this node has already been popped off stack
- *
- * We use stack size (rather than topological sort index) as unique index
- * of a node on stack. This is safe because indices of nodes on stack are
- * still unique and less than indices of nodes that have been popped off
- * stack (SCC_INF).
- *
- */
-static void scc(
- const dfa_t &dfa,
- std::stack<size_t> &stack,
- std::vector<size_t> &lowlink,
- std::vector<bool> &trivial,
- size_t i)
-{
- const size_t link = stack.size();
- lowlink[i] = link;
- stack.push(i);
+ struct StackItem {
+ size_t state; // current state
+ size_t symbol; // next arc to be visited in this state
+ size_t link; // Tarjan's "lowlink"
+ };
+
+// Tarjan's algorithm
+ static void scc(const dfa_t &dfa, std::vector<bool> &trivial,
+ std::vector<StackItem> &stack_dfs)
+ {
+ std::vector<size_t> lowlink(dfa.states.size(), SCC_UND);
+ std::stack<size_t> stack;
+
+ StackItem x0 = {0, 0, 0};
+ stack_dfs.push_back(x0);
+
+ while (!stack_dfs.empty()) {
+ const size_t i = stack_dfs.back().state;
+ size_t c = stack_dfs.back().symbol;
+ size_t link = stack_dfs.back().link;
+ stack_dfs.pop_back();
+
+ const size_t *arcs = dfa.states[i]->arcs;
+
+ if (c == 0) {
+ // DFS recursive enter
+ //DASSERT(lowlink[i] == SCC_UND);
+ link = lowlink[i] = stack.size();
+ stack.push(i);
+ }
+ else {
+ // DFS recursive return (from one of successor states)
+ const size_t j = arcs[c - 1];
+ //DASSERT(lowlink[j] != SCC_UND);
+ lowlink[i] = std::min(lowlink[i], lowlink[j]);
+ }
- const size_t *arcs = dfa.states[i]->arcs;
- for (size_t c = 0; c < dfa.nchars; ++c)
- {
- const size_t j = arcs[c];
- if (j != dfa_t::NIL)
- {
- if (lowlink[j] == SCC_UND)
- {
- scc(dfa, stack, lowlink, trivial, j);
- }
- if (lowlink[j] < lowlink[i])
- {
- lowlink[i] = lowlink[j];
- }
- }
- }
+ // find the next successor state that hasn't been visited yet
+ for (; c < dfa.nchars; ++c) {
+ const size_t j = arcs[c];
+ if (j != dfa_t::NIL) {
+ if (lowlink[j] == SCC_UND) {
+ break;
+ }
+ lowlink[i] = std::min(lowlink[i], lowlink[j]);
+ }
+ }
- if (lowlink[i] == link)
- {
- // SCC is non-trivial (has loops) iff it either:
- // - consists of multiple nodes (they all must be interconnected)
- // - consists of single node which loops back to itself
- trivial[i] = i == stack.top()
- && !loopback(i, dfa.nchars, arcs);
+ if (c < dfa.nchars) {
+ // recurse into the next successor state
+ StackItem x1 = {i, c + 1, link};
+ stack_dfs.push_back(x1);
+ StackItem x2 = {arcs[c], 0, SCC_UND};
+ stack_dfs.push_back(x2);
+ }
+ else if (lowlink[i] == link) {
+ // all successors have been visited
+ // SCC is non-trivial (has loops) if either:
+ // - it contains multiple interconnected states
+ // - it contains a single self-looping state
+ trivial[i] = i == stack.top() && !loopback(i, dfa.nchars, arcs);
- size_t j;
- do
- {
- j = stack.top();
- stack.pop();
- lowlink[j] = SCC_INF;
- }
- while (j != i);
- }
-}
+ for (;;) {
+ const size_t j = stack.top();
+ stack.pop();
+ lowlink[j] = SCC_INF;
+ if (i == j) break;
+ }
+ }
+ }
+ }
-static void calc_fill(
- const dfa_t &dfa,
- const std::vector<bool> &trivial,
- std::vector<size_t> &fill,
- size_t i)
-{
- if (fill[i] == SCC_UND)
- {
- fill[i] = 0;
- const size_t *arcs = dfa.states[i]->arcs;
- for (size_t c = 0; c < dfa.nchars; ++c)
- {
- const size_t j = arcs[c];
- if (j != dfa_t::NIL)
- {
- calc_fill(dfa, trivial, fill, j);
- size_t max = 1;
- if (trivial[j])
- {
- max += fill[j];
- }
- if (max > fill[i])
- {
- fill[i] = max;
- }
- }
- }
- }
-}
-
-void fillpoints(const dfa_t &dfa, std::vector<size_t> &fill)
-{
- const size_t size = dfa.states.size();
-
- // find DFA states that belong to non-trivial SCC
- std::stack<size_t> stack;
- std::vector<size_t> lowlink(size, SCC_UND);
- std::vector<bool> trivial(size, false);
- scc(dfa, stack, lowlink, trivial, 0);
-
- // for each DFA state, calculate YYFILL argument:
- // maximal path length to the next YYFILL state
- fill.resize(size, SCC_UND);
- calc_fill(dfa, trivial, fill, 0);
+ static void calc_fill(const dfa_t &dfa, const std::vector<bool> &trivial,
+ std::vector<StackItem> &stack_dfs, std::vector<size_t> &fill)
+ {
+ const size_t nstates = dfa.states.size();
+ fill.resize(nstates, SCC_UND);
+
+ StackItem x0 = {0, 0, SCC_INF};
+ stack_dfs.push_back(x0);
+
+ while (!stack_dfs.empty()) {
+ const size_t i = stack_dfs.back().state;
+ size_t c = stack_dfs.back().symbol;
+ stack_dfs.pop_back();
+
+ const size_t *arcs = dfa.states[i]->arcs;
+
+ if (c == 0) {
+ // DFS recursive enter
+ if (fill[i] != SCC_UND) continue;
+ fill[i] = 0;
+ }
+ else {
+ // DFS recursive return (from one of successor states)
+ const size_t j = arcs[c - 1];
+ //DASSERT(fill[i] != SCC_UND && fill[j] != SCC_UND);
+ fill[i] = std::max(fill[i], 1 + (trivial[j] ? fill[j] : 0));
+ }
+
+ // find the next successor state that hasn't been visited yet
+ for (; c < dfa.nchars; ++c) {
+ const size_t j = arcs[c];
+ if (j != dfa_t::NIL) break;
+ }
+
+ if (c < dfa.nchars) {
+ // recurse into the next successor state
+ StackItem x1 = {i, c + 1, SCC_INF};
+ stack_dfs.push_back(x1);
+ StackItem x2 = {arcs[c], 0, SCC_INF};
+ stack_dfs.push_back(x2);
+ }
+ }
- // The following states must trigger YYFILL:
- // - inital state
- // - all states in non-trivial SCCs
- // for other states, reset YYFILL argument to zero
- for (size_t i = 1; i < size; ++i)
- {
- if (trivial[i])
- {
- fill[i] = 0;
- }
- }
-}
+ // The following states must trigger YYFILL:
+ // - inital state
+ // - all states in non-trivial SCCs
+ // for other states, reset YYFILL argument to zero
+ for (size_t i = 1; i < nstates; ++i) {
+ if (trivial[i]) {
+ fill[i] = 0;
+ }
+ }
+ }
+ } // anonymous namespace
+
+ void fillpoints(const dfa_t &dfa, std::vector<size_t> &fill)
+ {
+ const size_t nstates = dfa.states.size();
+ std::vector<bool> trivial(nstates, false);
+ std::vector<StackItem> stack_dfs;
+ stack_dfs.reserve(nstates);
+
+ // find DFA states that belong to non-trivial SCC
+ scc(dfa, trivial, stack_dfs);
+
+ // for each DFA state, calculate YYFILL argument:
+ // maximal path length to the next YYFILL state
+ calc_fill(dfa, trivial, stack_dfs, fill);
+ }
+
} // namespace re2c

View File

@@ -0,0 +1,243 @@
From 7b5643476bd99c994c4f51b8143f942982d85521 Mon Sep 17 00:00:00 2001
From: Ulya Trofimovich <skvadrik@gmail.com>
Date: Wed, 22 Apr 2020 22:37:24 +0100
Subject: [PATCH] Rewrite recursion into iteration (fixed tags computation).
This is to avoid stack overflow on large RE (especially on instrumented
builds that have larger stack frames, like AddressSanitizer).
Partial fix for #219 "overflow-1.re test fails on system with small stack".
Upstream-Stauts: Backport:
https://github.com/skvadrik/re2c/commit/7b5643476bd99c994c4f51b8143f942982d85521
CVE: CVE-2018-21232
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
diff --git a/src/re/tag.cc b/src/re/tag.cc
--- a/src/re/tag.cc (revision e58939b34bb4c37cd990f82dc286f21cb405743e)
+++ b/src/re/tag.cc (date 1646986908580)
@@ -6,7 +6,7 @@
{
const size_t Tag::RIGHTMOST = std::numeric_limits<size_t>::max();
-const size_t Tag::VARDIST = std::numeric_limits<size_t>::max();
+const uint32_t Tag::VARDIST = std::numeric_limits<uint32_t>::max();
const size_t Tag::FICTIVE = Tag::RIGHTMOST - 1;
} // namespace re2c
diff --git a/src/re/tag.h b/src/re/tag.h
--- a/src/re/tag.h (revision e58939b34bb4c37cd990f82dc286f21cb405743e)
+++ b/src/re/tag.h (date 1646986922376)
@@ -19,7 +19,7 @@
struct Tag
{
static const size_t RIGHTMOST;
- static const size_t VARDIST;
+ static const uint32_t VARDIST;
static const size_t FICTIVE;
const std::string *name;
diff --git a/src/re/fixed_tags.cc b/src/re/fixed_tags.cc
--- a/src/re/fixed_tags.cc (revision e58939b34bb4c37cd990f82dc286f21cb405743e)
+++ b/src/re/fixed_tags.cc (date 1646991137317)
@@ -7,78 +7,131 @@
#include "src/re/tag.h"
namespace re2c {
+namespace {
/* note [fixed and variable tags]
*
- * If distance between two tags is constant (equal for all strings that
- * match the given regexp), then lexer only needs to track one of them:
- * the second tag equals the first tag plus static offset.
+ * If distance between two tags is constant (equal for all strings that match
+ * the given regexp), then lexer only needs to track one of them: the second
+ * tag equals the first tag plus static offset.
*
- * However, this optimization is applied only to tags in top-level
- * concatenation, because other tags may be uninitialized and we don't
- * want to mess with conditional calculation of fixed tags.
- *
+ * This optimization is applied only to tags in top-level concatenation,
+ * because in other cases the base tag may be NULL, and the calculation of
+ * the fixed tag value is not as simple as substracting a fixed offset.
* Furthermore, fixed tags are fobidden with generic API because it cannot
- * express fixed offsets.
- *
- * Tags with history also cannot be fixed.
+ * express fixed offsets. M-tags (with history) also cannot be fixed.
*
* Another special case is fictive tags (those that exist only to impose
- * hierarchical laws of POSIX disambiguation). We treat them as fixed
- * in order to suppress code generation.
+ * hierarchical laws of POSIX disambiguation). We treat them as fixed in order
+ * to suppress code generation.
*/
-static void find_fixed_tags(RE *re, std::vector<Tag> &tags,
- size_t &dist, size_t &base, bool toplevel)
+struct StackItem {
+ RE *re; // current sub-RE
+ uint32_t dist; // distance backup for alternative, unused for other RE
+ uint8_t succ; // index of the next successor to be visited
+ bool toplevel; // if this sub-RE is in top-level concatenation
+};
+
+static void find_fixed_tags(RESpec &spec, std::vector<StackItem> &stack, RE *re0)
{
- switch (re->type) {
- case RE::NIL: break;
- case RE::SYM:
- if (dist != Tag::VARDIST) ++dist;
- break;
- case RE::ALT: {
- size_t d1 = dist, d2 = dist;
- find_fixed_tags(re->alt.re1, tags, d1, base, false);
- find_fixed_tags(re->alt.re2, tags, d2, base, false);
- dist = (d1 == d2) ? d1 : Tag::VARDIST;
- break;
- }
- case RE::CAT:
- find_fixed_tags(re->cat.re2, tags, dist, base, toplevel);
- find_fixed_tags(re->cat.re1, tags, dist, base, toplevel);
- break;
- case RE::ITER:
- find_fixed_tags(re->iter.re, tags, dist, base, false);
- dist = Tag::VARDIST;
- break;
- case RE::TAG: {
- // see note [fixed and variable tags]
- Tag &tag = tags[re->tag.idx];
- if (fictive(tag)) {
- tag.base = tag.dist = 0;
- } else if (toplevel && dist != Tag::VARDIST && !history(tag)) {
- tag.base = base;
- tag.dist = dist;
- } else if (toplevel) {
- base = re->tag.idx;
- dist = 0;
- }
- if (trailing(tag)) dist = 0;
- break;
- }
- }
+ static const uint32_t VARDIST = Tag::VARDIST;
+ bool toplevel = spec.opts->input_api != INPUT_CUSTOM;
+
+ // base tag, intially the fake "rightmost tag" (the end of RE)
+ size_t base = Tag::RIGHTMOST;
+
+ // the distance to the nearest top-level tag to the right (base tag)
+ uint32_t dist = 0;
+
+ const StackItem i0 = {re0, VARDIST, 0, toplevel};
+ stack.push_back(i0);
+
+ while (!stack.empty()) {
+ const StackItem i = stack.back();
+ stack.pop_back();
+ RE *re = i.re;
+
+ if (re->type == RE::SYM) {
+ if (dist != VARDIST) ++dist;
+ }
+ else if (re->type == RE::ALT) {
+ if (i.succ == 0) {
+ // save the current distance on stack (from the alternative end
+ // to base) and recurse into the left sub-RE
+ StackItem k = {re, dist, 1, i.toplevel};
+ stack.push_back(k);
+ StackItem j = {re->alt.re1, VARDIST, 0, false};
+ stack.push_back(j);
+ }
+ else if (i.succ == 1) {
+ // save the current distance on stack (from the left sub-RE to
+ // base), reset distance to the distance popped from stack (from
+ // the alternative end to base), recurse into the right sub-RE
+ StackItem k = {re, dist, 2, i.toplevel};
+ stack.push_back(k);
+ StackItem j = {re->alt.re2, VARDIST, 0, false};
+ stack.push_back(j);
+ dist = i.dist;
+ }
+ else {
+ // both sub-RE visited, compare the distance on stack (from the
+ // left sub-RE to base) to the current distance (from the right
+ // sub-RE to base), if not equal set variable distance
+ dist = (i.dist == dist) ? i.dist : VARDIST;
+ }
+ }
+ else if (re->type == RE::ITER) {
+ if (i.succ == 0) {
+ // recurse into the sub-RE
+ StackItem k = {re, VARDIST, 1, i.toplevel};
+ stack.push_back(k);
+ StackItem j = {re->iter.re, VARDIST, 0, false};
+ stack.push_back(j);
+ }
+ else {
+ // sub-RE visited, assume unknown number of iterations
+ // TODO: find precise distance for fixed repetition counter
+ dist = VARDIST;
+ }
+ }
+ else if (re->type == RE::CAT) {
+ // the right sub-RE is pushed on stack after the left sub-RE and
+ // visited earlier (because distance is computed from right to left)
+ StackItem j1 = {re->cat.re1, VARDIST, 0, i.toplevel};
+ stack.push_back(j1);
+ StackItem j2 = {re->cat.re2, VARDIST, 0, i.toplevel};
+ stack.push_back(j2);
+ }
+ else if (re->type == RE::TAG) {
+ // see note [fixed and variable tags]
+ Tag &tag = spec.tags[re->tag.idx];
+ if (fictive(tag)) {
+ tag.base = tag.dist = 0;
+ }
+ else if (i.toplevel && dist != VARDIST && !history(tag)) {
+ tag.base = base;
+ tag.dist = dist;
+ }
+ else if (i.toplevel) {
+ base = re->tag.idx;
+ dist = 0;
+ }
+ if (trailing(tag)) {
+ dist = 0;
+ }
+ }
+ }
}
+
+} // anonymous namespace
-void find_fixed_tags(RESpec &spec)
-{
- const bool generic = spec.opts->input_api == INPUT_CUSTOM;
- std::vector<RE*>::iterator
- i = spec.res.begin(),
- e = spec.res.end();
- for (; i != e; ++i) {
- size_t base = Tag::RIGHTMOST, dist = 0;
- find_fixed_tags(*i, spec.tags, dist, base, !generic);
- }
-}
+ void find_fixed_tags(RESpec &spec)
+ {
+ std::vector<StackItem> stack;
+ for (std::vector<RE*>::iterator i = spec.res.begin(); i != spec.res.end(); ++i) {
+ find_fixed_tags(spec, stack, *i);
+ }
+ }
-} // namespace re2c
+} // namespace re2c
\ No newline at end of file

View File

@@ -0,0 +1,156 @@
From 4d9c809355b574f2a58eac119f5e076c48e4d1e2 Mon Sep 17 00:00:00 2001
From: Ulya Trofimovich <skvadrik@gmail.com>
Date: Thu, 23 Apr 2020 22:16:51 +0100
Subject: [PATCH] Rewrite recursion into iteration (nullable RE).
This is to avoid stack overflow on large RE (especially on instrumented
builds that have larger stack frames, like AddressSanitizer).
Partial fix for #219 "overflow-1.re test fails on system with small stack".
Upstream-Status: Backport:
https://github.com/skvadrik/re2c/commit/4d9c809355b574f2a58eac119f5e076c48e4d1e2
CVE: CVE-2018-21232
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
diff --git a/src/re/nullable.cc b/src/re/nullable.cc
--- a/src/re/nullable.cc (revision e58939b34bb4c37cd990f82dc286f21cb405743e)
+++ b/src/re/nullable.cc (date 1647253886226)
@@ -9,43 +9,100 @@
#include "src/re/tag.h"
namespace re2c {
+ namespace {
+
+ struct StackItem {
+ const RE *re; // current sub-RE
+ uint8_t succ; // index of the next sucessor to be visited
+ };
-static bool nullable(const RESpec &spec, const RE *re, bool &trail)
-{
- if (trail) return true;
+ static bool nullable(const RESpec &spec, std::vector<StackItem> &stack, const RE *re0)
+ {
+ // the "nullable" status of the last sub-RE visited by DFS
+ bool null = false;
- switch (re->type) {
- case RE::NIL: return true;
- case RE::SYM: return false;
- case RE::ITER:
- return nullable(spec, re->iter.re, trail);
- case RE::TAG:
- trail |= trailing(spec.tags[re->tag.idx]);
- return true;
- case RE::ALT:
- return nullable(spec, re->alt.re1, trail)
- || nullable(spec, re->alt.re2, trail);
- case RE::CAT:
- return nullable(spec, re->cat.re1, trail)
- && nullable(spec, re->cat.re2, trail);
- }
- return false; /* unreachable */
-}
+ const StackItem i0 = {re0, 0};
+ stack.push_back(i0);
+
+ while (!stack.empty()) {
+ const StackItem i = stack.back();
+ stack.pop_back();
+
+ const RE *re = i.re;
+ if (re->type == RE::NIL) {
+ null = true;
+ }
+ else if (re->type == RE::SYM) {
+ null = false;
+ }
+ else if (re->type == RE::TAG) {
+ null = true;
-/*
- * warn about rules that match empty string
- * (including rules with nonempty trailing context)
- * false positives on partially self-shadowed rules like [^]?
- */
-void warn_nullable(const RESpec &spec, const std::string &cond)
-{
- const size_t nre = spec.res.size();
- for (size_t i = 0; i < nre; ++i) {
- bool trail = false;
- if (nullable(spec, spec.res[i], trail)) {
- spec.warn.match_empty_string(spec.rules[i].code->fline, cond);
- }
- }
-}
+ // Trailing context is always in top-level concatenation, and sub-RE
+ // are visited from left to right. Since we are here, sub-RE to the
+ // left of the trailing context is nullable (otherwise we would not
+ // recurse into the right sub-RE), therefore the whole RE is nullable.
+ if (trailing(spec.tags[re->tag.idx])) {
+ //DASSERT(stack.size() == 1 && stack.back().re->type == RE::CAT);
+ stack.pop_back();
+ break;
+ }
+ }
+ else if (re->type == RE::ALT) {
+ if (i.succ == 0) {
+ // recurse into the left sub-RE
+ StackItem k = {re, 1};
+ stack.push_back(k);
+ StackItem j = {re->alt.re1, 0};
+ stack.push_back(j);
+ }
+ else if (!null) {
+ // if the left sub-RE is nullable, so is alternative, so stop
+ // recursion; otherwise recurse into the right sub-RE
+ StackItem j = {re->alt.re2, 0};
+ stack.push_back(j);
+ }
+ }
+ else if (re->type == RE::CAT) {
+ if (i.succ == 0) {
+ // recurse into the left sub-RE
+ StackItem k = {re, 1};
+ stack.push_back(k);
+ StackItem j = {re->cat.re1, 0};
+ stack.push_back(j);
+ }
+ else if (null) {
+ // if the left sub-RE is not nullable, neither is concatenation,
+ // so stop recursion; otherwise recurse into the right sub-RE
+ StackItem j = {re->cat.re2, 0};
+ stack.push_back(j);
+ }
+ }
+ else if (re->type == RE::ITER) {
+ // iteration is nullable if the sub-RE is nullable
+ // (zero repetitions is represented with alternative)
+ StackItem j = {re->iter.re, 0};
+ stack.push_back(j);
+ }
+ }
+
+ //DASSERT(stack.empty());
+ return null;
+ }
+
+ } // anonymous namespace
+
+// Warn about rules that match empty string (including rules with nonempty
+// trailing context). False positives on partially self-shadowed rules like [^]?
+ void warn_nullable(const RESpec &spec, const std::string &cond)
+ {
+ std::vector<StackItem> stack;
+ const size_t nre = spec.res.size();
+ for (size_t i = 0; i < nre; ++i) {
+ if (nullable(spec, stack, spec.res[i])) {
+ spec.warn.match_empty_string(spec.rules[i].code->fline, cond);
+ }
+ }
+ }
} // namespace re2c

View File

@@ -0,0 +1,166 @@
From 89be91f3df00657261870adbc590209fdb2bc405 Mon Sep 17 00:00:00 2001
From: Ulya Trofimovich <skvadrik@gmail.com>
Date: Thu, 23 Apr 2020 23:02:21 +0100
Subject: [PATCH] Rewrite recursion into iteration (estimation of NFA size for
RE).
This is to avoid stack overflow on large RE (especially on instrumented
builds that have larger stack frames, like AddressSanitizer).
Partial fix for #219 "overflow-1.re test fails on system with small stack".
Upstram-Status: Backport:
https://github.com/skvadrik/re2c/commit/89be91f3df00657261870adbc590209fdb2bc405
CVE: CVE-2018-21232
Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
diff --git a/src/nfa/estimate_size.cc b/src/nfa/estimate_size.cc
--- a/src/nfa/estimate_size.cc (revision e58939b34bb4c37cd990f82dc286f21cb405743e)
+++ b/src/nfa/estimate_size.cc (date 1647005399735)
@@ -6,41 +6,113 @@
#include "src/re/re.h"
namespace re2c {
+namespace {
+
+struct StackItem {
+ const RE *re; // current sub-RE
+ uint32_t size; // size of the sub-RE (only for alternative and concatenation)
+ uint8_t succ; // index of the next sucessor to be visited
+};
-static size_t estimate(const RE *re)
+static uint32_t estimate_re_size(const RE *re0, std::vector<StackItem> &stack)
{
- switch (re->type) {
- case RE::NIL: return 0;
- case RE::SYM: return 1;
- case RE::TAG: return 1;
- case RE::ALT:
- return estimate(re->alt.re1)
- + estimate(re->alt.re2)
- + 1;
- case RE::CAT:
- return estimate(re->cat.re1)
- + estimate(re->cat.re2);
- case RE::ITER: {
- const size_t
- iter = estimate(re->iter.re),
- min = re->iter.min,
- max = re->iter.max;
- return max == AST::MANY
- ? iter * min + 1
- : iter * max + (max - min);
- }
- }
- return 0; /* unreachable */
-}
+ // the estimated size of the last sub-RE visited by DFS
+ uint32_t size = 0;
+
+ const StackItem i0 = {re0, 0, 0};
+ stack.push_back(i0);
+
+ while (!stack.empty()) {
+ const StackItem i = stack.back();
+ stack.pop_back();
+
+ const RE *re = i.re;
+ if (re->type == RE::NIL) {
+ size = 0;
+ }
+ else if (re->type == RE::SYM || re->type == RE::TAG) {
+ size = 1;
+ }
+ else if (re->type == RE::ALT) {
+ if (i.succ == 0) {
+ // recurse into the left sub-RE
+ StackItem k = {re, 0, 1};
+ stack.push_back(k);
+ StackItem j = {re->alt.re1, 0, 0};
+ stack.push_back(j);
+ }
+ else if (i.succ == 1) {
+ // recurse into the right sub-RE
+ StackItem k = {re, size, 2};
+ stack.push_back(k);
+ StackItem j = {re->alt.re2, 0, 0};
+ stack.push_back(j);
+ }
+ else {
+ // both sub-RE visited, recursive return
+ size = i.size // left sub-RE (saved on stack)
+ + size // right sub-RE (just visited by DFS)
+ + 1; // additional state for alternative
+ }
+ }
+ else if (re->type == RE::CAT) {
+ if (i.succ == 0) {
+ // recurse into the left sub-RE
+ StackItem k = {re, 0, 1};
+ stack.push_back(k);
+ StackItem j = {re->cat.re1, 0, 0};
+ stack.push_back(j);
+ }
+ else if (i.succ == 1) {
+ // recurse into the right sub-RE
+ StackItem k = {re, size, 2};
+ stack.push_back(k);
+ StackItem j = {re->cat.re2, 0, 0};
+ stack.push_back(j);
+ }
+ else {
+ // both sub-RE visited, recursive return
+ size = i.size // left sub-RE (saved on stack)
+ + size; // right sub-RE (just visited by DFS)
+ }
+ }
+ else if (re->type == RE::ITER) {
+ if (i.succ == 0) {
+ // recurse into the sub-RE
+ StackItem k = {re, 0, 1};
+ stack.push_back(k);
+ StackItem j = {re->iter.re, 0, 0};
+ stack.push_back(j);
+ }
+ else {
+ // sub-RE visited, recursive return
+ const uint32_t min = re->iter.min, max = re->iter.max;
+ size = max == AST::MANY
+ ? size * min + 1
+ : size * max + (max - min);
+ }
+ }
+ }
+
+ //DASSERT(stack.empty());
+ return size;
+}
+
+} // anonymous namespace
size_t estimate_size(const std::vector<RE*> &res)
{
- const size_t nre = res.size();
- size_t size = nre - 1;
- for (size_t i = 0; i < nre; ++i) {
- size += estimate(res[i]) + 1;
- }
- return size;
+ std::vector<StackItem> stack;
+
+ const size_t nre = res.size();
+ //DASSERT(nre > 0);
+ size_t size = nre - 1;
+
+ for (size_t i = 0; i < nre; ++i) {
+ size += estimate_re_size(res[i], stack) + 1;
+ }
+
+ return size;
}
} // namespace re2c

View File

@@ -7,7 +7,11 @@ SECTION = "devel"
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://README;beginline=146;md5=881056c9add17f8019ccd8c382ba963a"
SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.gz"
SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.gz \
file://CVE-2018-21232-1.patch \
file://CVE-2018-21232-2.patch \
file://CVE-2018-21232-3.patch \
file://CVE-2018-21232-4.patch"
SRC_URI[md5sum] = "e2c6cf52fc6a21595f21bc82db5324f8"
SRC_URI[sha256sum] = "605058d18a00e01bfc32aebf83af35ed5b13180b4e9f279c90843afab2c66c7c"
UPSTREAM_CHECK_URI = "https://github.com/skvadrik/re2c/releases"

View File

@@ -11,7 +11,7 @@ RSUGGESTS_${PN} = "diffutils"
LICENSE = "vim"
LIC_FILES_CHKSUM = "file://LICENSE;md5=6b30ea4fa660c483b619924bc709ef99 \
file://runtime/doc/uganda.txt;md5=a3f193c20c6faff93c69185d5d070535"
file://runtime/doc/uganda.txt;md5=daf48235bb824c77fe8ae88d5f575f74"
SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \
file://disable_acl_header_check.patch \
@@ -21,8 +21,8 @@ SRC_URI = "git://github.com/vim/vim.git;branch=master;protocol=https \
file://racefix.patch \
"
PV .= ".4524"
SRCREV = "d8f8629b1bf566e1dada7515e9b146c69e5d9757"
PV .= ".4681"
SRCREV = "15f74fab653a784548d5d966644926b47ba2cfa7"
# Remove when 8.3 is out
UPSTREAM_VERSION_UNKNOWN = "1"