mirror of
https://git.yoctoproject.org/poky
synced 2026-02-21 08:59:41 +01:00
Compare commits
49 Commits
dunfell-23
...
yocto-3.1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
43060f59ba | ||
|
|
f46f6af1f2 | ||
|
|
aa2c6a789a | ||
|
|
2dd1b9b305 | ||
|
|
b31affa946 | ||
|
|
f8c304e07a | ||
|
|
643cb4f639 | ||
|
|
9686281c0b | ||
|
|
7860e4b563 | ||
|
|
1ed30171a6 | ||
|
|
8bc7fc1f90 | ||
|
|
e1960e5d28 | ||
|
|
d4105aa162 | ||
|
|
c244bea7b8 | ||
|
|
e449a96975 | ||
|
|
66b7a5da7e | ||
|
|
26428489f4 | ||
|
|
ab6b5e97ce | ||
|
|
ca9cb3f3e6 | ||
|
|
a4347c1c72 | ||
|
|
3cd9587ba6 | ||
|
|
4ad8edab0b | ||
|
|
0e7201d43a | ||
|
|
0abf682029 | ||
|
|
f26806d5de | ||
|
|
94ecd96f90 | ||
|
|
b9e8b3cc49 | ||
|
|
2691f9aa0d | ||
|
|
893636b299 | ||
|
|
cf233ab626 | ||
|
|
fc8016d3f9 | ||
|
|
6e53131caf | ||
|
|
642d5f4f06 | ||
|
|
73da9ecd05 | ||
|
|
e308933073 | ||
|
|
39bd9315d2 | ||
|
|
73a669d0f9 | ||
|
|
bc7b4fab48 | ||
|
|
8394010e56 | ||
|
|
66c68fa7b1 | ||
|
|
93a1926445 | ||
|
|
1ac6ed0f14 | ||
|
|
841ae63034 | ||
|
|
fcf6bf0dd1 | ||
|
|
7e3dac47e0 | ||
|
|
039c303bef | ||
|
|
f5882b194b | ||
|
|
a59a11eb56 | ||
|
|
0b6e24d0dd |
@@ -1636,6 +1636,7 @@ class BBCooker:
|
||||
return
|
||||
|
||||
def post_serve(self):
|
||||
self.shutdown(force=True)
|
||||
prserv.serv.auto_shutdown()
|
||||
if self.hashserv:
|
||||
self.hashserv.process.terminate()
|
||||
@@ -1650,6 +1651,7 @@ class BBCooker:
|
||||
|
||||
if self.parser:
|
||||
self.parser.shutdown(clean=not force, force=force)
|
||||
self.parser.final_cleanup()
|
||||
|
||||
def finishcommand(self):
|
||||
self.state = state.initial
|
||||
@@ -1931,7 +1933,8 @@ class Parser(multiprocessing.Process):
|
||||
except queue.Empty:
|
||||
pass
|
||||
else:
|
||||
self.results.cancel_join_thread()
|
||||
self.results.close()
|
||||
self.results.join_thread()
|
||||
break
|
||||
|
||||
if pending:
|
||||
@@ -1940,6 +1943,8 @@ class Parser(multiprocessing.Process):
|
||||
try:
|
||||
job = self.jobs.pop()
|
||||
except IndexError:
|
||||
self.results.close()
|
||||
self.results.join_thread()
|
||||
break
|
||||
result = self.parse(*job)
|
||||
# Clear the siggen cache after parsing to control memory usage, its huge
|
||||
@@ -2015,6 +2020,7 @@ class CookerParser(object):
|
||||
|
||||
self.start()
|
||||
self.haveshutdown = False
|
||||
self.syncthread = None
|
||||
|
||||
def start(self):
|
||||
self.results = self.load_cached()
|
||||
@@ -2056,12 +2062,9 @@ class CookerParser(object):
|
||||
self.total)
|
||||
|
||||
bb.event.fire(event, self.cfgdata)
|
||||
for process in self.processes:
|
||||
self.parser_quit.put(None)
|
||||
else:
|
||||
self.parser_quit.cancel_join_thread()
|
||||
for process in self.processes:
|
||||
self.parser_quit.put(None)
|
||||
|
||||
for process in self.processes:
|
||||
self.parser_quit.put(None)
|
||||
|
||||
# Cleanup the queue before call process.join(), otherwise there might be
|
||||
# deadlocks.
|
||||
@@ -2078,9 +2081,13 @@ class CookerParser(object):
|
||||
else:
|
||||
process.join()
|
||||
|
||||
self.parser_quit.close()
|
||||
# Allow data left in the cancel queue to be discarded
|
||||
self.parser_quit.cancel_join_thread()
|
||||
|
||||
sync = threading.Thread(target=self.bb_cache.sync)
|
||||
self.syncthread = sync
|
||||
sync.start()
|
||||
multiprocessing.util.Finalize(None, sync.join, exitpriority=-100)
|
||||
bb.codeparser.parser_cache_savemerge()
|
||||
bb.fetch.fetcher_parse_done()
|
||||
if self.cooker.configuration.profile:
|
||||
@@ -2094,6 +2101,10 @@ class CookerParser(object):
|
||||
bb.utils.process_profilelog(profiles, pout = pout)
|
||||
print("Processed parsing statistics saved to %s" % (pout))
|
||||
|
||||
def final_cleanup(self):
|
||||
if self.syncthread:
|
||||
self.syncthread.join()
|
||||
|
||||
def load_cached(self):
|
||||
for filename, appends in self.fromcache:
|
||||
cached, infos = self.bb_cache.load(filename, appends)
|
||||
|
||||
@@ -16,7 +16,7 @@ import os
|
||||
import sys
|
||||
import datetime
|
||||
|
||||
current_version = "3.1.8"
|
||||
current_version = "3.1.9"
|
||||
|
||||
# String used in sidebar
|
||||
version = 'Version: ' + current_version
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
DISTRO : "3.1.8"
|
||||
DISTRO : "3.1.9"
|
||||
DISTRO_NAME_NO_CAP : "dunfell"
|
||||
DISTRO_NAME : "Dunfell"
|
||||
DISTRO_NAME_NO_CAP_MINUS_ONE : "zeus"
|
||||
YOCTO_DOC_VERSION : "3.1.8"
|
||||
YOCTO_DOC_VERSION : "3.1.9"
|
||||
YOCTO_DOC_VERSION_MINUS_ONE : "3.0.2"
|
||||
DISTRO_REL_TAG : "yocto-3.1.8"
|
||||
POKYVERSION : "23.0.8"
|
||||
DISTRO_REL_TAG : "yocto-3.1.9"
|
||||
POKYVERSION : "23.0.9"
|
||||
YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
|
||||
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
|
||||
YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"
|
||||
|
||||
@@ -67,6 +67,8 @@ distributions:
|
||||
|
||||
- OpenSUSE Leap 15.1
|
||||
|
||||
- OpenSUSE Leap 15.2
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@@ -3811,6 +3811,15 @@ system and gives an overview of their function and contents.
|
||||
|
||||
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
|
||||
|
||||
:term:`KERNEL_DTC_FLAGS`
|
||||
Specifies the ``dtc`` flags that are passed to the Linux kernel build
|
||||
system when generating the device trees (via ``DTC_FLAGS`` environment
|
||||
variable).
|
||||
|
||||
In order to use this variable, the
|
||||
:ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class must
|
||||
be inherited.
|
||||
|
||||
:term:`KERNEL_EXTRA_ARGS`
|
||||
Specifies additional ``make`` command-line arguments the OpenEmbedded
|
||||
build system passes on when compiling the kernel.
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
- :yocto_docs:`3.1.6 Documentation </3.1.6>`
|
||||
- :yocto_docs:`3.1.7 Documentation </3.1.7>`
|
||||
- :yocto_docs:`3.1.7 Documentation </3.1.8>`
|
||||
- :yocto_docs:`3.1.9 Documentation </3.1.9>`
|
||||
|
||||
==========================
|
||||
Previous Release Manuals
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
var all_versions = {
|
||||
'dev': 'dev (3.3)',
|
||||
'3.1.8': '3.1.8',
|
||||
'3.1.9': '3.1.9',
|
||||
'3.0.4': '3.0.4',
|
||||
'2.7.4': '2.7.4',
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
DISTRO = "poky"
|
||||
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
|
||||
DISTRO_VERSION = "3.1.8"
|
||||
DISTRO_VERSION = "3.1.9"
|
||||
DISTRO_CODENAME = "dunfell"
|
||||
SDK_VENDOR = "-pokysdk"
|
||||
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${DATE}', 'snapshot')}"
|
||||
@@ -67,6 +67,7 @@ SANITY_TESTED_DISTROS ?= " \
|
||||
debian-9 \n \
|
||||
debian-10 \n \
|
||||
opensuseleap-15.1 \n \
|
||||
opensuseleap-15.2 \n \
|
||||
"
|
||||
# add poky sanity bbclass
|
||||
INHERIT += "poky-sanity"
|
||||
|
||||
@@ -261,4 +261,4 @@ python do_bootimg() {
|
||||
do_bootimg[subimages] = "hddimg iso"
|
||||
do_bootimg[imgsuffix] = "."
|
||||
|
||||
addtask bootimg before do_image_complete
|
||||
addtask bootimg before do_image_complete after do_rootfs
|
||||
|
||||
@@ -9,6 +9,9 @@ FILES_${KERNEL_PACKAGE_NAME}-image-zimage-bundle = "/${KERNEL_IMAGEDEST}/zImage-
|
||||
# Generate kernel+devicetree bundle
|
||||
KERNEL_DEVICETREE_BUNDLE ?= "0"
|
||||
|
||||
# dtc flags passed via DTC_FLAGS env variable
|
||||
KERNEL_DTC_FLAGS ?= ""
|
||||
|
||||
normalize_dtb () {
|
||||
dtb="$1"
|
||||
if echo $dtb | grep -q '/dts/'; then
|
||||
@@ -50,6 +53,10 @@ do_configure_append() {
|
||||
}
|
||||
|
||||
do_compile_append() {
|
||||
if [ -n "${KERNEL_DTC_FLAGS}" ]; then
|
||||
export DTC_FLAGS="${KERNEL_DTC_FLAGS}"
|
||||
fi
|
||||
|
||||
for dtbf in ${KERNEL_DEVICETREE}; do
|
||||
dtb=`normalize_dtb "$dtbf"`
|
||||
oe_runmake $dtb CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
|
||||
|
||||
@@ -124,7 +124,7 @@ fitimage_emit_section_kernel() {
|
||||
fi
|
||||
|
||||
cat << EOF >> ${1}
|
||||
kernel@${2} {
|
||||
kernel-${2} {
|
||||
description = "Linux kernel";
|
||||
data = /incbin/("${3}");
|
||||
type = "kernel";
|
||||
@@ -133,7 +133,7 @@ fitimage_emit_section_kernel() {
|
||||
compression = "${4}";
|
||||
load = <${UBOOT_LOADADDRESS}>;
|
||||
entry = <${ENTRYPOINT}>;
|
||||
hash@1 {
|
||||
hash-1 {
|
||||
algo = "${kernel_csum}";
|
||||
};
|
||||
};
|
||||
@@ -160,14 +160,14 @@ fitimage_emit_section_dtb() {
|
||||
dtb_loadline="load = <${UBOOT_DTB_LOADADDRESS}>;"
|
||||
fi
|
||||
cat << EOF >> ${1}
|
||||
fdt@${2} {
|
||||
fdt-${2} {
|
||||
description = "Flattened Device Tree blob";
|
||||
data = /incbin/("${3}");
|
||||
type = "flat_dt";
|
||||
arch = "${UBOOT_ARCH}";
|
||||
compression = "none";
|
||||
${dtb_loadline}
|
||||
hash@1 {
|
||||
hash-1 {
|
||||
algo = "${dtb_csum}";
|
||||
};
|
||||
};
|
||||
@@ -185,7 +185,7 @@ fitimage_emit_section_setup() {
|
||||
setup_csum="${FIT_HASH_ALG}"
|
||||
|
||||
cat << EOF >> ${1}
|
||||
setup@${2} {
|
||||
setup-${2} {
|
||||
description = "Linux setup.bin";
|
||||
data = /incbin/("${3}");
|
||||
type = "x86_setup";
|
||||
@@ -194,7 +194,7 @@ fitimage_emit_section_setup() {
|
||||
compression = "none";
|
||||
load = <0x00090000>;
|
||||
entry = <0x00090000>;
|
||||
hash@1 {
|
||||
hash-1 {
|
||||
algo = "${setup_csum}";
|
||||
};
|
||||
};
|
||||
@@ -221,7 +221,7 @@ fitimage_emit_section_ramdisk() {
|
||||
fi
|
||||
|
||||
cat << EOF >> ${1}
|
||||
ramdisk@${2} {
|
||||
ramdisk-${2} {
|
||||
description = "${INITRAMFS_IMAGE}";
|
||||
data = /incbin/("${3}");
|
||||
type = "ramdisk";
|
||||
@@ -230,7 +230,7 @@ fitimage_emit_section_ramdisk() {
|
||||
compression = "none";
|
||||
${ramdisk_loadline}
|
||||
${ramdisk_entryline}
|
||||
hash@1 {
|
||||
hash-1 {
|
||||
algo = "${ramdisk_csum}";
|
||||
};
|
||||
};
|
||||
@@ -250,7 +250,7 @@ fitimage_emit_section_config() {
|
||||
|
||||
conf_csum="${FIT_HASH_ALG}"
|
||||
conf_sign_algo="${FIT_SIGN_ALG}"
|
||||
if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then
|
||||
if [ "${UBOOT_SIGN_ENABLE}" = "1" ] ; then
|
||||
conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
|
||||
fi
|
||||
|
||||
@@ -266,39 +266,39 @@ fitimage_emit_section_config() {
|
||||
if [ -n "${2}" ]; then
|
||||
conf_desc="Linux kernel"
|
||||
sep=", "
|
||||
kernel_line="kernel = \"kernel@${2}\";"
|
||||
kernel_line="kernel = \"kernel-${2}\";"
|
||||
fi
|
||||
|
||||
if [ -n "${3}" ]; then
|
||||
conf_desc="${conf_desc}${sep}FDT blob"
|
||||
sep=", "
|
||||
fdt_line="fdt = \"fdt@${3}\";"
|
||||
fdt_line="fdt = \"fdt-${3}\";"
|
||||
fi
|
||||
|
||||
if [ -n "${4}" ]; then
|
||||
conf_desc="${conf_desc}${sep}ramdisk"
|
||||
sep=", "
|
||||
ramdisk_line="ramdisk = \"ramdisk@${4}\";"
|
||||
ramdisk_line="ramdisk = \"ramdisk-${4}\";"
|
||||
fi
|
||||
|
||||
if [ -n "${5}" ]; then
|
||||
conf_desc="${conf_desc}${sep}setup"
|
||||
setup_line="setup = \"setup@${5}\";"
|
||||
setup_line="setup = \"setup-${5}\";"
|
||||
fi
|
||||
|
||||
if [ "${6}" = "1" ]; then
|
||||
default_line="default = \"conf@${3}\";"
|
||||
default_line="default = \"conf-${3}\";"
|
||||
fi
|
||||
|
||||
cat << EOF >> ${1}
|
||||
${default_line}
|
||||
conf@${3} {
|
||||
conf-${3} {
|
||||
description = "${6} ${conf_desc}";
|
||||
${kernel_line}
|
||||
${fdt_line}
|
||||
${ramdisk_line}
|
||||
${setup_line}
|
||||
hash@1 {
|
||||
hash-1 {
|
||||
algo = "${conf_csum}";
|
||||
};
|
||||
EOF
|
||||
@@ -330,7 +330,7 @@ EOF
|
||||
sign_line="${sign_line};"
|
||||
|
||||
cat << EOF >> ${1}
|
||||
signature@1 {
|
||||
signature-1 {
|
||||
algo = "${conf_csum},${conf_sign_algo}";
|
||||
key-name-hint = "${conf_sign_keyname}";
|
||||
${sign_line}
|
||||
|
||||
@@ -105,6 +105,8 @@ do_kernel_metadata() {
|
||||
cd ${S}
|
||||
export KMETA=${KMETA}
|
||||
|
||||
bbnote "do_kernel_metadata: for summary/debug, set KCONF_AUDIT_LEVEL > 0"
|
||||
|
||||
# if kernel tools are available in-tree, they are preferred
|
||||
# and are placed on the path before any external tools. Unless
|
||||
# the external tools flag is set, in that case we do nothing.
|
||||
@@ -252,6 +254,21 @@ do_kernel_metadata() {
|
||||
bbfatal_log "Could not generate configuration queue for ${KMACHINE}."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ${KCONF_AUDIT_LEVEL} -gt 0 ]; then
|
||||
bbnote "kernel meta data summary for ${KMACHINE} (${LINUX_KERNEL_TYPE}):"
|
||||
bbnote "======================================================================"
|
||||
if [ -n "${KMETA_EXTERNAL_BSPS}" ]; then
|
||||
bbnote "Non kernel-cache (external) bsp"
|
||||
fi
|
||||
bbnote "BSP entry point / definition: $bsp_definition"
|
||||
if [ -n "$in_tree_defconfig" ]; then
|
||||
bbnote "KBUILD_DEFCONFIG: ${KBUILD_DEFCONFIG}"
|
||||
fi
|
||||
bbnote "Fragments from SRC_URI: $sccs_from_src_uri"
|
||||
bbnote "KERNEL_FEATURES: $KERNEL_FEATURES_FINAL"
|
||||
bbnote "Final scc/cfg list: $sccs_defconfig $bsp_definition $sccs $KERNEL_FEATURES_FINAL"
|
||||
fi
|
||||
}
|
||||
|
||||
do_patch() {
|
||||
|
||||
@@ -680,7 +680,7 @@ do_sizecheck() {
|
||||
at_least_one_fits=
|
||||
for imageType in ${KERNEL_IMAGETYPES} ; do
|
||||
size=`du -ks ${B}/${KERNEL_OUTPUT_DIR}/$imageType | awk '{print $1}'`
|
||||
if [ $size -ge ${KERNEL_IMAGE_MAXSIZE} ]; then
|
||||
if [ $size -gt ${KERNEL_IMAGE_MAXSIZE} ]; then
|
||||
bbwarn "This kernel $imageType (size=$size(K) > ${KERNEL_IMAGE_MAXSIZE}(K)) is too big for your device."
|
||||
else
|
||||
at_least_one_fits=y
|
||||
|
||||
@@ -678,8 +678,8 @@ python do_package_rpm () {
|
||||
cmd = cmd + " --define '_use_internal_dependency_generator 0'"
|
||||
cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'"
|
||||
cmd = cmd + " --define '_build_id_links none'"
|
||||
cmd = cmd + " --define '_binary_payload w6T.xzdio'"
|
||||
cmd = cmd + " --define '_source_payload w6T.xzdio'"
|
||||
cmd = cmd + " --define '_binary_payload w6T%d.xzdio'" % int(d.getVar("XZ_THREADS"))
|
||||
cmd = cmd + " --define '_source_payload w6T%d.xzdio'" % int(d.getVar("XZ_THREADS"))
|
||||
cmd = cmd + " --define 'clamp_mtime_to_source_date_epoch 1'"
|
||||
cmd = cmd + " --define 'use_source_date_epoch_as_buildtime 1'"
|
||||
cmd = cmd + " --define '_buildhost reproducible'"
|
||||
|
||||
@@ -706,6 +706,8 @@ def sstate_package(ss, d):
|
||||
|
||||
return
|
||||
|
||||
sstate_package[vardepsexclude] += "SSTATE_SIG_KEY"
|
||||
|
||||
def pstaging_fetch(sstatefetch, d):
|
||||
import bb.fetch2
|
||||
|
||||
|
||||
73
meta/conf/distro/include/cve-extra-exclusions.inc
Normal file
73
meta/conf/distro/include/cve-extra-exclusions.inc
Normal file
@@ -0,0 +1,73 @@
|
||||
# This file contains a list of CVE's where resolution has proven to be impractical
|
||||
# or there is no reasonable action the Yocto Project can take to resolve the issue.
|
||||
# It contains all the information we are aware of about an issue and analysis about
|
||||
# why we believe it can't be fixed/handled. Additional information is welcome through
|
||||
# patches to the file.
|
||||
#
|
||||
# Include this file in your local.conf or distro.conf to exclude these CVE's
|
||||
# from the cve-check results or add to the bitbake command with:
|
||||
# -R conf/distro/include/cve-extra-exclusions.inc
|
||||
#
|
||||
# The file is not included by default since users should review this data to ensure
|
||||
# it matches their expectations and usage of the project.
|
||||
#
|
||||
# We may also include "in-flight" information about current/ongoing CVE work with
|
||||
# the aim of sharing that work and ensuring we don't duplicate it.
|
||||
#
|
||||
|
||||
|
||||
# strace https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2000-0006
|
||||
# CVE is more than 20 years old with no resolution evident
|
||||
# broken links in CVE database references make resolution impractical
|
||||
CVE_CHECK_WHITELIST += "CVE-2000-0006"
|
||||
|
||||
# epiphany https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-0238
|
||||
# The issue here is spoofing of domain names using characters from other character sets.
|
||||
# There has been much discussion amongst the epiphany and webkit developers and
|
||||
# whilst there are improvements about how domains are handled and displayed to the user
|
||||
# there is unlikely ever to be a single fix to webkit or epiphany which addresses this
|
||||
# problem. Whitelisted as there isn't any mitigation or fix or way to progress this further
|
||||
# we can seem to take.
|
||||
CVE_CHECK_WHITELIST += "CVE-2005-0238"
|
||||
|
||||
# glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-4756
|
||||
# Issue is memory exhaustion via glob() calls, e.g. from within an ftp server
|
||||
# Best discussion in https://bugzilla.redhat.com/show_bug.cgi?id=681681
|
||||
# Upstream don't see it as a security issue, ftp servers shouldn't be passing
|
||||
# this to libc glob. Exclude as upstream have no plans to add BSD's GLOB_LIMIT or similar
|
||||
CVE_CHECK_WHITELIST += "CVE-2010-4756"
|
||||
|
||||
# go https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-29509
|
||||
# go https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-29511
|
||||
# The encoding/xml package in go can potentially be used for security exploits if not used correctly
|
||||
# CVE applies to a netapp product as well as flagging a general issue. We don't ship anything
|
||||
# exposing this interface in an exploitable way
|
||||
CVE_CHECK_WHITELIST += "CVE-2020-29509 CVE-2020-29511"
|
||||
|
||||
|
||||
|
||||
#### CPE update pending ####
|
||||
|
||||
# groff:groff-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2000-0803
|
||||
# Appears it was fixed in https://git.savannah.gnu.org/cgit/groff.git/commit/?id=07f95f1674217275ed4612f1dcaa95a88435c6a7
|
||||
# so from 1.17 onwards. Reported to the database for update by RP 2021/5/9. Update accepted 2021/5/10.
|
||||
#CVE_CHECK_WHITELIST += "CVE-2000-0803"
|
||||
|
||||
|
||||
|
||||
#### Upstream still working on ####
|
||||
|
||||
# qemu:qemu-native:qemu-system-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-20255
|
||||
# There was a proposed patch https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg06098.html
|
||||
# however qemu maintainers are sure the patch is incorrect and should not be applied.
|
||||
|
||||
# flex:flex-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-6293
|
||||
# Upstream bug, still open: https://github.com/westes/flex/issues/414
|
||||
# Causes memory exhaustion so potential DoS but no buffer overflow, low priority
|
||||
|
||||
# wget https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-31879
|
||||
# https://mail.gnu.org/archive/html/bug-wget/2021-02/msg00002.html
|
||||
# No response upstream as of 2021/5/12
|
||||
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ class LocalSigner(object):
|
||||
|
||||
def verify(self, sig_file):
|
||||
"""Verify signature"""
|
||||
cmd = self.gpg_cmd + [" --verify", "--no-permission-warning"]
|
||||
cmd = self.gpg_cmd + ["--verify", "--no-permission-warning"]
|
||||
if self.gpg_path:
|
||||
cmd += ["--homedir", self.gpg_path]
|
||||
|
||||
|
||||
@@ -141,13 +141,4 @@ class RpmInstallRemoveTest(OERuntimeTestCase):
|
||||
|
||||
self.tc.target.run('rm -f %s' % self.dst)
|
||||
|
||||
# if using systemd this should ensure all entries are flushed to /var
|
||||
status, output = self.target.run("journalctl --sync")
|
||||
# Get the amount of entries in the log file
|
||||
status, output = self.target.run(check_log_cmd)
|
||||
msg = 'Failed to get the final size of the log file.'
|
||||
self.assertEqual(0, status, msg=msg)
|
||||
|
||||
# Check that there's enough of them
|
||||
self.assertGreaterEqual(int(output), 80,
|
||||
'Cound not find sufficient amount of rpm entries in /var/log/messages, found {} entries'.format(output))
|
||||
|
||||
@@ -13,6 +13,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
|
||||
|
||||
CVE_PRODUCT = "grub2"
|
||||
|
||||
# Applies only to RHEL
|
||||
CVE_CHECK_WHITELIST += "CVE-2019-14865"
|
||||
|
||||
SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
|
||||
file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \
|
||||
file://autogen.sh-exclude-pc.patch \
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
Upstream-Status: Backporting [https://downloads.isc.org/isc/bind9/9.16.12/patches/CVE-2020-8625.patch]
|
||||
CVE: CVE-2020-8625
|
||||
Signed-off-by: Minjae Kim <flowergom@gmail.com>
|
||||
|
||||
diff --git a/lib/dns/spnego.c b/lib/dns/spnego.c
|
||||
index e61d1c600f2..753dc8049fa 100644
|
||||
--- a/lib/dns/spnego.c
|
||||
+++ b/lib/dns/spnego.c
|
||||
@@ -848,7 +848,7 @@ der_get_oid(const unsigned char *p, size_t len, oid *data, size_t *size) {
|
||||
return (ASN1_OVERRUN);
|
||||
}
|
||||
|
||||
- data->components = malloc(len * sizeof(*data->components));
|
||||
+ data->components = malloc((len + 1) * sizeof(*data->components));
|
||||
if (data->components == NULL) {
|
||||
return (ENOMEM);
|
||||
}
|
||||
@@ -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=bf39058a7f64b2a934ce14dc9ec1dd45"
|
||||
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=b88e7ca5f21908e1b2720169f6807cf6"
|
||||
|
||||
DEPENDS = "openssl libcap zlib"
|
||||
|
||||
@@ -19,10 +19,9 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.gz \
|
||||
file://0001-configure.in-remove-useless-L-use_openssl-lib.patch \
|
||||
file://0001-named-lwresd-V-and-start-log-hide-build-options.patch \
|
||||
file://0001-avoid-start-failure-with-bind-user.patch \
|
||||
file://CVE-2020-8625.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "afc6d8015006f1cabf699ff19f517bb8fd9c1811e5231f26baf51c3550262ac9"
|
||||
SRC_URI[sha256sum] = "cbf8cb4b74dd1452d97c3a2a8c625ea346df8516b4b3508ef07443121a591342"
|
||||
|
||||
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
|
||||
@@ -0,0 +1,97 @@
|
||||
From b3855ff053f5078ec3d3c653cdaedefaa5fc362d Mon Sep 17 00:00:00 2001
|
||||
From: "djm@openbsd.org" <djm@openbsd.org>
|
||||
Date: Fri, 18 Sep 2020 05:23:03 +0000
|
||||
Subject: upstream: tweak the client hostkey preference ordering algorithm to
|
||||
|
||||
prefer the default ordering if the user has a key that matches the
|
||||
best-preference default algorithm.
|
||||
|
||||
feedback and ok markus@
|
||||
|
||||
OpenBSD-Commit-ID: a92dd7d7520ddd95c0a16786a7519e6d0167d35f
|
||||
|
||||
Signed-off-by: Sana Kazi <Sana.Kazi@kpit.com>
|
||||
---
|
||||
sshconnect2.c | 41 ++++++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 38 insertions(+), 3 deletions(-)
|
||||
|
||||
CVE: CVE-2020-14145
|
||||
Upstream-Status: Backport [https://anongit.mindrot.org/openssh.git/patch/?id=b3855ff053f5078ec3d3c653cdaedefaa5fc362d]
|
||||
Comment: Refreshed first hunk
|
||||
|
||||
diff --git a/sshconnect2.c b/sshconnect2.c
|
||||
index 347e348c..f64aae66 100644
|
||||
--- a/sshconnect2.c
|
||||
+++ b/sshconnect2.c
|
||||
@@ -1,4 +1,4 @@
|
||||
-/* $OpenBSD: sshconnect2.c,v 1.320 2020/02/06 22:48:23 djm Exp $ */
|
||||
+/* $OpenBSD: sshconnect2.c,v 1.326 2020/09/18 05:23:03 djm Exp $ */
|
||||
/*
|
||||
* Copyright (c) 2000 Markus Friedl. All rights reserved.
|
||||
* Copyright (c) 2008 Damien Miller. All rights reserved.
|
||||
@@ -102,12 +102,25 @@ verify_host_key_callback(struct sshkey *hostkey, struct ssh *ssh)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+/* Returns the first item from a comma-separated algorithm list */
|
||||
+static char *
|
||||
+first_alg(const char *algs)
|
||||
+{
|
||||
+ char *ret, *cp;
|
||||
+
|
||||
+ ret = xstrdup(algs);
|
||||
+ if ((cp = strchr(ret, ',')) != NULL)
|
||||
+ *cp = '\0';
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
static char *
|
||||
order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port)
|
||||
{
|
||||
- char *oavail, *avail, *first, *last, *alg, *hostname, *ret;
|
||||
+ char *oavail = NULL, *avail = NULL, *first = NULL, *last = NULL;
|
||||
+ char *alg = NULL, *hostname = NULL, *ret = NULL, *best = NULL;
|
||||
size_t maxlen;
|
||||
- struct hostkeys *hostkeys;
|
||||
+ struct hostkeys *hostkeys = NULL;
|
||||
int ktype;
|
||||
u_int i;
|
||||
|
||||
@@ -119,6 +132,26 @@ order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port)
|
||||
for (i = 0; i < options.num_system_hostfiles; i++)
|
||||
load_hostkeys(hostkeys, hostname, options.system_hostfiles[i]);
|
||||
|
||||
+ /*
|
||||
+ * If a plain public key exists that matches the type of the best
|
||||
+ * preference HostkeyAlgorithms, then use the whole list as is.
|
||||
+ * Note that we ignore whether the best preference algorithm is a
|
||||
+ * certificate type, as sshconnect.c will downgrade certs to
|
||||
+ * plain keys if necessary.
|
||||
+ */
|
||||
+ best = first_alg(options.hostkeyalgorithms);
|
||||
+ if (lookup_key_in_hostkeys_by_type(hostkeys,
|
||||
+ sshkey_type_plain(sshkey_type_from_name(best)), NULL)) {
|
||||
+ debug3("%s: have matching best-preference key type %s, "
|
||||
+ "using HostkeyAlgorithms verbatim", __func__, best);
|
||||
+ ret = xstrdup(options.hostkeyalgorithms);
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
+ * Otherwise, prefer the host key algorithms that match known keys
|
||||
+ * while keeping the ordering of HostkeyAlgorithms as much as possible.
|
||||
+ */
|
||||
oavail = avail = xstrdup(options.hostkeyalgorithms);
|
||||
maxlen = strlen(avail) + 1;
|
||||
first = xmalloc(maxlen);
|
||||
@@ -159,6 +192,8 @@ order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port)
|
||||
if (*first != '\0')
|
||||
debug3("%s: prefer hostkeyalgs: %s", __func__, first);
|
||||
|
||||
+ out:
|
||||
+ free(best);
|
||||
free(first);
|
||||
free(last);
|
||||
free(hostname);
|
||||
--
|
||||
cgit v1.2.3
|
||||
@@ -24,6 +24,7 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar
|
||||
file://fix-potential-signed-overflow-in-pointer-arithmatic.patch \
|
||||
file://sshd_check_keys \
|
||||
file://add-test-support-for-busybox.patch \
|
||||
file://CVE-2020-14145.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "3076e6413e8dbe56d33848c1054ac091"
|
||||
SRC_URI[sha256sum] = "43925151e6cf6cee1450190c0e9af4dc36b41c12737619edff8bcebdff64e671"
|
||||
@@ -35,7 +36,17 @@ CVE_CHECK_WHITELIST += "CVE-2007-2768"
|
||||
# and when running in a Kerberos environment. As such it is not relevant to OpenEmbedded
|
||||
CVE_CHECK_WHITELIST += "CVE-2014-9278"
|
||||
|
||||
# CVE only applies to some distributed RHEL binaries
|
||||
# As per upstream, because of the way scp is based on a historical protocol called rcp
|
||||
# which relies on that style of argument passing and therefore encounters expansion
|
||||
# problems. Making changes to how the scp command line works breaks the pattern used
|
||||
# by scp consumers. Upstream therefore recommends the use of rsync in the place of
|
||||
# scp for better security. https://bugzilla.redhat.com/show_bug.cgi?id=1860487
|
||||
CVE_CHECK_WHITELIST += "CVE-2020-15778"
|
||||
|
||||
# CVE-2008-3844 was reported in OpenSSH on Red Hat Enterprise Linux and
|
||||
# certain packages may have been compromised. This CVE is not applicable
|
||||
# as our source is OpenBSD. https://securitytracker.com/id?1020730
|
||||
# https://www.securityfocus.com/bid/30794
|
||||
CVE_CHECK_WHITELIST += "CVE-2008-3844"
|
||||
|
||||
PAM_SRC_URI = "file://sshd"
|
||||
|
||||
@@ -20,3 +20,5 @@ do_configure_prepend () {
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
CVE_PRODUCT = "expat libexpat"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
import resource
|
||||
|
||||
env = os.environ.copy()
|
||||
args = sys.argv[1:]
|
||||
@@ -44,6 +45,14 @@ if targettype == "user":
|
||||
qemuargs += ["-L", sysroot]
|
||||
qemuargs += ["-E", "LD_LIBRARY_PATH={}".format(":".join(libpaths))]
|
||||
command = qemuargs + args
|
||||
|
||||
# We've seen qemu-arm using up all system memory for some glibc
|
||||
# tests e.g. nptl/tst-pthread-timedlock-lockloop
|
||||
# Cap at 8GB since no test should need more than that
|
||||
# (5GB adds 7 failures for qemuarm glibc test run)
|
||||
limit = 8*1024*1024*1024
|
||||
resource.setrlimit(resource.RLIMIT_AS, (limit, limit))
|
||||
|
||||
elif targettype == "ssh":
|
||||
host = os.environ.get("SSH_HOST", None)
|
||||
user = os.environ.get("SSH_HOST_USER", None)
|
||||
|
||||
@@ -67,8 +67,8 @@ rootfs_run() {
|
||||
# It is unlikely to change, but keep trying anyway.
|
||||
# Perhaps we pick a different device next time.
|
||||
umount $ROOTFS_DIR
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
debug "Sleeping for $delay second(s) to wait root to settle..."
|
||||
sleep $delay
|
||||
|
||||
53
meta/recipes-core/libxml/libxml2/CVE-2021-3517.patch
Normal file
53
meta/recipes-core/libxml/libxml2/CVE-2021-3517.patch
Normal file
@@ -0,0 +1,53 @@
|
||||
From bf22713507fe1fc3a2c4b525cf0a88c2dc87a3a2 Mon Sep 17 00:00:00 2001
|
||||
From: Joel Hockey <joel.hockey@gmail.com>
|
||||
Date: Sun, 16 Aug 2020 17:19:35 -0700
|
||||
Subject: [PATCH] Validate UTF8 in xmlEncodeEntities
|
||||
|
||||
Code is currently assuming UTF-8 without validating. Truncated UTF-8
|
||||
input can cause out-of-bounds array access.
|
||||
|
||||
Adds further checks to partial fix in 50f06b3e.
|
||||
|
||||
Fixes #178
|
||||
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/bf22713507fe1fc3a2c4b525cf0a88c2dc87a3a2]
|
||||
CVE: CVE-2021-3517
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
|
||||
---
|
||||
entities.c | 16 +++++++++++++++-
|
||||
1 file changed, 15 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/entities.c b/entities.c
|
||||
index 37b99a56..1a8f86f0 100644
|
||||
--- a/entities.c
|
||||
+++ b/entities.c
|
||||
@@ -704,11 +704,25 @@ xmlEncodeEntitiesInternal(xmlDocPtr doc, const xmlChar *input, int attr) {
|
||||
} else {
|
||||
/*
|
||||
* We assume we have UTF-8 input.
|
||||
+ * It must match either:
|
||||
+ * 110xxxxx 10xxxxxx
|
||||
+ * 1110xxxx 10xxxxxx 10xxxxxx
|
||||
+ * 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
|
||||
+ * That is:
|
||||
+ * cur[0] is 11xxxxxx
|
||||
+ * cur[1] is 10xxxxxx
|
||||
+ * cur[2] is 10xxxxxx if cur[0] is 111xxxxx
|
||||
+ * cur[3] is 10xxxxxx if cur[0] is 1111xxxx
|
||||
+ * cur[0] is not 11111xxx
|
||||
*/
|
||||
char buf[11], *ptr;
|
||||
int val = 0, l = 1;
|
||||
|
||||
- if (*cur < 0xC0) {
|
||||
+ if (((cur[0] & 0xC0) != 0xC0) ||
|
||||
+ ((cur[1] & 0xC0) != 0x80) ||
|
||||
+ (((cur[0] & 0xE0) == 0xE0) && ((cur[2] & 0xC0) != 0x80)) ||
|
||||
+ (((cur[0] & 0xF0) == 0xF0) && ((cur[3] & 0xC0) != 0x80)) ||
|
||||
+ (((cur[0] & 0xF8) == 0xF8))) {
|
||||
xmlEntitiesErr(XML_CHECK_NOT_UTF8,
|
||||
"xmlEncodeEntities: input not UTF-8");
|
||||
if (doc != NULL)
|
||||
--
|
||||
GitLab
|
||||
|
||||
50
meta/recipes-core/libxml/libxml2/CVE-2021-3537.patch
Normal file
50
meta/recipes-core/libxml/libxml2/CVE-2021-3537.patch
Normal file
@@ -0,0 +1,50 @@
|
||||
From babe75030c7f64a37826bb3342317134568bef61 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Wellnhofer <wellnhofer@aevum.de>
|
||||
Date: Sat, 1 May 2021 16:53:33 +0200
|
||||
Subject: [PATCH] Propagate error in xmlParseElementChildrenContentDeclPriv
|
||||
|
||||
Check return value of recursive calls to
|
||||
xmlParseElementChildrenContentDeclPriv and return immediately in case
|
||||
of errors. Otherwise, struct xmlElementContent could contain unexpected
|
||||
null pointers, leading to a null deref when post-validating documents
|
||||
which aren't well-formed and parsed in recovery mode.
|
||||
|
||||
Fixes #243.
|
||||
|
||||
Upstream-Status: Backport
|
||||
[https://gitlab.gnome.org/GNOME/libxml2/-/commit/babe75030c7f64a37826bb3342317134568bef61]
|
||||
CVE: CVE-2021-3537
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
|
||||
---
|
||||
parser.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/parser.c b/parser.c
|
||||
index b42e6043..73c27edd 100644
|
||||
--- a/parser.c
|
||||
+++ b/parser.c
|
||||
@@ -6208,6 +6208,8 @@ xmlParseElementChildrenContentDeclPriv(xmlParserCtxtPtr ctxt, int inputchk,
|
||||
SKIP_BLANKS;
|
||||
cur = ret = xmlParseElementChildrenContentDeclPriv(ctxt, inputid,
|
||||
depth + 1);
|
||||
+ if (cur == NULL)
|
||||
+ return(NULL);
|
||||
SKIP_BLANKS;
|
||||
GROW;
|
||||
} else {
|
||||
@@ -6341,6 +6343,11 @@ xmlParseElementChildrenContentDeclPriv(xmlParserCtxtPtr ctxt, int inputchk,
|
||||
SKIP_BLANKS;
|
||||
last = xmlParseElementChildrenContentDeclPriv(ctxt, inputid,
|
||||
depth + 1);
|
||||
+ if (last == NULL) {
|
||||
+ if (ret != NULL)
|
||||
+ xmlFreeDocElementContent(ctxt->myDoc, ret);
|
||||
+ return(NULL);
|
||||
+ }
|
||||
SKIP_BLANKS;
|
||||
} else {
|
||||
elem = xmlParseName(ctxt);
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -1,28 +1,33 @@
|
||||
Add 'install-ptest' rule. Print a standard result line for
|
||||
each test.
|
||||
From 6172ccd1e74bc181f5298f19e240234e12876abe Mon Sep 17 00:00:00 2001
|
||||
From: Tony Tascioglu <tony.tascioglu@windriver.com>
|
||||
Date: Tue, 11 May 2021 11:57:46 -0400
|
||||
Subject: [PATCH] Add 'install-ptest' rule.
|
||||
|
||||
Print a standard result line for each test.
|
||||
|
||||
Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
|
||||
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
|
||||
Upstream-Status: Backport
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
|
||||
---
|
||||
Makefile.am | 9 ++++
|
||||
Makefile.am | 9 +++
|
||||
runsuite.c | 1 +
|
||||
runtest.c | 2 +
|
||||
runxmlconf.c | 1 +
|
||||
testapi.c | 122 ++++++++++++++++++++++++++++++---------------
|
||||
testchar.c | 156 +++++++++++++++++++++++++++++++++++++++++-----------------
|
||||
testapi.c | 122 ++++++++++++++++++++++++++-------------
|
||||
testchar.c | 156 +++++++++++++++++++++++++++++++++++---------------
|
||||
testdict.c | 1 +
|
||||
testlimits.c | 1 +
|
||||
testrecurse.c | 2 +
|
||||
9 files changed, 210 insertions(+), 85 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 9c630be..7cfd04b 100644
|
||||
index 05d1671f..ae622745 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -202,6 +202,15 @@ runxmlconf_LDADD= $(LDADDS)
|
||||
@@ -198,6 +198,15 @@ runxmlconf_LDADD= $(LDADDS)
|
||||
#testOOM_DEPENDENCIES = $(DEPS)
|
||||
#testOOM_LDADD= $(LDADDS)
|
||||
|
||||
@@ -39,10 +44,10 @@ index 9c630be..7cfd04b 100644
|
||||
testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)
|
||||
[ -d test ] || $(LN_S) $(srcdir)/test .
|
||||
diff --git a/runsuite.c b/runsuite.c
|
||||
index aaab13e..9ba2c5d 100644
|
||||
index d24b5ec3..f7ff2521 100644
|
||||
--- a/runsuite.c
|
||||
+++ b/runsuite.c
|
||||
@@ -1162,6 +1162,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
|
||||
@@ -1147,6 +1147,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
|
||||
|
||||
if (logfile != NULL)
|
||||
fclose(logfile);
|
||||
@@ -51,10 +56,10 @@ index aaab13e..9ba2c5d 100644
|
||||
}
|
||||
#else /* !SCHEMAS */
|
||||
diff --git a/runtest.c b/runtest.c
|
||||
index addda5c..8ba5d59 100644
|
||||
index ffa98d04..470f95cb 100644
|
||||
--- a/runtest.c
|
||||
+++ b/runtest.c
|
||||
@@ -4501,6 +4501,7 @@ launchTests(testDescPtr tst) {
|
||||
@@ -4508,6 +4508,7 @@ launchTests(testDescPtr tst) {
|
||||
xmlCharEncCloseFunc(ebcdicHandler);
|
||||
xmlCharEncCloseFunc(eucJpHandler);
|
||||
|
||||
@@ -62,7 +67,7 @@ index addda5c..8ba5d59 100644
|
||||
return(err);
|
||||
}
|
||||
|
||||
@@ -4577,6 +4578,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
|
||||
@@ -4588,6 +4589,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
|
||||
xmlCleanupParser();
|
||||
xmlMemoryDump();
|
||||
|
||||
@@ -71,7 +76,7 @@ index addda5c..8ba5d59 100644
|
||||
}
|
||||
|
||||
diff --git a/runxmlconf.c b/runxmlconf.c
|
||||
index cef20f4..4f291fb 100644
|
||||
index 70f61017..e882b3a1 100644
|
||||
--- a/runxmlconf.c
|
||||
+++ b/runxmlconf.c
|
||||
@@ -595,6 +595,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
|
||||
@@ -83,7 +88,7 @@ index cef20f4..4f291fb 100644
|
||||
}
|
||||
|
||||
diff --git a/testapi.c b/testapi.c
|
||||
index 4a751e2..7ccc066 100644
|
||||
index ff8b470d..52b51d78 100644
|
||||
--- a/testapi.c
|
||||
+++ b/testapi.c
|
||||
@@ -1246,49 +1246,91 @@ static int
|
||||
@@ -219,7 +224,7 @@ index 4a751e2..7ccc066 100644
|
||||
}
|
||||
|
||||
diff --git a/testchar.c b/testchar.c
|
||||
index 0d08792..f555d3b 100644
|
||||
index 6866a175..7bce0132 100644
|
||||
--- a/testchar.c
|
||||
+++ b/testchar.c
|
||||
@@ -23,7 +23,7 @@ static void errorHandler(void *unused, xmlErrorPtr err) {
|
||||
@@ -797,7 +802,7 @@ index 0d08792..f555d3b 100644
|
||||
/*
|
||||
* Cleanup function for the XML library.
|
||||
diff --git a/testdict.c b/testdict.c
|
||||
index 40bebd0..114b934 100644
|
||||
index 40bebd05..114b9347 100644
|
||||
--- a/testdict.c
|
||||
+++ b/testdict.c
|
||||
@@ -440,5 +440,6 @@ int main(void)
|
||||
@@ -808,7 +813,7 @@ index 40bebd0..114b934 100644
|
||||
return(ret);
|
||||
}
|
||||
diff --git a/testlimits.c b/testlimits.c
|
||||
index 68c94db..1584434 100644
|
||||
index 059116a6..f0bee68d 100644
|
||||
--- a/testlimits.c
|
||||
+++ b/testlimits.c
|
||||
@@ -1634,5 +1634,6 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
|
||||
@@ -819,7 +824,7 @@ index 68c94db..1584434 100644
|
||||
return(ret);
|
||||
}
|
||||
diff --git a/testrecurse.c b/testrecurse.c
|
||||
index f95ae1c..74c8f8b 100644
|
||||
index 0cbe25a6..3ecadb40 100644
|
||||
--- a/testrecurse.c
|
||||
+++ b/testrecurse.c
|
||||
@@ -892,6 +892,7 @@ launchTests(testDescPtr tst) {
|
||||
@@ -838,5 +843,5 @@ index f95ae1c..74c8f8b 100644
|
||||
return(ret);
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
2.25.1
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@ SRC_URI = "http://www.xmlsoft.org/sources/libxml2-${PV}.tar.gz;name=libtar \
|
||||
file://CVE-2020-7595.patch \
|
||||
file://CVE-2019-20388.patch \
|
||||
file://CVE-2020-24977.patch \
|
||||
file://CVE-2021-3517.patch \
|
||||
file://CVE-2021-3537.patch \
|
||||
"
|
||||
|
||||
SRC_URI[libtar.md5sum] = "10942a1dc23137a8aa07f0639cbfece5"
|
||||
@@ -42,7 +44,7 @@ inherit autotools pkgconfig binconfig-disabled ptest features_check
|
||||
|
||||
inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
|
||||
|
||||
RDEPENDS_${PN}-ptest += "make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
|
||||
RDEPENDS_${PN}-ptest += "bash make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
|
||||
|
||||
RDEPENDS_${PN}-python += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-core', '', d)}"
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
|
||||
SRCREV = "edf8e6f0ea77ede073f07bff0d2ae1fc7a38103b"
|
||||
PV = "0.29.2+git${SRCPV}"
|
||||
|
||||
SRC_URI = "git://anongit.freedesktop.org/pkg-config \
|
||||
SRC_URI = "git://gitlab.freedesktop.org/pkg-config/pkg-config.git;branch=master;protocol=https \
|
||||
file://pkg-config-esdk.in \
|
||||
file://pkg-config-native.in \
|
||||
file://fix-glib-configure-libtool-usage.patch \
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
From 8946bb38b4d87549f0d99ed73c62c41933f97cc7 Mon Sep 17 00:00:00 2001
|
||||
From: Yusuke Endoh <mame@ruby-lang.org>
|
||||
Date: Tue, 29 Sep 2020 13:15:58 +0900
|
||||
Subject: [PATCH] Make it more strict to interpret some headers
|
||||
|
||||
Some regexps were too tolerant.
|
||||
|
||||
Upstream-Status: Backport
|
||||
[https://github.com/ruby/webrick/commit/8946bb38b4d87549f0d99ed73c62c41933f97cc7]
|
||||
CVE: CVE-2020-25613
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
---
|
||||
lib/webrick/httprequest.rb | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/webrick/httprequest.rb b/lib/webrick/httprequest.rb
|
||||
index 294bd91..d34eac7 100644
|
||||
--- a/lib/webrick/httprequest.rb
|
||||
+++ b/lib/webrick/httprequest.rb
|
||||
@@ -227,9 +227,9 @@ def parse(socket=nil)
|
||||
raise HTTPStatus::BadRequest, "bad URI `#{@unparsed_uri}'."
|
||||
end
|
||||
|
||||
- if /close/io =~ self["connection"]
|
||||
+ if /\Aclose\z/io =~ self["connection"]
|
||||
@keep_alive = false
|
||||
- elsif /keep-alive/io =~ self["connection"]
|
||||
+ elsif /\Akeep-alive\z/io =~ self["connection"]
|
||||
@keep_alive = true
|
||||
elsif @http_version < "1.1"
|
||||
@keep_alive = false
|
||||
@@ -508,7 +508,7 @@ def read_body(socket, block)
|
||||
return unless socket
|
||||
if tc = self['transfer-encoding']
|
||||
case tc
|
||||
- when /chunked/io then read_chunked(socket, block)
|
||||
+ when /\Achunked\z/io then read_chunked(socket, block)
|
||||
else raise HTTPStatus::NotImplemented, "Transfer-Encoding: #{tc}."
|
||||
end
|
||||
elsif self['content-length'] || @remaining_size
|
||||
@@ -6,12 +6,11 @@ SRC_URI += " \
|
||||
file://remove_has_include_macros.patch \
|
||||
file://run-ptest \
|
||||
file://0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch \
|
||||
file://CVE-2020-25613.patch \
|
||||
file://0001-template-Makefile.in-do-not-write-host-cross-cc-item.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "debb9c325bf65021214451660f46e909"
|
||||
SRC_URI[sha256sum] = "d418483bdd0000576c1370571121a6eb24582116db0b7bb2005e90e250eae418"
|
||||
SRC_URI[md5sum] = "72ef97685008981de3ddb748d0dab31f"
|
||||
SRC_URI[sha256sum] = "8925a95e31d8f2c81749025a52a544ea1d05dad18794e6828709268b92e55338"
|
||||
|
||||
PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
|
||||
@@ -36,7 +36,7 @@ BBCLASSEXTEND = "native nativesdk"
|
||||
inherit autotools
|
||||
EXTRA_OECONF_append_class-native = " --sbindir=${bindir}"
|
||||
CFLAGS_append = " -I${STAGING_INCDIR}/tirpc"
|
||||
LDFLAGS_append = " -ltirpc"
|
||||
EXTRA_OECONF_append = " LIBS=-ltirpc"
|
||||
|
||||
# Turn off these header detects else the inode search
|
||||
# will walk entire file systems and this is a real problem
|
||||
|
||||
@@ -107,7 +107,7 @@ VALGRINDARCH_mipsel = "mips32"
|
||||
VALGRINDARCH_mips64el = "mips64"
|
||||
VALGRINDARCH_powerpc = "ppc"
|
||||
VALGRINDARCH_powerpc64 = "ppc64"
|
||||
VALGRINDARCH_powerpc64el = "ppc64le"
|
||||
VALGRINDARCH_powerpc64le = "ppc64le"
|
||||
|
||||
INHIBIT_PACKAGE_STRIP_FILES = "${PKGD}${libdir}/valgrind/vgpreload_memcheck-${VALGRINDARCH}-linux.so"
|
||||
|
||||
|
||||
@@ -116,3 +116,7 @@ SYSROOT_PREPROCESS_FUNCS += "cups_sysroot_preprocess"
|
||||
cups_sysroot_preprocess () {
|
||||
sed -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/cups-config -e 's:cups_datadir=.*:cups_datadir=${datadir}/cups:' -e 's:cups_serverbin=.*:cups_serverbin=${libexecdir}/cups:'
|
||||
}
|
||||
|
||||
# -25317 concerns /var/log/cups having lp ownership. Our /var/log/cups is
|
||||
# root:root, so this doesn't apply.
|
||||
CVE_CHECK_WHITELIST += "CVE-2021-25317"
|
||||
@@ -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=e21a8cbddc1612bce56f06fe154a0743 \
|
||||
file://WHENCE;md5=727d0d4e2d420f41d89d098f6322e779 \
|
||||
"
|
||||
|
||||
# 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] = "a2348f03492713dca9aef202496c6e58f5e63ee5bec6a7bdfcf8b18ce7155e70"
|
||||
SRC_URI[sha256sum] = "2aa6ae8b9808408f9811ac38f00c188e53e984a2b3990254f6c9c02c1ab13417"
|
||||
|
||||
inherit allarch
|
||||
|
||||
@@ -11,13 +11,13 @@ python () {
|
||||
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
|
||||
}
|
||||
|
||||
SRCREV_machine ?= "b62ae8bedb024e67e7c5cda51840454a4170c858"
|
||||
SRCREV_meta ?= "b89df7433ea8124d3092805391b78808df4147a7"
|
||||
SRCREV_machine ?= "c279b45a44858da788a13f23130ed06663e77c57"
|
||||
SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49"
|
||||
|
||||
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.116"
|
||||
LINUX_VERSION ?= "5.4.123"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ KCONFIG_MODE = "--allnoconfig"
|
||||
|
||||
require recipes-kernel/linux/linux-yocto.inc
|
||||
|
||||
LINUX_VERSION ?= "5.4.116"
|
||||
LINUX_VERSION ?= "5.4.123"
|
||||
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 ?= "80bd6016a9bdaed4b66ddffffa8c8e62d7c1f8a6"
|
||||
SRCREV_machine ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
|
||||
SRCREV_meta ?= "b89df7433ea8124d3092805391b78808df4147a7"
|
||||
SRCREV_machine_qemuarm ?= "445028ae9ec9a904122bb5c60995def98d2b1ddc"
|
||||
SRCREV_machine ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
|
||||
SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49"
|
||||
|
||||
PV = "${LINUX_VERSION}+git${SRCPV}"
|
||||
|
||||
|
||||
@@ -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 ?= "e71df0530eefcac1b3248329e385bcefbad6336e"
|
||||
SRCREV_machine_qemuarm64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
|
||||
SRCREV_machine_qemumips ?= "07445052fdd15e60b30dc5ae9d162c2e6bba47d1"
|
||||
SRCREV_machine_qemuppc ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
|
||||
SRCREV_machine_qemuriscv64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
|
||||
SRCREV_machine_qemux86 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
|
||||
SRCREV_machine_qemux86-64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
|
||||
SRCREV_machine_qemumips64 ?= "b36d79d6f2aaf9dadec352f611e7b9becf2b9a55"
|
||||
SRCREV_machine ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
|
||||
SRCREV_meta ?= "b89df7433ea8124d3092805391b78808df4147a7"
|
||||
SRCREV_machine_qemuarm ?= "c292705386cfec860dad5e1dee74f22407fb7f94"
|
||||
SRCREV_machine_qemuarm64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
|
||||
SRCREV_machine_qemumips ?= "d4c949dc0b88dba72f9f94a18fd994aa8482ff8e"
|
||||
SRCREV_machine_qemuppc ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
|
||||
SRCREV_machine_qemuriscv64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
|
||||
SRCREV_machine_qemux86 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
|
||||
SRCREV_machine_qemux86-64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
|
||||
SRCREV_machine_qemumips64 ?= "417e8e4e101314f02439a88c78d4cf2ab98df209"
|
||||
SRCREV_machine ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
|
||||
SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49"
|
||||
|
||||
# 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.116"
|
||||
LINUX_VERSION ?= "5.4.123"
|
||||
|
||||
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
|
||||
DEPENDS += "openssl-native util-linux-native"
|
||||
|
||||
@@ -0,0 +1,207 @@
|
||||
From 9181191511f9c0be6a89c98b311f49d66bd46dc3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
|
||||
Date: Thu, 4 Mar 2021 13:05:19 +0200
|
||||
Subject: [PATCH] matroskademux: Fix extraction of multichannel WavPack
|
||||
|
||||
The old code had a couple of issues that all lead to potential memory
|
||||
safety bugs.
|
||||
|
||||
- Use a constant for the Wavpack4Header size instead of using sizeof.
|
||||
It's written out into the data and not from the struct and who knows
|
||||
what special alignment/padding requirements some C compilers have.
|
||||
- gst_buffer_set_size() does not realloc the buffer when setting a
|
||||
bigger size than allocated, it only allows growing up to the maximum
|
||||
allocated size. Instead use a GstAdapter to collect all the blocks
|
||||
and take out everything at once in the end.
|
||||
- Check that enough data is actually available in the input and
|
||||
otherwise handle it an error in all cases instead of silently
|
||||
ignoring it.
|
||||
|
||||
Among other things this fixes out of bounds writes because the code
|
||||
assumed gst_buffer_set_size() can grow the buffer and simply wrote after
|
||||
the end of the buffer.
|
||||
|
||||
Thanks to Natalie Silvanovich for reporting.
|
||||
|
||||
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/859
|
||||
|
||||
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/903>
|
||||
|
||||
Upstream-Status: Backport
|
||||
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/9181191511f9c0be6a89c98b311f49d66bd46dc3?merge_request_iid=903
|
||||
CVE: CVE-2021-3497
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
|
||||
---
|
||||
gst/matroska/matroska-demux.c | 99 +++++++++++++++++++----------------
|
||||
gst/matroska/matroska-ids.h | 2 +
|
||||
2 files changed, 55 insertions(+), 46 deletions(-)
|
||||
|
||||
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
|
||||
index 467815986..0e47ee7b5 100644
|
||||
--- a/gst/matroska/matroska-demux.c
|
||||
+++ b/gst/matroska/matroska-demux.c
|
||||
@@ -3851,6 +3851,12 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
|
||||
guint32 block_samples, tmp;
|
||||
gsize size = gst_buffer_get_size (*buf);
|
||||
|
||||
+ if (size < 4) {
|
||||
+ GST_ERROR_OBJECT (element, "Too small wavpack buffer");
|
||||
+ gst_buffer_unmap (*buf, &map);
|
||||
+ return GST_FLOW_ERROR;
|
||||
+ }
|
||||
+
|
||||
gst_buffer_extract (*buf, 0, &tmp, sizeof (guint32));
|
||||
block_samples = GUINT32_FROM_LE (tmp);
|
||||
/* we need to reconstruct the header of the wavpack block */
|
||||
@@ -3858,10 +3864,10 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
|
||||
/* -20 because ck_size is the size of the wavpack block -8
|
||||
* and lace_size is the size of the wavpack block + 12
|
||||
* (the three guint32 of the header that already are in the buffer) */
|
||||
- wvh.ck_size = size + sizeof (Wavpack4Header) - 20;
|
||||
+ wvh.ck_size = size + WAVPACK4_HEADER_SIZE - 20;
|
||||
|
||||
/* block_samples, flags and crc are already in the buffer */
|
||||
- newbuf = gst_buffer_new_allocate (NULL, sizeof (Wavpack4Header) - 12, NULL);
|
||||
+ newbuf = gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE - 12, NULL);
|
||||
|
||||
gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE);
|
||||
data = outmap.data;
|
||||
@@ -3886,9 +3892,11 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
|
||||
audiocontext->wvpk_block_index += block_samples;
|
||||
} else {
|
||||
guint8 *outdata = NULL;
|
||||
- guint outpos = 0;
|
||||
- gsize buf_size, size, out_size = 0;
|
||||
+ gsize buf_size, size;
|
||||
guint32 block_samples, flags, crc, blocksize;
|
||||
+ GstAdapter *adapter;
|
||||
+
|
||||
+ adapter = gst_adapter_new ();
|
||||
|
||||
gst_buffer_map (*buf, &map, GST_MAP_READ);
|
||||
buf_data = map.data;
|
||||
@@ -3897,6 +3905,7 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
|
||||
if (buf_size < 4) {
|
||||
GST_ERROR_OBJECT (element, "Too small wavpack buffer");
|
||||
gst_buffer_unmap (*buf, &map);
|
||||
+ g_object_unref (adapter);
|
||||
return GST_FLOW_ERROR;
|
||||
}
|
||||
|
||||
@@ -3918,59 +3927,57 @@ gst_matroska_demux_add_wvpk_header (GstElement * element,
|
||||
data += 4;
|
||||
size -= 4;
|
||||
|
||||
- if (blocksize == 0 || size < blocksize)
|
||||
- break;
|
||||
-
|
||||
- g_assert ((newbuf == NULL) == (outdata == NULL));
|
||||
+ if (blocksize == 0 || size < blocksize) {
|
||||
+ GST_ERROR_OBJECT (element, "Too small wavpack buffer");
|
||||
+ gst_buffer_unmap (*buf, &map);
|
||||
+ g_object_unref (adapter);
|
||||
+ return GST_FLOW_ERROR;
|
||||
+ }
|
||||
|
||||
- if (newbuf == NULL) {
|
||||
- out_size = sizeof (Wavpack4Header) + blocksize;
|
||||
- newbuf = gst_buffer_new_allocate (NULL, out_size, NULL);
|
||||
+ g_assert (newbuf == NULL);
|
||||
|
||||
- gst_buffer_copy_into (newbuf, *buf,
|
||||
- GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1);
|
||||
+ newbuf =
|
||||
+ gst_buffer_new_allocate (NULL, WAVPACK4_HEADER_SIZE + blocksize,
|
||||
+ NULL);
|
||||
+ gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE);
|
||||
+ outdata = outmap.data;
|
||||
+
|
||||
+ outdata[0] = 'w';
|
||||
+ outdata[1] = 'v';
|
||||
+ outdata[2] = 'p';
|
||||
+ outdata[3] = 'k';
|
||||
+ outdata += 4;
|
||||
+
|
||||
+ GST_WRITE_UINT32_LE (outdata, blocksize + WAVPACK4_HEADER_SIZE - 8);
|
||||
+ GST_WRITE_UINT16_LE (outdata + 4, wvh.version);
|
||||
+ GST_WRITE_UINT8 (outdata + 6, wvh.track_no);
|
||||
+ GST_WRITE_UINT8 (outdata + 7, wvh.index_no);
|
||||
+ GST_WRITE_UINT32_LE (outdata + 8, wvh.total_samples);
|
||||
+ GST_WRITE_UINT32_LE (outdata + 12, wvh.block_index);
|
||||
+ GST_WRITE_UINT32_LE (outdata + 16, block_samples);
|
||||
+ GST_WRITE_UINT32_LE (outdata + 20, flags);
|
||||
+ GST_WRITE_UINT32_LE (outdata + 24, crc);
|
||||
+ outdata += 28;
|
||||
+
|
||||
+ memcpy (outdata, data, blocksize);
|
||||
|
||||
- outpos = 0;
|
||||
- gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE);
|
||||
- outdata = outmap.data;
|
||||
- } else {
|
||||
- gst_buffer_unmap (newbuf, &outmap);
|
||||
- out_size += sizeof (Wavpack4Header) + blocksize;
|
||||
- gst_buffer_set_size (newbuf, out_size);
|
||||
- gst_buffer_map (newbuf, &outmap, GST_MAP_WRITE);
|
||||
- outdata = outmap.data;
|
||||
- }
|
||||
+ gst_buffer_unmap (newbuf, &outmap);
|
||||
+ gst_adapter_push (adapter, newbuf);
|
||||
+ newbuf = NULL;
|
||||
|
||||
- outdata[outpos] = 'w';
|
||||
- outdata[outpos + 1] = 'v';
|
||||
- outdata[outpos + 2] = 'p';
|
||||
- outdata[outpos + 3] = 'k';
|
||||
- outpos += 4;
|
||||
-
|
||||
- GST_WRITE_UINT32_LE (outdata + outpos,
|
||||
- blocksize + sizeof (Wavpack4Header) - 8);
|
||||
- GST_WRITE_UINT16_LE (outdata + outpos + 4, wvh.version);
|
||||
- GST_WRITE_UINT8 (outdata + outpos + 6, wvh.track_no);
|
||||
- GST_WRITE_UINT8 (outdata + outpos + 7, wvh.index_no);
|
||||
- GST_WRITE_UINT32_LE (outdata + outpos + 8, wvh.total_samples);
|
||||
- GST_WRITE_UINT32_LE (outdata + outpos + 12, wvh.block_index);
|
||||
- GST_WRITE_UINT32_LE (outdata + outpos + 16, block_samples);
|
||||
- GST_WRITE_UINT32_LE (outdata + outpos + 20, flags);
|
||||
- GST_WRITE_UINT32_LE (outdata + outpos + 24, crc);
|
||||
- outpos += 28;
|
||||
-
|
||||
- memmove (outdata + outpos, data, blocksize);
|
||||
- outpos += blocksize;
|
||||
data += blocksize;
|
||||
size -= blocksize;
|
||||
}
|
||||
gst_buffer_unmap (*buf, &map);
|
||||
- gst_buffer_unref (*buf);
|
||||
|
||||
- if (newbuf)
|
||||
- gst_buffer_unmap (newbuf, &outmap);
|
||||
+ newbuf = gst_adapter_take_buffer (adapter, gst_adapter_available (adapter));
|
||||
+ g_object_unref (adapter);
|
||||
|
||||
+ gst_buffer_copy_into (newbuf, *buf,
|
||||
+ GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS, 0, -1);
|
||||
+ gst_buffer_unref (*buf);
|
||||
*buf = newbuf;
|
||||
+
|
||||
audiocontext->wvpk_block_index += block_samples;
|
||||
}
|
||||
|
||||
diff --git a/gst/matroska/matroska-ids.h b/gst/matroska/matroska-ids.h
|
||||
index 429213f77..8d4a685a9 100644
|
||||
--- a/gst/matroska/matroska-ids.h
|
||||
+++ b/gst/matroska/matroska-ids.h
|
||||
@@ -688,6 +688,8 @@ typedef struct _Wavpack4Header {
|
||||
guint32 crc; /* crc for actual decoded data */
|
||||
} Wavpack4Header;
|
||||
|
||||
+#define WAVPACK4_HEADER_SIZE (32)
|
||||
+
|
||||
typedef enum {
|
||||
GST_MATROSKA_TRACK_ENCODING_SCOPE_FRAME = (1<<0),
|
||||
GST_MATROSKA_TRACK_ENCODING_SCOPE_CODEC_DATA = (1<<1),
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From 02174790726dd20a5c73ce2002189bf240ad4fe0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
|
||||
Date: Wed, 3 Mar 2021 11:31:52 +0200
|
||||
Subject: [PATCH] matroskademux: Initialize track context out parameter to NULL
|
||||
before parsing
|
||||
|
||||
Various error return paths don't set it to NULL and callers are only
|
||||
checking if the pointer is NULL. As it's allocated on the stack this
|
||||
usually contains random stack memory, and more often than not the memory
|
||||
of a previously parsed track.
|
||||
|
||||
This then causes all kinds of memory corruptions further down the line.
|
||||
|
||||
Thanks to Natalie Silvanovich for reporting.
|
||||
|
||||
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/858
|
||||
|
||||
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/903>
|
||||
|
||||
Upstream-Status: Backport [
|
||||
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/commit/02174790726dd20a5c73ce2002189bf240ad4fe0?merge_request_iid=903 ]
|
||||
CVE: CVE-2021-3498
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
|
||||
---
|
||||
gst/matroska/matroska-demux.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
|
||||
index 4d0234743..467815986 100644
|
||||
--- a/gst/matroska/matroska-demux.c
|
||||
+++ b/gst/matroska/matroska-demux.c
|
||||
@@ -692,6 +692,8 @@ gst_matroska_demux_parse_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml,
|
||||
|
||||
DEBUG_ELEMENT_START (demux, ebml, "TrackEntry");
|
||||
|
||||
+ *dest_context = NULL;
|
||||
+
|
||||
/* start with the master */
|
||||
if ((ret = gst_ebml_read_master (ebml, &id)) != GST_FLOW_OK) {
|
||||
DEBUG_ELEMENT_STOP (demux, ebml, "TrackEntry", ret);
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -8,6 +8,8 @@ SRC_URI = " \
|
||||
https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
|
||||
file://0001-qmlgl-ensure-Qt-defines-GLsync-to-fix-compile-on-som.patch \
|
||||
file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
|
||||
file://CVE-2021-3497.patch \
|
||||
file://CVE-2021-3498.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "c79b6c2f8eaadb2bb66615b694db399e"
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
From 02875964eba5c4a2ea98c41562835428214adfe7 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Bernard <miniupnp@free.fr>
|
||||
Date: Sat, 7 Mar 2020 13:21:56 +0100
|
||||
Subject: [PATCH] tiff2rgba: output usage to stdout when using -h
|
||||
|
||||
also uses std C EXIT_FAILURE / EXIT_SUCCESS
|
||||
see #17
|
||||
|
||||
Signed-off-by: akash hadke <akash.hadke@kpit.com>
|
||||
---
|
||||
tools/tiff2rgba.c | 39 ++++++++++++++++++++++++---------------
|
||||
1 file changed, 24 insertions(+), 15 deletions(-)
|
||||
---
|
||||
Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/02875964eba5c4a2ea98c41562835428214adfe7.patch]
|
||||
---
|
||||
diff --git a/tools/tiff2rgba.c b/tools/tiff2rgba.c
|
||||
index 2eb6f6c4..ef643653 100644
|
||||
--- a/tools/tiff2rgba.c
|
||||
+++ b/tools/tiff2rgba.c
|
||||
@@ -39,6 +39,13 @@
|
||||
#include "tiffiop.h"
|
||||
#include "tiffio.h"
|
||||
|
||||
+#ifndef EXIT_SUCCESS
|
||||
+#define EXIT_SUCCESS 0
|
||||
+#endif
|
||||
+#ifndef EXIT_FAILURE
|
||||
+#define EXIT_FAILURE 1
|
||||
+#endif
|
||||
+
|
||||
#define streq(a,b) (strcmp(a,b) == 0)
|
||||
#define CopyField(tag, v) \
|
||||
if (TIFFGetField(in, tag, &v)) TIFFSetField(out, tag, v)
|
||||
@@ -68,7 +75,7 @@ main(int argc, char* argv[])
|
||||
extern char *optarg;
|
||||
#endif
|
||||
|
||||
- while ((c = getopt(argc, argv, "c:r:t:bn8")) != -1)
|
||||
+ while ((c = getopt(argc, argv, "c:r:t:bn8h")) != -1)
|
||||
switch (c) {
|
||||
case 'b':
|
||||
process_by_block = 1;
|
||||
@@ -86,7 +93,7 @@ main(int argc, char* argv[])
|
||||
else if (streq(optarg, "zip"))
|
||||
compression = COMPRESSION_DEFLATE;
|
||||
else
|
||||
- usage(-1);
|
||||
+ usage(EXIT_FAILURE);
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
@@ -105,17 +112,20 @@ main(int argc, char* argv[])
|
||||
bigtiff_output = 1;
|
||||
break;
|
||||
|
||||
+ case 'h':
|
||||
+ usage(EXIT_SUCCESS);
|
||||
+ /*NOTREACHED*/
|
||||
case '?':
|
||||
- usage(0);
|
||||
+ usage(EXIT_FAILURE);
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
|
||||
if (argc - optind < 2)
|
||||
- usage(-1);
|
||||
+ usage(EXIT_FAILURE);
|
||||
|
||||
out = TIFFOpen(argv[argc-1], bigtiff_output?"w8":"w");
|
||||
if (out == NULL)
|
||||
- return (-2);
|
||||
+ return (EXIT_FAILURE);
|
||||
|
||||
for (; optind < argc-1; optind++) {
|
||||
in = TIFFOpen(argv[optind], "r");
|
||||
@@ -132,7 +142,7 @@ main(int argc, char* argv[])
|
||||
}
|
||||
}
|
||||
(void) TIFFClose(out);
|
||||
- return (0);
|
||||
+ return (EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -166,7 +176,7 @@ cvt_by_tile( TIFF *in, TIFF *out )
|
||||
if (tile_width != (rastersize / tile_height) / sizeof( uint32))
|
||||
{
|
||||
TIFFError(TIFFFileName(in), "Integer overflow when calculating raster buffer");
|
||||
- exit(-1);
|
||||
+ exit(EXIT_FAILURE);
|
||||
}
|
||||
raster = (uint32*)_TIFFmalloc(rastersize);
|
||||
if (raster == 0) {
|
||||
@@ -182,7 +192,7 @@ cvt_by_tile( TIFF *in, TIFF *out )
|
||||
if (tile_width != wrk_linesize / sizeof (uint32))
|
||||
{
|
||||
TIFFError(TIFFFileName(in), "Integer overflow when calculating wrk_line buffer");
|
||||
- exit(-1);
|
||||
+ exit(EXIT_FAILURE);
|
||||
}
|
||||
wrk_line = (uint32*)_TIFFmalloc(wrk_linesize);
|
||||
if (!wrk_line) {
|
||||
@@ -279,7 +289,7 @@ cvt_by_strip( TIFF *in, TIFF *out )
|
||||
if (width != (rastersize / rowsperstrip) / sizeof( uint32))
|
||||
{
|
||||
TIFFError(TIFFFileName(in), "Integer overflow when calculating raster buffer");
|
||||
- exit(-1);
|
||||
+ exit(EXIT_FAILURE);
|
||||
}
|
||||
raster = (uint32*)_TIFFmalloc(rastersize);
|
||||
if (raster == 0) {
|
||||
@@ -295,7 +305,7 @@ cvt_by_strip( TIFF *in, TIFF *out )
|
||||
if (width != wrk_linesize / sizeof (uint32))
|
||||
{
|
||||
TIFFError(TIFFFileName(in), "Integer overflow when calculating wrk_line buffer");
|
||||
- exit(-1);
|
||||
+ exit(EXIT_FAILURE);
|
||||
}
|
||||
wrk_line = (uint32*)_TIFFmalloc(wrk_linesize);
|
||||
if (!wrk_line) {
|
||||
@@ -528,7 +538,7 @@ tiffcvt(TIFF* in, TIFF* out)
|
||||
return( cvt_whole_image( in, out ) );
|
||||
}
|
||||
|
||||
-static char* stuff[] = {
|
||||
+const static char* stuff[] = {
|
||||
"usage: tiff2rgba [-c comp] [-r rows] [-b] [-n] [-8] input... output",
|
||||
"where comp is one of the following compression algorithms:",
|
||||
" jpeg\t\tJPEG encoding",
|
||||
@@ -547,13 +557,12 @@ static char* stuff[] = {
|
||||
static void
|
||||
usage(int code)
|
||||
{
|
||||
- char buf[BUFSIZ];
|
||||
int i;
|
||||
+ FILE * out = (code == EXIT_SUCCESS) ? stdout : stderr;
|
||||
|
||||
- setbuf(stderr, buf);
|
||||
- fprintf(stderr, "%s\n\n", TIFFGetVersion());
|
||||
+ fprintf(out, "%s\n\n", TIFFGetVersion());
|
||||
for (i = 0; stuff[i] != NULL; i++)
|
||||
- fprintf(stderr, "%s\n", stuff[i]);
|
||||
+ fprintf(out, "%s\n", stuff[i]);
|
||||
exit(code);
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
@@ -0,0 +1,27 @@
|
||||
From ca70b5e702b9f503333344b2d46691de9feae84e Mon Sep 17 00:00:00 2001
|
||||
From: Even Rouault <even.rouault@spatialys.com>
|
||||
Date: Sat, 3 Oct 2020 18:16:27 +0200
|
||||
Subject: [PATCH] tiff2rgba.c: fix -Wold-style-declaration warning
|
||||
|
||||
Signed-off-by: akash hadke <akash.hadke@kpit.com>
|
||||
---
|
||||
tools/tiff2rgba.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
---
|
||||
Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/ca70b5e702b9f503333344b2d46691de9feae84e.patch]
|
||||
---
|
||||
diff --git a/tools/tiff2rgba.c b/tools/tiff2rgba.c
|
||||
index ef643653..fbc383aa 100644
|
||||
--- a/tools/tiff2rgba.c
|
||||
+++ b/tools/tiff2rgba.c
|
||||
@@ -538,7 +538,7 @@ tiffcvt(TIFF* in, TIFF* out)
|
||||
return( cvt_whole_image( in, out ) );
|
||||
}
|
||||
|
||||
-const static char* stuff[] = {
|
||||
+static const char* stuff[] = {
|
||||
"usage: tiff2rgba [-c comp] [-r rows] [-b] [-n] [-8] input... output",
|
||||
"where comp is one of the following compression algorithms:",
|
||||
" jpeg\t\tJPEG encoding",
|
||||
--
|
||||
GitLab
|
||||
@@ -0,0 +1,119 @@
|
||||
From 98a254f5b92cea22f5436555ff7fceb12afee84d Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Bernard <miniupnp@free.fr>
|
||||
Date: Sun, 15 Nov 2020 17:02:51 +0100
|
||||
Subject: [PATCH 1/2] enforce (configurable) memory limit in tiff2rgba
|
||||
|
||||
fixes #207
|
||||
fixes #209
|
||||
|
||||
Signed-off-by: akash hadke <akash.hadke@kpit.com>
|
||||
---
|
||||
tools/tiff2rgba.c | 25 +++++++++++++++++++++++--
|
||||
1 file changed, 23 insertions(+), 2 deletions(-)
|
||||
---
|
||||
CVE: CVE-2020-35521
|
||||
CVE: CVE-2020-35522
|
||||
Upstream-Status: Backport [https://gitlab.com/libtiff/libtiff/-/commit/b5a935d96b21cda0f434230cdf8ca958cd8b4eef.patch]
|
||||
---
|
||||
diff --git a/tools/tiff2rgba.c b/tools/tiff2rgba.c
|
||||
index fbc383aa..764395f6 100644
|
||||
--- a/tools/tiff2rgba.c
|
||||
+++ b/tools/tiff2rgba.c
|
||||
@@ -60,6 +60,10 @@ uint32 rowsperstrip = (uint32) -1;
|
||||
int process_by_block = 0; /* default is whole image at once */
|
||||
int no_alpha = 0;
|
||||
int bigtiff_output = 0;
|
||||
+#define DEFAULT_MAX_MALLOC (256 * 1024 * 1024)
|
||||
+/* malloc size limit (in bytes)
|
||||
+ * disabled when set to 0 */
|
||||
+static tmsize_t maxMalloc = DEFAULT_MAX_MALLOC;
|
||||
|
||||
|
||||
static int tiffcvt(TIFF* in, TIFF* out);
|
||||
@@ -75,8 +79,11 @@ main(int argc, char* argv[])
|
||||
extern char *optarg;
|
||||
#endif
|
||||
|
||||
- while ((c = getopt(argc, argv, "c:r:t:bn8h")) != -1)
|
||||
+ while ((c = getopt(argc, argv, "c:r:t:bn8hM:")) != -1)
|
||||
switch (c) {
|
||||
+ case 'M':
|
||||
+ maxMalloc = (tmsize_t)strtoul(optarg, NULL, 0) << 20;
|
||||
+ break;
|
||||
case 'b':
|
||||
process_by_block = 1;
|
||||
break;
|
||||
@@ -405,6 +412,12 @@ cvt_whole_image( TIFF *in, TIFF *out )
|
||||
(unsigned long)width, (unsigned long)height);
|
||||
return 0;
|
||||
}
|
||||
+ if (maxMalloc != 0 && (tmsize_t)pixel_count * (tmsize_t)sizeof(uint32) > maxMalloc) {
|
||||
+ TIFFError(TIFFFileName(in),
|
||||
+ "Raster size " TIFF_UINT64_FORMAT " over memory limit (" TIFF_UINT64_FORMAT "), try -b option.",
|
||||
+ (uint64)pixel_count * sizeof(uint32), (uint64)maxMalloc);
|
||||
+ return 0;
|
||||
+ }
|
||||
|
||||
rowsperstrip = TIFFDefaultStripSize(out, rowsperstrip);
|
||||
TIFFSetField(out, TIFFTAG_ROWSPERSTRIP, rowsperstrip);
|
||||
@@ -530,6 +543,13 @@ tiffcvt(TIFF* in, TIFF* out)
|
||||
TIFFSetField(out, TIFFTAG_SOFTWARE, TIFFGetVersion());
|
||||
CopyField(TIFFTAG_DOCUMENTNAME, stringv);
|
||||
|
||||
+ if (maxMalloc != 0 && TIFFStripSize(in) > maxMalloc)
|
||||
+ {
|
||||
+ TIFFError(TIFFFileName(in),
|
||||
+ "Strip Size " TIFF_UINT64_FORMAT " over memory limit (" TIFF_UINT64_FORMAT ")",
|
||||
+ (uint64)TIFFStripSize(in), (uint64)maxMalloc);
|
||||
+ return 0;
|
||||
+ }
|
||||
if( process_by_block && TIFFIsTiled( in ) )
|
||||
return( cvt_by_tile( in, out ) );
|
||||
else if( process_by_block )
|
||||
@@ -539,7 +559,7 @@ tiffcvt(TIFF* in, TIFF* out)
|
||||
}
|
||||
|
||||
static const char* stuff[] = {
|
||||
- "usage: tiff2rgba [-c comp] [-r rows] [-b] [-n] [-8] input... output",
|
||||
+ "usage: tiff2rgba [-c comp] [-r rows] [-b] [-n] [-8] [-M size] input... output",
|
||||
"where comp is one of the following compression algorithms:",
|
||||
" jpeg\t\tJPEG encoding",
|
||||
" zip\t\tZip/Deflate encoding",
|
||||
@@ -551,6 +571,7 @@ static const char* stuff[] = {
|
||||
" -b (progress by block rather than as a whole image)",
|
||||
" -n don't emit alpha component.",
|
||||
" -8 write BigTIFF file instead of ClassicTIFF",
|
||||
+ " -M set the memory allocation limit in MiB. 0 to disable limit",
|
||||
NULL
|
||||
};
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From e9e504193ef1f87e9cb5e986586b0cbe3254e421 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Bernard <miniupnp@free.fr>
|
||||
Date: Sun, 15 Nov 2020 17:08:42 +0100
|
||||
Subject: [PATCH 2/2] tiff2rgba.1: -M option
|
||||
|
||||
---
|
||||
man/tiff2rgba.1 | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/man/tiff2rgba.1 b/man/tiff2rgba.1
|
||||
index d9c9baae..fe9ebb2c 100644
|
||||
--- a/man/tiff2rgba.1
|
||||
+++ b/man/tiff2rgba.1
|
||||
@@ -87,6 +87,10 @@ Drop the alpha component from the output file, producing a pure RGB file.
|
||||
Currently this does not work if the
|
||||
.B \-b
|
||||
flag is also in effect.
|
||||
+.TP
|
||||
+.BI \-M " size"
|
||||
+Set maximum memory allocation size (in MiB). The default is 256MiB.
|
||||
+Set to 0 to disable the limit.
|
||||
.SH "SEE ALSO"
|
||||
.BR tiff2bw (1),
|
||||
.BR TIFFReadRGBAImage (3t),
|
||||
--
|
||||
GitLab
|
||||
@@ -12,6 +12,9 @@ SRC_URI = "http://download.osgeo.org/libtiff/tiff-${PV}.tar.gz \
|
||||
file://CVE-2020-35523.patch \
|
||||
file://CVE-2020-35524-1.patch \
|
||||
file://CVE-2020-35524-2.patch \
|
||||
file://001_support_patch_for_CVE-2020-35521_and_CVE-2020-35522.patch \
|
||||
file://002_support_patch_for_CVE-2020-35521_and_CVE-2020-35522.patch \
|
||||
file://CVE-2020-35521_and_CVE-2020-35522.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "2165e7aba557463acc0664e71a3ed424"
|
||||
SRC_URI[sha256sum] = "5d29f32517dadb6dbcd1255ea5bbc93a2b54b94fbf83653b4d65c7d6775b8634"
|
||||
|
||||
67
meta/recipes-support/gnutls/gnutls/CVE-2021-20231.patch
Normal file
67
meta/recipes-support/gnutls/gnutls/CVE-2021-20231.patch
Normal file
@@ -0,0 +1,67 @@
|
||||
From 15beb4b193b2714d88107e7dffca781798684e7e Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@gnu.org>
|
||||
Date: Fri, 29 Jan 2021 14:06:32 +0100
|
||||
Subject: [PATCH] key_share: avoid use-after-free around realloc
|
||||
|
||||
Signed-off-by: Daiki Ueno <ueno@gnu.org>
|
||||
|
||||
https://gitlab.com/gnutls/gnutls/-/commit/15beb4b193b2714d88107e7dffca781798684e7e
|
||||
Upstream-Status: Backport
|
||||
CVE: CVE-2021-CVE-2021-20231
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
---
|
||||
lib/ext/key_share.c | 12 +++++-------
|
||||
1 file changed, 5 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/lib/ext/key_share.c b/lib/ext/key_share.c
|
||||
index ab8abf8fe6..a8c4bb5cff 100644
|
||||
--- a/lib/ext/key_share.c
|
||||
+++ b/lib/ext/key_share.c
|
||||
@@ -664,14 +664,14 @@ key_share_send_params(gnutls_session_t session,
|
||||
{
|
||||
unsigned i;
|
||||
int ret;
|
||||
- unsigned char *lengthp;
|
||||
- unsigned int cur_length;
|
||||
unsigned int generated = 0;
|
||||
const gnutls_group_entry_st *group;
|
||||
const version_entry_st *ver;
|
||||
|
||||
/* this extension is only being sent on client side */
|
||||
if (session->security_parameters.entity == GNUTLS_CLIENT) {
|
||||
+ unsigned int length_pos;
|
||||
+
|
||||
ver = _gnutls_version_max(session);
|
||||
if (unlikely(ver == NULL || ver->key_shares == 0))
|
||||
return 0;
|
||||
@@ -679,16 +679,13 @@ key_share_send_params(gnutls_session_t session,
|
||||
if (!have_creds_for_tls13(session))
|
||||
return 0;
|
||||
|
||||
- /* write the total length later */
|
||||
- lengthp = &extdata->data[extdata->length];
|
||||
+ length_pos = extdata->length;
|
||||
|
||||
ret =
|
||||
_gnutls_buffer_append_prefix(extdata, 16, 0);
|
||||
if (ret < 0)
|
||||
return gnutls_assert_val(ret);
|
||||
|
||||
- cur_length = extdata->length;
|
||||
-
|
||||
if (session->internals.hsk_flags & HSK_HRR_RECEIVED) { /* we know the group */
|
||||
group = get_group(session);
|
||||
if (unlikely(group == NULL))
|
||||
@@ -736,7 +733,8 @@ key_share_send_params(gnutls_session_t session,
|
||||
}
|
||||
|
||||
/* copy actual length */
|
||||
- _gnutls_write_uint16(extdata->length - cur_length, lengthp);
|
||||
+ _gnutls_write_uint16(extdata->length - length_pos - 2,
|
||||
+ &extdata->data[length_pos]);
|
||||
|
||||
} else { /* server */
|
||||
ver = get_version(session);
|
||||
--
|
||||
GitLab
|
||||
|
||||
65
meta/recipes-support/gnutls/gnutls/CVE-2021-20232.patch
Normal file
65
meta/recipes-support/gnutls/gnutls/CVE-2021-20232.patch
Normal file
@@ -0,0 +1,65 @@
|
||||
From 75a937d97f4fefc6f9b08e3791f151445f551cb3 Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <ueno@gnu.org>
|
||||
Date: Fri, 29 Jan 2021 14:06:50 +0100
|
||||
Subject: [PATCH] pre_shared_key: avoid use-after-free around realloc
|
||||
|
||||
Signed-off-by: Daiki Ueno <ueno@gnu.org>
|
||||
|
||||
https://gitlab.com/gnutls/gnutls/-/commit/75a937d97f4fefc6f9b08e3791f151445f551cb3
|
||||
Upstream-Status: Backport
|
||||
CVE: CVE-2021-CVE-2021-20232
|
||||
Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
|
||||
---
|
||||
lib/ext/pre_shared_key.c | 15 ++++++++++++---
|
||||
1 file changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/ext/pre_shared_key.c b/lib/ext/pre_shared_key.c
|
||||
index a042c6488e..380bf39ed5 100644
|
||||
--- a/lib/ext/pre_shared_key.c
|
||||
+++ b/lib/ext/pre_shared_key.c
|
||||
@@ -267,7 +267,7 @@ client_send_params(gnutls_session_t session,
|
||||
size_t spos;
|
||||
gnutls_datum_t username = {NULL, 0};
|
||||
gnutls_datum_t user_key = {NULL, 0}, rkey = {NULL, 0};
|
||||
- gnutls_datum_t client_hello;
|
||||
+ unsigned client_hello_len;
|
||||
unsigned next_idx;
|
||||
const mac_entry_st *prf_res = NULL;
|
||||
const mac_entry_st *prf_psk = NULL;
|
||||
@@ -428,8 +428,7 @@ client_send_params(gnutls_session_t session,
|
||||
assert(extdata->length >= sizeof(mbuffer_st));
|
||||
assert(ext_offset >= (ssize_t)sizeof(mbuffer_st));
|
||||
ext_offset -= sizeof(mbuffer_st);
|
||||
- client_hello.data = extdata->data+sizeof(mbuffer_st);
|
||||
- client_hello.size = extdata->length-sizeof(mbuffer_st);
|
||||
+ client_hello_len = extdata->length-sizeof(mbuffer_st);
|
||||
|
||||
next_idx = 0;
|
||||
|
||||
@@ -440,6 +439,11 @@ client_send_params(gnutls_session_t session,
|
||||
}
|
||||
|
||||
if (prf_res && rkey.size > 0) {
|
||||
+ gnutls_datum_t client_hello;
|
||||
+
|
||||
+ client_hello.data = extdata->data+sizeof(mbuffer_st);
|
||||
+ client_hello.size = client_hello_len;
|
||||
+
|
||||
ret = compute_psk_binder(session, prf_res,
|
||||
binders_len, binders_pos,
|
||||
ext_offset, &rkey, &client_hello, 1,
|
||||
@@ -474,6 +478,11 @@ client_send_params(gnutls_session_t session,
|
||||
}
|
||||
|
||||
if (prf_psk && user_key.size > 0 && info) {
|
||||
+ gnutls_datum_t client_hello;
|
||||
+
|
||||
+ client_hello.data = extdata->data+sizeof(mbuffer_st);
|
||||
+ client_hello.size = client_hello_len;
|
||||
+
|
||||
ret = compute_psk_binder(session, prf_psk,
|
||||
binders_len, binders_pos,
|
||||
ext_offset, &user_key, &client_hello, 0,
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -23,6 +23,8 @@ SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar
|
||||
file://arm_eabi.patch \
|
||||
file://0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch \
|
||||
file://CVE-2020-24659.patch \
|
||||
file://CVE-2021-20231.patch \
|
||||
file://CVE-2021-20232.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63"
|
||||
|
||||
Reference in New Issue
Block a user