Compare commits

...

137 Commits

Author SHA1 Message Date
Steve Sakoman
54af8c5e80 build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: a744a897f0ea7d34c31c024c13031221f9a85f24)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-25 04:08:37 -10:00
Steve Sakoman
f91fefe108 poky.conf: bump version for 4.0.16
(From meta-yocto rev: fa70fbb1ebf2a712eebc5b154ce6d754324fb6ef)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-25 04:06:21 -10:00
Jörg Sommer
f634b9852e documentation: Add UBOOT_BINARY, extend UBOOT_CONFIG
UBOOT_CONFIG accepts a third parameter for the UBOOT_BINARY that isn't
documented. To show its usage another example from the meta-freescale layer
was picked.

(From yocto-docs rev: aba67b58711019a6ba439b2b77337f813ed799ac)

Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:56 -10:00
Enguerrand de Ribaucourt
78e79d47c2 manuals: document VSCode extension
The VSCode extension is now officially maintained and published by the
Yocto Project so it should be referenced in the manuals to help users
discover it.

I located the most relevant places to reference the extension by looking
at how the old Eclipse plugin was documented in the 2.6 manuals as well
as the current Toaster references.

(From yocto-docs rev: 21ec0d3b52069dfc85ff47fb4f913a26a092c480)

Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:56 -10:00
Michael Opdenacker
f5f650aaa4 ref-manual: resources: sync with master branch
(From yocto-docs rev: 0c3596248cee47079a4c99ed6b476cee36cc84de)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:56 -10:00
Maxin B. John
d1a5c51431 ref-manual: classes: remove insserv bbclass
insserv.bbclass was removed from oe-core:

commit e6bb5dbb62
Author: Richard Purdie <richard.purdie@linuxfoundation.org>
Date:   Sun May 10 12:30:49 2015 +0100

insserv: Remove

(From yocto-docs rev: eddb6c4e36e298218c23bf688cb1c9c06f32b0d6)

Signed-off-by: Maxin John <maxin.john@gmail.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:56 -10:00
Simone Weiß
8f6035f44d dev-manual: start.rst: update use of Download page
The yocto website has changed its structure. Update the section for
Accessing the Downloads page to match the new structure.

(From yocto-docs rev: c67d471145cf09162059368ffd99f0c80df92520)

Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:56 -10:00
Michael Opdenacker
ae249a900f contributor-guide: use "apt" instead of "aptitude"
As used in the rest of the manual.

(From yocto-docs rev: c68954d905f01f6cc4f7c8ceb90e77cf9068e639)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:55 -10:00
Vijay Anusuri
d9f531b374 xserver-xorg: Multiple CVE fixes
Fix below CVE's
CVE-2023-6816
CVE-2024-0229
CVE-2024-21885
CVE-2024-21886
CVE-2024-0408
CVE-2024-0409

(From OE-Core rev: ad696a0067e11c332a4542ccacd76455f5fbd984)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:55 -10:00
Hitendra Prajapati
b3e1dabe66 pam: fix CVE-2024-22365 pam_namespace misses
Upstream-Status: Backport from 031bb5a5d0

(From OE-Core rev: 9af2e012ee4483541559788dfb9510e0223daefe)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:55 -10:00
Vijay Anusuri
80b4e5f953 gnutls: Fix for CVE-2024-0553 and CVE-2024-0567
CVE-2024-0553
A vulnerability was found in GnuTLS. The response times to malformed ciphertexts in RSA-PSK ClientKeyExchange differ from response times of ciphertexts with correct PKCS#1 v1.5 padding. This issue may allow a remote attacker to perform a timing side-channel attack in the RSA-PSK key exchange, potentially leading to the leakage of sensitive data. CVE-2024-0553 is designated as an incomplete resolution for CVE-2023-5981.

CVE-2024-0567
A vulnerability was found in GnuTLS, where a cockpit (which uses gnuTLS) rejects a certificate chain with distributed trust. This issue occurs when validating a certificate chain with cockpit-certificate-ensure. This flaw allows an unauthenticated, remote client or attacker to initiate a denial of service attack.

Upstream-Status: Backport
[40dbbd8de4
&
9edbdaa84e]

Reference: https://ubuntu.com/security/CVE-2024-0553
           https://ubuntu.com/security/CVE-2024-0567

(From OE-Core rev: de74fd5dea8cc71af1d457b4e688cfbe0f39e4d8)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:55 -10:00
Yogita Urade
410d7bf8cb tiff: fix CVE-2023-6228
CVE-2023-6228:
An issue was found in the tiffcp utility distributed by the
libtiff package where a crafted TIFF file on processing may
cause a heap-based buffer overflow leads to an application
crash.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-6228
https://gitlab.com/libtiff/libtiff/-/issues/606

(From OE-Core rev: 0730806ae39093b05ce943df1f9f5d0a25a8a673)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:55 -10:00
Hitendra Prajapati
ce477b4d6e openssl: fix CVE-2023-6237 Excessive time spent checking invalid RSA public keys
Upstream-Status: Backport from e09fc1d746

(From OE-Core rev: 6bb64af6ce167eadd34570b061b3e6ed13c39c74)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:55 -10:00
Peter Marko
906af0cb8b dropbear: backport patch for CVE-2023-48795
Documentation for this patch is under
66bc1fcdee

(From OE-Core rev: 626711a95f387090a4705401d2f9406909821f95)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-24 04:04:55 -10:00
Martin Jansa
426dfdc8d2 pybootchartgui: fix 2 SyntaxWarnings
scripts/pybootchartgui/pybootchartgui/draw.py:820: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if (OPTIONS.show_pid or OPTIONS.show_all) and ipid is not 0:
scripts/pybootchartgui/pybootchartgui/draw.py:918: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if i is not 0:

(From OE-Core rev: ebd61290a644a6d9f2b3701e0e7ea050636da76c)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
(cherry picked from commit 8d996616f0ca57220d939a41ca9ba6d696ea2a4f)
Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-21 08:50:38 -10:00
Soumya Sambu
924b38aa01 cpio: upgrade to 2.14
This includes fix for CVE-2023-7207.

Drop all submitted patches.

Apply a patch from git to fix the build with clang.

[ YOCTO #11674 ]

$git log --oneline release_2_13..v2.14
4a41909 (HEAD, tag: v2.14) Version 2.14
6f9e5d3 Update NEWS
807b3ea Use GNU ls algorithm for deciding timestamp format
19219d1 Fix integer overflows in timestamp output
ed28f14 Whitespace cleanup
4ab2813 Update version of gnulib
0987d63 Fix appending to archives bigger than 2G
1df0062 Fix combination of --create, --append, --directory
6a94d5e New option --ignore-dirnlink
376d663 Fix 45b0ee2b407913c533f7ded8d6f8cbeec16ff6ca.
beba8c0 Require automake 1.16.5
70fffa7 Update for newer autotools
a1b2f78 Fix calculation of CRC in copy-out mode.
18ea636 Upgrade gnulib
1a61f62 Update copyright years
a1c97c8 Fix wording in the manpage
97fab48 Update copyright years
86dacfe Remove redundant condition check
4d16930 Use inttostr to represent integer values as strings
236684f Fix dynamic string reallocations
dfc801c Fix previous commit
dd96882 Rewrite dynamic string support.
269d204 Improve online version of the documentation.
7dd8ba9 Update gnulib
905907c Update copyright years
4a78d77 Formatting changes in the documentation.
9fe8494 Update copyright years
641d3f4 Minor fix * src/global.c: Remove superfluous declaration of program_name
0c4ffde Fix handling of device numbers (part 2)
df55fb1 Fix handling of device numbers on copy out.
b1c8583 Improve 684b7ac5
684b7ac Fix cpio header verification.

(From OE-Core rev: 203804370997eeb015ef9da90b567ea2c2f9f3a6)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-21 08:50:38 -10:00
Hitendra Prajapati
4a900fd822 systemd: fix CVE-2023-7008
Upstream-Status: Backport from 3b4cc1437b

(From OE-Core rev: 545fc081f16a63e5b012d4636deee98a788753bb)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-21 08:50:38 -10:00
Peter Marko
4289397aaf zlib: ignore CVE-2023-6992
This CVE is for iCPE cloudflare:zlib.

Alternative to ignoring would be to limit CVE_PRODUCT, but
historic CVEs already have two - gnu:zlib and zlib:zlib.
So limiting it could miss future CVEs.

(From OE-Core rev: f46c9105d4253153a5986f2b307273e43ee98c33)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-21 08:50:38 -10:00
Peter Marko
76d570000e sqlite3: backport patch for CVE-2023-7104
Backport https://sqlite.org/src/info/0e4e7a05c4204b47

(From OE-Core rev: 31fb83ac3dcd2dd55b184de22a296ab4dc150d2e)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-21 08:50:38 -10:00
Poonam Jadhav
33faa4d392 Revert "curl: Backport fix CVE-2023-32001"
This reverts commit 5eab65275d.

CVE-2023-32001 has been marked "REJECT" in the NVD CVE List as
there is no safe measure against it.
These CVEs are stored in the NVD, but do not show up in search results.
Link: https://nvd.nist.gov/vuln/detail/CVE-2023-32001

(From OE-Core rev: a3b6216bcb3425b6e30ca73488a5eb6ba58e4836)

Signed-off-by: Poonam Jadhav poonam.jadhav@kpit.com
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-21 08:50:38 -10:00
Vivek Kumbhar
f96bd47ea2 openssl: Backport fix for CVE-2023-6129
Upstream-Status: Backport [8d847a3ffd]

(From OE-Core rev: db1c8b434e1e249cf5a12fe39cf996373513f3dc)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-21 08:50:38 -10:00
Dmitry Baryshkov
a818202d85 linux-firmware: upgrade 20230804 -> 20231030
License-Update: additional firmwares

(From OE-Core rev: 8e27f96c0befbbb5cf8a2f7076b7a1ffd79addb6)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 7c725d1f2ed9a271d39d899ac2534558c2d103fc)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-11 06:21:38 -10:00
Dhairya Nagodra
c165a558da cve-update-nvd2-native: increase the delay between subsequent request failures
Sometimes NVD servers are unstable and return too many errors.
There is an option to have higher fetch attempts to increase the chances
of successfully fetching the CVE data.

Additionally, it also makes sense to progressively increase the delay
after a failed request to an already unstable or busy server.
The increase in delay is reset after every successful request and
the maximum delay is limited to 30 seconds.

Also, the logs are improved to give more clarity.

(From OE-Core rev: f2e30f54e1dbb36d7527d0117eb2435f25e7e154)

Signed-off-by: Dhairya Nagodra <dnagodra@cisco.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 7101d654635b707e56b0dbae8c2146b312d211ea)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-11 06:21:38 -10:00
Dhairya Nagodra
e318dc57e3 cve-update-nvd2-native: faster requests with API keys
As per NVD, the public rate limit is 5 requests in 30s (6s delay).
Using an API key increases the limit to 50 requests in 30s (0.6s delay).
However, NVD still recommends sleeping for several seconds so that the
other legitimate requests are serviced without denial or interruption.
Keeping the default sleep at 6 seconds and 2 seconds with an API key.

For failures, the wait time is unchanged (6 seconds).

Reference: https://nvd.nist.gov/developers/start-here#RateLimits

(From OE-Core rev: 4f7e40652cdf647c28f7dc6052bfa5db6bc9d8fb)

Signed-off-by: Dhairya Nagodra <dnagodra@cisco.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 5c32e2941d1dc3d04a799a1b7cbd275c1ccc9e79)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-11 06:21:38 -10:00
Peter Marko
c0a199acdc cve-update-nvd2-native: make number of fetch attemtps configurable
Sometimes NVD servers are unstable and return too many errors.

Last time we increased number of attempts from 3 to 5, but
further increasing is not reasonable as in normal case
too many retries is just abusive.

Keep retries low as default and allow to increase as needed.

(From OE-Core rev: 036969937e7c84cc068efe0355dd26281cf89f03)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6b6fd8043d83b99000054ab6ad2c745d07c6bcc1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-11 06:21:38 -10:00
Peter Marko
f0f023e86d cve-update-nvd2-native: remove unused variable CVE_SOCKET_TIMEOUT
This variable is not referenced in oe-core anymore.

(From OE-Core rev: 15a79302aa46c58f962e12956aa4fcd0a178cf58)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 905b45a814cb33327503b793741c19b44c8550b3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-11 06:21:38 -10:00
Vijay Anusuri
d1aae420f9 xserver-xorg: Fix for CVE-2023-6377 and CVE-2023-6478
Upstream-Status: Backport
[0c1a93d319
&
14f480010a]

(From OE-Core rev: abadef9d1759254699577fe40ee353e75958f9a2)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-11 06:21:37 -10:00
Michael Opdenacker
d9532264b9 ref-manual: update tested and supported distros
According to currently active workers
https://autobuilder.yoctoproject.org/typhoon/#/workers
and to the "workers_prev_releases" definition
in https://git.yoctoproject.org/yocto-autobuilder2/tree/config.py

Also correct the text saying that SANITY_TESTED_DISTROS
lists currently tested distros.

Also replace AlmaLinux 8.8 and 9.2 by just AlmaLinux 8 and 9,
as we update our workers anyway.

(From yocto-docs rev: 79a6ec6847cdfc40d75def36993a40fec853a7a1)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-10 05:14:16 -10:00
Joshua Watt
6c7c9b1146 bitbake: asyncrpc: Add context manager API
Adds context manager API for the asyncrcp client class which allow
writing code that will automatically close the connection like so:

    with hashserv.create_client(address) as client:
       ...

Rework the bitbake-hashclient tool and PR server to use this new API to
fix warnings about unclosed event loops when exiting

(Bitbake rev: ee090484cc25d760b8c20f18add17b5eff485b40)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d01d684a0f6398270fe35ed59b7d28f3fd9b7e41)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-10 05:14:16 -10:00
Shubham Kulkarni
3ef22a75a3 tzdata: Upgrade to 2023d
(From OE-Core rev: 227b3d4edad31b0d0045f41133271693265240b0)

Signed-off-by: Shubham Kulkarni <skulkarni@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2956b1aa22129951b8c08ac06ff1ffd66811a26c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-04 05:00:13 -10:00
Steve Sakoman
19b0baeb81 testimage: drop target_dumper, host_dumper, and monitor_dumper
The target_dumper code is basically broken. It has been reading binary files
over the text base serial communication and runs at every command failure which
makes no sense. Each run might overwrite files from the previous run and the
output appears corrupted due to confusion from the binary data.

It isn't possible to cherry-pick "testimage: Drop target_dumper and most of monitor_dumper"
from master, so just make target_dumper, host_dumper, and monitor_dumper empty
functions.

For further details see:

https://lists.openembedded.org/g/openembedded-architecture/message/1888

(From OE-Core rev: 960e7e3dffa22c2142cb672c68cd9a8f0e3998a3)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-04 05:00:13 -10:00
Khem Raj
88ba7d2d3a elfutils: Disable stringop-overflow warning for build host
Some distributions shipping gcc12 end up with stringop-overflow warnings
e.g.
/usr/include/bits/unistd.h:74:10: error: ‘__pread_alias’ specified size between 9223372036854775813 and 18446744073709551615 exceeds maximum object size 9223372036854775807 [-Werror=stringop-overflow=]
   74 |   return __glibc_fortify (pread, __nbytes, sizeof (char),
      |          ^~~~~~~~~~~~~~~

Until fixed, lets not treat this warning as hard error

MJ: this is needed e.g. on ubuntu 24.04 after gcc was upgraded
    from 13.2.0-8ubuntu1 to 13.2.0-9ubuntu1 which includes
    switch _FORTIFY_SOURCE to 3:
    https://changelogs.ubuntu.com/changelogs/pool/main/g/gcc-13/gcc-13_13.2.0-9ubuntu1/changelog

elfutils config.log then shows:

configure:6762: checking whether to add -D_FORTIFY_SOURCE=2 to CFLAGS
configure:6779: gcc  -c -D_FORTIFY_SOURCE=2 -isystem/work/x86_64-linux/elfutils-native/0.186-r0/recipe-sysroot-native/usr/include -O2 -pipe -Werror -isystem/work/x86_64-linux/elfutils-native/0.186-r0/recipe-sysroot-native/usr/include conftest.c >&5
<command-line>: error: "_FORTIFY_SOURCE" redefined [-Werror]
<built-in>: note: this is the location of the previous definition
cc1: all warnings being treated as errors
configure:6786: result: no

and -D_FORTIFY_SOURCE=2 missing in CFLAGS later causes the above error
in do_compile

(From OE-Core rev: 94d1640d374c9a8827957cba8dbc1c1f978701b5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-04 05:00:13 -10:00
Archana Polampalli
df2f696e68 openssh: fix CVE-2023-51385
In ssh in OpenSSH before 9.6, OS command injection might occur if a user name or
host name has shell metacharacters, and this name is referenced by an expansion
token in certain situations. For example, an untrusted Git repository can have a
submodule with shell metacharacters in a user name or host name.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-51385

Upstream patches:
7ef3787c84

(From OE-Core rev: 617640bd045f07b0870dc9f3bc838b3a9fbc3de7)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-04 05:00:13 -10:00
Archana Polampalli
bad31561c0 openssh: fix CVE-2023-51384
In ssh-agent in OpenSSH before 9.6, certain destination constraints can be
incompletely applied. When destination constraints are specified during
addition of PKCS#11-hosted private keys, these constraints are only applied
to the first key, even if a PKCS#11 token returns multiple keys.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-51384

Upstream patches:
881d9c6af9

(From OE-Core rev: 7a745dd1aa13fbf110cc4d86ddbc86617975d6ad)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-04 05:00:13 -10:00
Richard Purdie
e9dbcd7a01 bitbake: lib/bb: Add workaround for libgcc issues with python 3.8 and 3.9
With python 3.8 and 3.9, we see intermittent errors of:

libgcc_s.so.1 must be installed for pthread_cancel to work
Aborted (core dumped)

which seem related to:

https://stackoverflow.com/questions/64797838/libgcc-s-so-1-must-be-installed-for-pthread-cancel-to-work
https://bugs.ams1.psf.io/issue42888

These tend to occur on debian 11 and ubuntu 20.04.

Workaround this by ensuring libgcc is preloaded in all cases.

(Bitbake rev: 2c6183594279e2e9d03f11155ad969448869c863)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-04 05:00:12 -10:00
Insu Park
8ffcfd69b5 bitbake: data: Add missing dependency handling of remove operator
A recipe variable handles its dependencies even on the "contains"
variables within the "inline Python expressions" like bb.utils.filter().
And it also handles those in the append operator correctly, but the
problem is that it does not so in the remove operator.

Fix it by adding the missing dependencies every time the remove
operator has been handled.
Also add a test case to check if the override operators handle
dependencies correctly.

(Bitbake rev: 23639edfbbb3fced7606dce211db8a31c5766585)

Signed-off-by: Insu Park <insu0.park@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Cherry-picked from master: b90520eedb1dbc7f6a3928d089fe74fafb864eb5
- Conflicts in data.py are resolved as the master branch moved
  handle_contains() and handle_remove() out of the try block.
- The test code in codeparser.py are modified as the master branch
  added three more arguments to the build_dependencies().

Signed-off-by: Insu Park <insu0.park@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2024-01-04 05:00:12 -10:00
Richard Purdie
f754b5d45b testimage: Exclude wtmp from target-dumper commands
wtmp is filled with binary data which the run_serial command can't cope with.
Catting this results in confusion of the serial interface and potentially large
backlogs of data in the buffers which can hang qemu.

Exclude the problematic files from the command.

(From OE-Core rev: 2afd9a6002cba2a23dd62a1805b4be04083c041b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 599ac08a6f6fb3f6a89a897c8e06367c63c2f979)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:55 -10:00
Trevor Gamblin
d95d26073d python3-ptest: skip test_storlines
[YOCTO #14933]

test_storlines is yet another Python ptest that fails intermittently on
the Yocto AB, so disable it during ptests for now.

(From OE-Core rev: b71d5ec10f8e64fc6102c66dfc36151f2b0b3c86)

Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit d7b9f8157e6214a83b5495e8a32e11540ae65ff8)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:55 -10:00
Yoann Congal
19c1f963a9 externalsrc: Ensure SRCREV is processed before accessing SRC_URI
When SRCREV is used, call bb.fetch.get_srcrev() before accessing
SRC_URI. Without this new bb.fetch.get_srcrev() call, SRC_URI might be
accessed before SRCREV had a chance to be processed.

In master, this is fixed by https://git.yoctoproject.org/poky/commit/?id=62afa02d01794376efab75623f42e7e08af08526
However, this commit is not suited for backport since it is quite invasive.
The part of the commit that fix the bug is:
    --- a/meta/classes/externalsrc.bbclass
    +++ b/meta/classes/externalsrc.bbclass
    @@ -63,6 +63,7 @@ python () {
             else:
                 d.setVar('B', '${WORKDIR}/${BPN}-${PV}')

    +        bb.fetch.get_hashvalue(d)
             local_srcuri = []
             fetch = bb.fetch2.Fetch((d.getVar('SRC_URI') or '').split(), d)
             for url in fetch.urls:

NB: bb.fetch.get_hashvalue() does not exist in kirkstone but is
equivalent to bb.fetch.get_srcrev().

Fixes [YOCTO #14918]

(From OE-Core rev: f6563cca6c4bf627e904d81fbe5b0b0f2b16a107)

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Suggested-by: Chris Wyse <chris.wyse@wysechoice.net>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:55 -10:00
Soumya Sambu
1b0b487dcc perl: update 5.34.1 -> 5.34.3
This includes security fix for CVE-2023-47038

Changes:
https://metacpan.org/release/PEVANS/perl-5.34.3/changes

(From OE-Core rev: d1bc5fb1d090cf93b9014a050b418499c0209080)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:55 -10:00
Vijay Anusuri
a7eb75e292 openssh: backport Debian patch for CVE-2023-48795
import patches from ubuntu to fix
 fix-authorized-principals-command
 CVE-2023-48795

Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/openssh/tree/debian/patches?h=ubuntu/jammy-security
Upstream commit
fcd78e31cd
&
1edb00c58f]

Reference: https://ubuntu.com/security/CVE-2023-48795

(From OE-Core rev: df5dc8d67e67a2aebf1a552c3e22374e305270bf)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:55 -10:00
Soumya Sambu
7262c0f235 go: Fix CVE-2023-39326
A malicious HTTP sender can use chunk extensions to cause a receiver
reading from a request or response body to read many more bytes from
the network than are in the body. A malicious HTTP client can further
exploit this to cause a server to automatically read a large amount
of data (up to about 1GiB) when a handler fails to read the entire
body of a request. Chunk extensions are a little-used HTTP feature
which permit including additional metadata in a request or response
body sent using the chunked encoding. The net/http chunked encoding
reader discards this metadata. A sender can exploit this by inserting
a large metadata segment with each byte transferred. The chunk reader
now produces an error if the ratio of real body to encoded bytes grows
too small.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-39326
https://security-tracker.debian.org/tracker/CVE-2023-39326

(From OE-Core rev: 448df3bb9277287dd8586987199223b7314fdd01)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:55 -10:00
mark.yang
558325482c ffmpeg: fix for CVE-2022-3965
Without a CVE tag, It will be recognised as Unpatched by cve_check task.

(From OE-Core rev: afc21d7fe86d26bf62e56fc611750f89fe73aa1a)

Signed-off-by: mark.yang <mark.yang@lge.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:55 -10:00
mark.yang
3b8c412b7f ffmpeg: fix for CVE-2022-3964
Without a CVE tag, It will be recognised as Unpatched by cve_check task.

(From OE-Core rev: ce4ac3d167496d2f3a3029ef83dc418a0794c2fb)

Signed-off-by: mark.yang <mark.yang@lge.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:55 -10:00
Sourav Pramanik
8d726b790a qemu: Fix CVE-2023-5088
A bug in QEMU could cause a guest I/O operation otherwise
addressed to an arbitrary disk offset to be targeted to
offset 0 instead (potentially overwriting the VM's boot code).

This change is to fix CVE-2023-5088.

Link: 7d7512019f

(From OE-Core rev: aa84c668bfe2436d36f49a422c775119e2412c8b)

Signed-off-by: Sourav Pramanik <sourav.pramanik@kpit.com>
Signed-off-by: Sourav Kumar Pramanik <pramanik.souravkumar@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:54 -10:00
Poonam Jadhav
7008d999c5 curl: Fix CVE-2023-46218
Add patch to fix CVE-2023-46218

Link: https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/curl/7.88.1-8ubuntu2.4/curl_7.88.1-8ubuntu2.4.debian.tar.xz
      https://github.com/curl/curl/commit/2b0994c29a721c91c57

(From OE-Core rev: f27a93299f554e0bde610f70e6a042b4a24abf20)

Signed-off-by: Poonam Jadhav <poonam.jadhav@kpit.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:54 -10:00
Vijay Anusuri
a7f86b0e78 ghostscript: Backport fix for CVE-2023-46751
Upstream-Status: Backport [https://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=5d2da96e81c7455338302c71a291088a8396245a]

(From OE-Core rev: f01a0e7fcf3c2d277be0cd85c0cd6b2eff2e5f0a)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-22 16:36:54 -10:00
Michael Opdenacker
1520bf97aa test-manual: use working example
(From yocto-docs rev: 7438d32b45b12b034a7d9c9e60b8e8c083ef85d3)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Lee Chee Yang
ddbdef6e58 migration-guides: add release notes for 4.0.15
(From yocto-docs rev: b6e13990229baa91d8b9b885848230d40cb9e045)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
4a7f8470c2 dev-manual: runtime-testing: fix test module name
(From yocto-docs rev: 15a5a6de535db637abe15c24b6d6d9d1e0fb444e)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Simone Weiß
9b7cc27c39 manuals: brief-yoctoprojectqs: align variable order with default local.conf
Align the order from `BB_SIGNATURE_HANDLER` to `SSTATE_MIRRORS` in Quick Build
with the order in the default local conf. While trivial it is easier to find,
if the order matches.

(From yocto-docs rev: 2ab0bdc7ff74aaddd8a556046de3410300ba560a)

Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
306316eb80 test-manual: add or improve hyperlinks
(From yocto-docs rev: d6ea0c9c7713e265f5044548112f865348b21576)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
27ec491044 test-manual: explicit or fix file paths
(From yocto-docs rev: f947a07350aaddb798a1348c3bd5e77faf3849e7)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
2ebcefae46 test-manual: add links to python unittest
Better than using "python unittest" without any
special formatting.

(From yocto-docs rev: 544cc1f950445d2c103c9adfa9147af1513b7a14)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
7640d1f82e test-manual: resource updates
(From yocto-docs rev: 1a89f195eb7d9b16b481055c85632bf6524f777b)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
ac4914f538 test-manual: text and formatting fixes
(From yocto-docs rev: 330092ae9e624cef0fb8494a0deab896fb1b9026)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Peter Kjellerstedt
f4d36b60f8 dev-manual: Discourage the use of SRC_URI[md5sum]
SRC_URI[md5sum] has been deprecated for a long time. Discourage its use
by removing it from examples and note that it should be replaced by
SRC_URI[sha256sum] when updating recipes.

Also mention that bitbake supports other checksums, though they are not
commonly used.

(From yocto-docs rev: fb5b87cf7322542896c269f404571a655ed6bf91)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
7a939cd7e6 migration-guides: release 3.5 is actually 4.0
(From yocto-docs rev: 3b09e8ab838d8b14fd259d17a6597ea43bf46578)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Aatir Manzur
064936af55 docs: add CONVERSION_CMD definition
(From yocto-docs rev: ba1458b04e2828e728c2815b1221e9399132d25d)

Signed-off-by: Aatir Manzur <aatrapps@gmail.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
3a5ddec4d1 contributor-guide: fix command option
"--subject-prefix" applies to "git format-patch", not "git send-email"

(From yocto-docs rev: cf3697cebc0494a624fa2766d07c3532ec6b4341)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Justin Bronder
d00aada1d1 contributor-guide: add License-Update tag
Porting from the old wiki
https://www.openembedded.org/index.php?title=Commit_Patch_Message_Guidelines&oldid=10935#Describing_license_changes

(From yocto-docs rev: 0ff60e3b3da409acff9599b1d511520051db0d37)

Signed-off-by: Justin Bronder <jsbronder@cold-front.org>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
cfcbf783ab dev-manual: layers: update link to YP Compatible form
(From yocto-docs rev: 738ce45b65dd53643303784184c43a83faed344c)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reported-by: Megan Knight <megankn@amazon.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
15b42171a3 ref-manual: releases.svg: update nanbield release status
- nanbield is now released
- update the start and end dates

(From yocto-docs rev: 51f26829e89674c55471a6a077e5f49a97db84c3)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Michael Opdenacker
8caaab3252 manuals: fix URL
[YOCTO #15279]

(From yocto-docs rev: 37d353e82d4ba5f3637720a754769b243c29980c)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reported-by:  Steve Landherr <steve-yocto@chiquapin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Paul Barker
cd6f183a34 ref-manual: Fix reference to MIRRORS/PREMIRRORS defaults
After the following meta-yocto commits, MIRRORS & PREMIRRORS are no
longer set in the poky distro config file:

  67b79df4fbff ("poky.conf: remove redundant MIRRORS")
  1b71a3b9418f ("poky: Drop PREMIRRORS entries for scms")

(From yocto-docs rev: c7882126a75e8814764379d40bf56f39da5d3c19)

Signed-off-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Marta Rybczynska
875ce46a8d bitbake: toastergui: verify that an existing layer path is given
Verify that an existing layer path was given when adding a new
layer.

Manually using the shell for globbing is unnecessary, use the glob
function instead for cleaner code.

(Bitbake rev: de1cf0e31f3836a449cbd17490a2f6b6a86b17f9)

Signed-off-by: Marta Rybczynska <marta.rybczynska@syslinbit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-21 06:14:00 -10:00
Steve Sakoman
755632c2fc build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: eea685e1caafd8e8121006d3f8b5d0b8a4f2a933)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-15 04:03:05 -10:00
Steve Sakoman
387d01b0a4 poky.conf: bump version for 4.0.15
(From meta-yocto rev: 77c2830ae0c3e7370f7c816796981932ba0ec99a)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-15 04:00:33 -10:00
Mikko Rapeli
4761cbe1ee openssh: drop sudo from ptest dependencies
The tests don't actually need sudo on core-image-ptest-openssh.
Based on logs seen in
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15178 it seems
that socket errors from sudo are creeping into stderr which are failing
the banner ptest from openssh. Removing sudo should help removing
the stderr messages and possibly cure the banner test failures.

(From OE-Core rev: 47e754f483b674b207bfddcc8d4c5d9a3008e102)

(From OE-Core rev: bce20153973ceff3ac9fc98b30e726aa6698d8ee)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-15 04:00:33 -10:00
Alexander Kanavin
8a09f8472f gstreamer1.0-plugins-base: enable glx/opengl support
This is required by latest webkit when built with x11 support.

(From OE-Core rev: 024edebf6f722ae4d05411be348730d9eeb3bd7c)

(From OE-Core rev: 9fc0f0a15388af175bd53de5190801750064e60c)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Claus Stovgaard <claus.stovgaard@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-15 04:00:33 -10:00
Vijay Anusuri
82802901c6 gnutls: Backport fix for CVE-2023-5981
Upstream-Status: Backport [import from debian https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/gnutls28/3.7.3-4ubuntu1.3/gnutls28_3.7.3-4ubuntu1.3.debian.tar.xz
Upstream-Commit: 29d6298d0b]

References:
https://ubuntu.com/security/CVE-2023-5981

(From OE-Core rev: 421b468cf48f0d2c493356f482d92e61e39d7e0e)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-15 04:00:33 -10:00
Archana Polampalli
f22a96e5cc bluez5: fix CVE-2023-45866
Bluetooth HID Hosts in BlueZ may permit an unauthenticated Peripheral role
HID Device to initiate and establish an encrypted connection, and accept HID
keyboard reports,potentially permitting injection of HID messages when no user
interaction has occurred in the Central role to authorize such access. An example
affected package is bluez 5.64-0ubuntu1 in Ubuntu 22.04LTS. NOTE: in some cases,
a CVE-2020-0556 mitigation would have already addressed this Bluetooth HID Hosts issue.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-45866

Upstream patches:
https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/profiles/input?id=25a471a83e02e1effb15d5a488b3f0085eaeb675

(From OE-Core rev: f03cb448574a730d85ed6d80bb58561674005ede)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-15 04:00:33 -10:00
Vijay Anusuri
3562768af7 avahi: backport CVE-2023-1981 & CVE's follow-up patches
import patches from ubuntu to fix
 CVE-2023-1981
 CVE-2023-38469-2
 CVE-2023-38470-2
 CVE-2023-38471-2

Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/avahi/tree/debian/patches?h=ubuntu/jammy-security
Upstream commit
a2696da2f2
&
c6cab87df2
&
94cb648911
&
b675f70739]

Ref: https://git.openembedded.org/openembedded-core-contrib/commit/?h=stable/nanbield-nut&id=a9203c46cd64c3ec5e5b00e381bbac85733f85df

(From OE-Core rev: 32c0a3dc4d65065639260e77783dc427d4b1cfe3)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-15 04:00:33 -10:00
Steve Sakoman
6f84c60edf Revert "kernel-fitImage: Strip path component from dtb"
This change breaks arm64 (and likely mips & riscv)

This reverts commit 9a42349a176ca4d7a1bfab3425a0821dbcbd9368.

(From OE-Core rev: b77cd331199fa62e3b162f37efca3b927c68d8e5)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-14 04:08:22 -10:00
Richard Purdie
eadd5efcb3 native: Clear TUNE_FEATURES/ABIEXTENSION
Some recipes reference these. Rather than continually trying to chase down the references
and taskhash issues, clear the variables for an easier life and simpler code. These
wouldn't convey anything useful in a native build.

(From OE-Core rev: 09ecafaf0e128c4dea062d359de37cbef461aed2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f8edeead263708889d31a7ff578ef8274cb678b4)
Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:35 -10:00
Richard Purdie
e01044d629 rust-cross: Simplfy the rust_gen_target calls
Match the code in rust-cross-canadian so that further simplifications
can be considered in future.

(From OE-Core rev: 9fb5f81f58306b2d355049698b6a17d045bd5e1e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5cb62d0a33777cb9afb1eea5f736a2580ce50dc7)
Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:35 -10:00
Richard Purdie
079e50aba0 rust-cross/rust-common: Merge arm target handling code to fix cross-canadian
rust-cross had special handling for armv7 targets but we also need this
for cross-canadian. Merge the code into the main function so everything is
consistent.

Also then fix the arm definition to be arm-eabi since ABI is correctly
being looked up.

(From OE-Core rev: 0adada8111c17e8e5a7c32cef86bdb8e7dfd79d3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ff3c3dbbd2bf1bb7bb70b55cca203e9eedcf14a8)
Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:35 -10:00
Richard Purdie
26ffdb7a30 rust-cross-canadian: Fix ordering of target json config generation
Based upon a patch from Otavio Salvador <otavio@ossystems.com.br>,
ensure the target json files are written in the correct order with
the most specific last incase it overwrites earlier files if the prefixes
match.

(From OE-Core rev: d8c030ef90272e42a1697f5195f887d09878aa01)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1912c4e9e0ecf9655f3b3a41588b54d7956f5899)
Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:35 -10:00
Richard Purdie
1110f16718 rust-common: Set llvm-target correctly for cross SDK targets
When a 'BUILD' target is requested we shouldn't be looking at TARGET_SYS but
at BUILD_SYS. Due to the way rust mangles triplets, we need the HOST_SYS triplet
to work with existing code - fixing that issue is a separate patch.

Also drop the arch_abi argument, it doens't make any sense to a getVar() call
and was a copy and paste error.

Based on a patch from Otavio Salvador <otavio@ossystems.com.br> but separated out
and tweaked.

Fixes: bd36593ba3 ("rust-common: Drop LLVM_TARGET and simplify")

(From OE-Core rev: cccbb8358be830b83a43fe1ff8a88932dee1c228)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d554161a045d12411f288394e253c54aa4c1257c)
Signed-off-by: Jermain Horsman <jermain.horsman@nedap.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:35 -10:00
Niko Mauno
8b75148d87 rust-llvm: Allow overriding LLVM target archs
Move the default value into a variable which can be overridden to
match more accurately the use case specific scenario.

(From OE-Core rev: 645370e85d8742d0614cd52ca7507b5df2d38ad8)

(From OE-Core rev: 93458c302938bf704e8e9f14dfdfee57454adf7a)

Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:35 -10:00
Wenlin Kang
75b08b43a4 bash: changes to SIGINT handler while waiting for a child
It rarely observes the problem while running shell script aborting
test repeatedly, at the problem, the test shell script never returns
to shell

Steps to reproduce:
1. Run test script and ctrl-c repeatedly
2. Observe whether returns to shell after ctrl-c

Fixed issue:
https://lists.gnu.org/archive/html/bug-bash/2023-10/msg00131.html

(From OE-Core rev: a351d62ca7deff548542c849a6fa696280b5533a)

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Steve Sakoman
c4f28d9643 cve-exclusion_5.10.inc: update for 5.10.202
(From OE-Core rev: d910f67c61c79379614837b29be787ceb4181391)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Bruce Ashfield
30be4f67cc linux-yocto/5.10: update to v5.10.202
Updating  to the latest korg -stable release that comprises
the following commits:

    479e8b892541 Linux 5.10.202
    610057f4f6e0 interconnect: qcom: Add support for mask-based BCMs
    7ce66afcaaf6 netfilter: nf_tables: disable toggling dormant table state more than once
    d9c4da8cb74e netfilter: nf_tables: fix table flag updates
    7d1d3f113425 netfilter: nftables: update table flags from the commit phase
    a98172e36e5f tracing: Have trace_event_file have ref counters
    c6e8af2a8a63 io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid
    aeeb1ad2dd4e drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox
    e2bdd437886c drm/amdgpu: fix error handling in amdgpu_bo_list_get()
    dfa8e63ca527 drm/amd/pm: Handle non-terminated overdrive commands.
    7dc933b4b498 ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks
    0932764fb54a ext4: correct the start block of counting reserved clusters
    3c1ad03a5ff2 ext4: correct return value of ext4_convert_meta_bg
    d739a7e38944 ext4: correct offset of gdb backup in non meta_bg group to update_backups
    c878db71edc0 ext4: apply umask if ACL support is disabled
    3a51aee542b0 Revert "net: r8169: Disable multicast filter for RTL8168H and RTL8107E"
    f6e014b5eb1d media: qcom: camss: Fix vfe_get() error jump
    e2d2e266089d mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors
    6875820f36bf nfsd: fix file memleak on client_opens_release
    b51b20c018c6 media: venus: hfi: add checks to handle capabilities from firmware
    bcee276a1e02 media: venus: hfi: fix the check to handle session buffer requirement
    da240b7bada2 media: venus: hfi_parser: Add check to keep the number of codecs within range
    0f887306bd8b media: sharp: fix sharp encoding
    dfa9f4ea6502 media: lirc: drop trailing space from scancode transmit
    c041f5ddef00 f2fs: avoid format-overflow warning
    829f0d5231b7 i2c: i801: fix potential race in i801_block_transaction_byte_by_byte
    430603f6de33 net: phylink: initialize carrier state at creation
    4dc0484e90a3 net: dsa: lan9303: consequently nested-lock physical MDIO
    cb1006640cb3 i2c: designware: Disable TX_EMPTY irq while waiting for block length byte
    8e29eebe4c39 lsm: fix default return value for inode_getsecctx
    8327f50442d2 lsm: fix default return value for vm_enough_memory
    a011391f019c Revert ncsi: Propagate carrier gain/loss events to the NCSI controller
    969d994612ff arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size
    2b3931eb8e9c arm64: dts: qcom: ipq6018: switch TCSR mutex to MMIO
    bdda1c356d58 PCI: exynos: Don't discard .remove() callback
    62d15b6a6ec9 Bluetooth: btusb: Add 0bda:b85b for Fn-Link RTL8852BE
    dbbf3c456002 Bluetooth: btusb: Add RTW8852BE device 13d3:3570 to device tables
    990d4c76d254 bluetooth: Add device 13d3:3571 to device tables
    3aba34baa4fb bluetooth: Add device 0bda:887b to device tables
    0952747362c1 Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0cb8:0xc559
    8617305611c1 cpufreq: stats: Fix buffer overflow detection in trans_stats()
    2ed25af15b32 tty: serial: meson: fix hard LOCKUP on crtscts mode
    07c61839582d serial: meson: Use platform_get_irq() to get the interrupt
    980c3135f1ae tty: serial: meson: retrieve port FIFO size from DT
    1e66cd408353 serial: meson: remove redundant initialization of variable id
    ba30578def84 ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC
    ddd47d8d1ba6 ALSA: hda/realtek - Add Dell ALC295 to pin fall back table
    a681d28b973f ALSA: info: Fix potential deadlock at disconnection
    f04fa1e1997f xhci: Enable RPM on controllers that support low-power states
    5e34fe50a976 parisc/pgtable: Do not drop upper 5 address bits of physical address
    064c697cac4b parisc: Prevent booting 64-bit kernels on PA1.x machines
    c6effcdd7dd0 i3c: master: cdns: Fix reading status register
    76320f05b99d mtd: cfi_cmdset_0001: Byte swap OTP info
    dce3e7c40055 mm/memory_hotplug: use pfn math in place of direct struct page manipulation
    63d2023fbbe1 mm/cma: use nth_page() in place of direct struct page manipulation
    d24340f08104 dmaengine: stm32-mdma: correct desc prep when channel running
    788322e1ede6 mcb: fix error handling for different scenarios when parsing
    25284c46b657 i2c: core: Run atomic i2c xfer when !preemptible
    8f8fc95b3a7f kernel/reboot: emergency_restart: Set correct system_state
    9386f59759b4 quota: explicitly forbid quota files from being encrypted
    f729cf6f3217 jbd2: fix potential data lost in recovering journal raced with synchronizing fs bdev
    db5ebaeb8fda PCI: keystone: Don't discard .probe() callback
    2bcdc1b6b61e PCI: keystone: Don't discard .remove() callback
    943347e53a75 genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware
    b2c194fe8f31 mmc: meson-gx: Remove setting of CMD_CFG_ERROR
    03ed26935beb wifi: ath11k: fix htt pktlog locking
    f882f5190551 wifi: ath11k: fix dfs radar event locking
    c3f61ca48612 wifi: ath11k: fix temperature event locking
    cd5a262a07a5 ima: detect changes to the backing overlay file
    df4133ebc86a firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit
    76211f1dd91d btrfs: don't arbitrarily slow down delalloc if we're committing
    175f4b062f69 rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects
    3c1c1af25d45 PM: hibernate: Clean up sync_read handling in snapshot_write_next()
    df8363e468f2 PM: hibernate: Use __get_safe_page() rather than touching the list
    21bc829337ca arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM
    1fd46d32772d PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common()
    e3ed58ee4e4a mmc: sdhci_am654: fix start loop index for TAP value parsing
    198366a5ffe6 mmc: vub300: fix an error code
    3a4431014cfb clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks
    30af31fc002e clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks
    8dc83cf76290 parisc/pdc: Add width field to struct pdc_model
    d08a1e75253b arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer
    61695b9aecfe ACPI: resource: Do IRQ override on TongFang GMxXGxx
    6edbd6b4811f watchdog: move softlockup_panic back to early_param
    85fe64c8dcce PCI/sysfs: Protect driver's D3cold preference from user space
    1b0836242900 hvc/xen: fix error path in xen_hvc_init() to always register frontend driver
    d5455c421fad hvc/xen: fix console unplug
    a158a74e701b tty/sysrq: replace smp_processor_id() with get_cpu()
    fc557bcfd7ff audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare()
    121973ef1ad7 audit: don't take task_lock() in audit_exe_compare() code path
    910caee34640 KVM: x86: Ignore MSR_AMD64_TW_CFG access
    66406d49ac14 KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space
    8cf6b6658541 x86/cpu/hygon: Fix the CPU topology evaluation for real
    243c4833f345 scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers
    697bc325b977 scsi: mpt3sas: Fix loop logic
    5fb8ec5943b1 bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END
    9617a9fe4f41 bpf: Fix check_stack_write_fixed_off() to correctly spill imm
    7975f7b2a6fc randstruct: Fix gcc-plugin performance mode to stay in group
    d83f4bc0a4db powerpc/perf: Fix disabling BHRB and instruction sampling
    e7de8ffbbbc7 media: venus: hfi: add checks to perform sanity on queue pointers
    99dbc39c22ce cifs: fix check of rc in function generate_smb3signingkey
    e5a0ef02829d cifs: spnego: add ';' in HOST_KEY_LEN
    6d388b641c8f tools/power/turbostat: Fix a knl bug
    f56e228d67fc macvlan: Don't propagate promisc change to lower dev in passthru
    ac4979dbd9b6 net/mlx5e: Check return value of snprintf writing to fw_version buffer for representors
    a3ce491b1738 net/mlx5_core: Clean driver version and name
    0eaec8126b46 net/mlx5e: fix double free of encap_header
    541fece7caa4 net: stmmac: fix rx budget limit check
    66dbaa2eecf1 netfilter: nf_conntrack_bridge: initialize err to 0
    3f643150563c net: ethernet: cortina: Fix MTU max setting
    eac9ef50d6f3 net: ethernet: cortina: Handle large frames
    f0d9b80f7624 net: ethernet: cortina: Fix max RX frame define
    396baca6683f bonding: stop the device in bond_setup_by_slave()
    1f368fd61223 ptp: annotate data-race around q->head and q->tail
    ecc74e7acb6d xen/events: fix delayed eoi list handling
    144a80ef40a6 ppp: limit MRU to 64K
    3ee249a3b993 tipc: Fix kernel-infoleak due to uninitialized TLV value
    072f0eb962c9 net: hns3: fix VF reset fail issue
    b0eac93bae42 net: hns3: fix variable may not initialized problem in hns3_init_mac_addr()
    48fa8a85f8f5 tty: Fix uninit-value access in ppp_sync_receive()
    43b781e7cb5c ipvlan: add ipvlan_route_v6_outbound() helper
    59fadfa99bcb gfs2: Silence "suspicious RCU usage in gfs2_permission" warning
    dedf2a0eb944 SUNRPC: Fix RPC client cleaned up the freed pipefs dentries
    39b2bf040510 NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO
    37f3aaf7945e SUNRPC: Add an IS_ERR() check back to where it was
    c7eacf01ddb1 SUNRPC: ECONNRESET might require a rebind
    4ea3b98fa6a1 xhci: turn cancelled td cleanup to its own function
    6ebd42a7b713 wifi: iwlwifi: Use FW rate for non-data frames
    e52518b9cb9f pwm: Fix double shift bug
    53b2393eeba7 drm/amdgpu: fix software pci_unplug on some chips
    f1ea84696ea5 ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings
    3cfacacb9caa kgdb: Flush console before entering kgdb on panic
    79b6a90f4f24 drm/amd/display: Avoid NULL dereference of timing generator
    0f5068519f89 media: imon: fix access to invalid resource for the second interface
    cf8519f40ce3 media: cobalt: Use FIELD_GET() to extract Link Width
    5f8d51a04baf gfs2: fix an oops in gfs2_permission
    2a054b87a1b7 gfs2: ignore negated quota changes
    0ac2652b9674 media: vivid: avoid integer overflow
    c6b6b8692218 media: gspca: cpia1: shift-out-of-bounds in set_flicker
    90e3c3dd9306 i2c: sun6i-p2wi: Prevent potential division by zero
    18fa7a30cd0c 9p/trans_fd: Annotate data-racy writes to file::f_flags
    76716a7604b2 usb: gadget: f_ncm: Always set current gadget in ncm_bind()
    4ef41a7f33ff tty: vcc: Add check for kstrdup() in vcc_probe()
    484cc536a3a2 exfat: support handle zero-size directory
    491529d383b7 HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W
    65d78d54e4e5 misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller
    bb83f79f90e9 scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup()
    5cebe796eaaa atm: iphase: Do PCI error checks on own line
    65491968365c PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields
    25354bae4fc3 ALSA: hda: Fix possible null-ptr-deref when assigning a stream
    e0d739e66bc1 ARM: 9320/1: fix stack depot IRQ stack filter
    62d21f9df46d HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround
    1ba7df5457dc jfs: fix array-index-out-of-bounds in diAlloc
    81aa58cd8495 jfs: fix array-index-out-of-bounds in dbFindLeaf
    c6c8863fb3f5 fs/jfs: Add validity check for db_maxag and db_agpref
    524b4f203afc fs/jfs: Add check for negative db_l2nbperpage
    885824a44d35 RDMA/hfi1: Use FIELD_GET() to extract Link Width
    e97bf4ada7dd crypto: pcrypt - Fix hungtask for PADATA_RESET
    98fa52d89a4f ASoC: soc-card: Add storage for PCI SSID
    f161a6b11ae7 selftests/efivarfs: create-read: fix a resource leak
    f475d5502f33 drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL
    da1409ea0845 drm/panel: st7703: Pick different reset sequence
    9acc2bc00135 drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference
    c7dc0aca5962 drm/panel: fix a possible null pointer dereference
    b93a25de28af drm/amdgpu: Fix potential null pointer derefernce
    8c1dbddbfcb0 drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga
    8af28ae3acb7 drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7
    4ffb2b0e48c0 drm/msm/dp: skip validity check for DP CTS EDID checksum
    2810a9c40b6f drm/komeda: drop all currently held locks if deadlock happens
    a70457f181d6 platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e
    53d61daf35b1 Bluetooth: Fix double free in hci_conn_cleanup
    9f8e4d1a4ca1 Bluetooth: btusb: Add date->evt_skb is NULL check
    bba97f5e8ff3 wifi: ath10k: Don't touch the CE interrupt registers after power up
    22fa35ded3ec net: annotate data-races around sk->sk_dst_pending_confirm
    67b7de95d1e3 net: annotate data-races around sk->sk_tx_queue_mapping
    beb75dccba9d wifi: ath10k: fix clang-specific fortify warning
    2d6303cafb7c wifi: ath9k: fix clang-specific fortify warnings
    6058e4829696 bpf: Detect IP == ksym.end as part of BPF program
    717de20abdcd wifi: mac80211: don't return unset power in ieee80211_get_tx_power()
    cdfc689e10e6 wifi: mac80211_hwsim: fix clang-specific fortify warning
    a7aa2f1ca855 x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size
    89356bee8eda clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware
    1b8687ed3cf3 clocksource/drivers/timer-imx-gpt: Fix potential memory leak
    1a2a4202c60f perf/core: Bail out early if the request AUX area is out of bound
    9ed2d68b3925 locking/ww_mutex/test: Fix potential workqueue corruption
    6db6caba87ef Linux 5.10.201
    4be0407ffcf6 btrfs: use u64 for buffer sizes in the tree search ioctls
    2bbbb976faa1 Revert "mmc: core: Capture correct oemid-bits for eMMC cards"
    3b092dfdabf2 tracing/kprobes: Fix the order of argument descriptions
    3697fda1c671 fbdev: fsl-diu-fb: mark wr_reg_wa() static
    a4dfebec32ec fbdev: imsttfb: fix a resource leak in probe
    9e8e731571e6 fbdev: imsttfb: Fix error path of imsttfb_probe()
    de721d7ef7ac spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies
    876a119790e5 drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE
    b9bc1806b907 x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot
    14042d6d80db x86: Share definition of __is_canonical_address()
    bc794a667b1e netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses
    b65d851b2eb0 netfilter: nft_redir: use `struct nf_nat_range2` throughout and deduplicate eval call-backs
    7764290452d1 netfilter: xt_recent: fix (increase) ipv6 literal buffer length
    00b188209196 r8169: respect userspace disabling IFF_MULTICAST
    e02824db7c43 tg3: power down device only on SYSTEM_POWER_OFF
    34c5a24633bc net/smc: put sk reference if close work was canceled
    f652ab15af0a net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc
    4e7bad730160 net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT
    13d6bc35deb1 net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs
    eafacef7eeef Fix termination state for idr_for_each_entry_ul()
    0a84ffc72f1e net: r8169: Disable multicast filter for RTL8168H and RTL8107E
    4969fcebe76d dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses.
    7827667989e1 dccp: Call security_inet_conn_request() after setting IPv4 addresses.
    f830d4f69835 inet: shrink struct flowi_common
    b33d130f07f1 tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING
    ddf4e04e946a hsr: Prevent use after free in prp_create_tagged_frame()
    3a2653828ffc llc: verify mac len before reading mac header
    6c71e065befb Input: synaptics-rmi4 - fix use after free in rmi_unregister_function()
    e5d481d9b6cf pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume
    005965cab108 pwm: sti: Reduce number of allocations and drop usage of chip_data
    ce5e0a3c9d39 pwm: sti: Avoid conditional gotos
    0bc796e66b5d regmap: prevent noinc writes from clobbering cache
    1b86938925bd media: dvb-usb-v2: af9035: fix missing unlock
    2e2efaed79c0 media: cedrus: Fix clock/reset sequence
    64863ba8e6b7 media: vidtv: mux: Add check and kfree for kstrdup
    3387490c89b1 media: vidtv: psi: Add check for kstrdup
    62557ab73d3a media: s3c-camif: Avoid inappropriate kfree()
    2f3d9198cdae media: bttv: fix use after free error due to btv->timeout timer
    0627e8623eb5 media: i2c: max9286: Fix some redundant of_node_put() calls
    c3e148aba95a pcmcia: ds: fix possible name leak in error path in pcmcia_device_add()
    84540ef92434 pcmcia: ds: fix refcount leak in pcmcia_device_add()
    cd154225d419 pcmcia: cs: fix possible hung task and memory leak pccardd()
    5e3c75158642 rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call
    1832ed55df45 i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs
    a83fc293acd5 perf hist: Add missing puts to hist__account_cycles
    4e66bde5c7d1 perf machine: Avoid out of bounds LBR memory read
    188425eb2da2 usb: host: xhci-plat: fix possible kernel oops while resuming
    ba894bd2737c xhci: Loosen RPM as default policy to cover for AMD xHC 1.1
    ad0370c41a19 powerpc/pseries: fix potential memory leak in init_cpu_associativity()
    d12372af8955 powerpc/imc-pmu: Use the correct spinlock initializer.
    c75707293dcf powerpc/xive: Fix endian conversion size
    f95f5512fdcb powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro
    b54a4c8ca1c8 modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host
    362f0241dbe9 interconnect: qcom: sc7180: Set ACV enable_mask
    08588fac00b1 interconnect: qcom: sc7180: Retire DEFINE_QBCM
    ebaf7a73f634 f2fs: fix to initialize map.m_pblk in f2fs_precache_extents()
    758f735604f8 dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc()
    5fe228041c51 USB: usbip: fix stub_dev hub disconnect
    798692e48c0a tools: iio: iio_generic_buffer ensure alignment
    3eadba058276 tools: iio: iio_generic_buffer: Fix some integer type and calculation
    a0a41991ddf2 tools: iio: privatize globals and functions in iio_generic_buffer.c file
    d046e3f8de1d misc: st_core: Do not call kfree_skb() under spin_lock_irqsave()
    c53cfe99c2aa dmaengine: ti: edma: handle irq_of_parse_and_map() errors
    bdb3dd409630 usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency
    05de1536d052 livepatch: Fix missing newline character in klp_resolve_symbols()
    3ebf42fe8cc7 tty: tty_jobctrl: fix pid memleak in disassociate_ctty()
    380837052669 leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu'
    23eb8629c22f leds: pwm: Don't disable the PWM when the LED should be off
    c2766ed2b7af mfd: dln2: Fix double put in dln2_probe
    b708eb26b560 mfd: core: Ensure disabled devices are skipped without aborting
    9f831533d2d0 mfd: core: Un-constify mfd_cell.of_reg
    b7b4851e630d ASoC: ams-delta.c: use component after check
    41aad9d69539 padata: Fix refcnt handling in padata_free_shell()
    7606807bd6d0 padata: Convert from atomic_t to refcount_t on parallel_data->refcnt
    2de16f6169a2 ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails
    6fd432f392a7 HID: logitech-hidpp: Move get_wireless_feature_index() check to hidpp_connect_event()
    7581eef4aef2 HID: logitech-hidpp: Revert "Don't restart communication if not necessary"
    c82e376bc24e HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only
    0fe443314cf6 HID: logitech-hidpp: Remove HIDPP_QUIRK_NO_HIDINPUT quirk
    8337286600cd Revert "HID: logitech-hidpp: add a module parameter to keep firmware gestures"
    6d2de161cdc6 sh: bios: Revive earlyprintk support
    2ca51477c6da hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip
    9c895d20f8ee RDMA/hfi1: Workaround truncation compilation error
    cd268264f594 scsi: ufs: core: Leave space for '\0' in utf8 desc string
    cded69a7f8b3 ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe
    159639486834 RDMA/hns: Fix signed-unsigned mixed comparisons
    8018a3444e39 RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common()
    08a246064def IB/mlx5: Fix rdma counter binding for RAW QP
    53067926cd83 ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not described
    83eee515e415 ext4: move 'ix' sanity check to corrent position
    67959b362687 ARM: 9321/1: memset: cast the constant byte to unsigned char
    3d959406c8ff hid: cp2112: Fix duplicate workqueue initialization
    63e8e2ee5815 crypto: qat - increase size of buffers
    a921d6b795a0 crypto: qat - mask device capabilities with soft straps
    16f2033de013 crypto: caam/jr - fix Chacha20 + Poly1305 self test failure
    727ba935d906 crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure
    b0e7a935739f nd_btt: Make BTT lanes preemptible
    efeaa2396e3b libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value
    ffb3483c4b0b hwrng: geode - fix accessing registers
    02db438311f8 crypto: hisilicon/hpre - Fix a erroneous check after snprintf()
    5176ebe6aa2b selftests/resctrl: Ensure the benchmark commands fits to its array
    b3768f089210 selftests/pidfd: Fix ksft print formats
    a0846b4c8e74 clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped
    bcc7d46fa4dd firmware: ti_sci: Mark driver as non removable
    5e5b85ea0f4b soc: qcom: llcc: Handle a second device without data corruption
    a44aa8d8a532 ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator
    8bd7c8a9b838 arm64: dts: qcom: sdm845-mtp: fix WiFi configuration
    4df18b233ef2 arm64: dts: qcom: msm8916: Fix iommu local address range
    1e17eab1a49a xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled
    bc714abe7dc0 drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map()
    666a4120dcf6 arm64/arm: xen: enlighten: Fix KPTI checks
    0dd40dca1ebb drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe()
    6f710918df7d drm/mediatek: Fix iommu fault during crtc enabling
    c12f2eaeb38b drm/bridge: tc358768: Fix bit updates
    1133e72cd82b drm/bridge: tc358768: Disable non-continuous clock mode
    c0d25ef81a11 drm/bridge: tc358768: Fix use of uninitialized variable
    7b063c93bece drm/radeon: possible buffer overflow
    a6d6769e2db6 drm/rockchip: vop: Fix call to crtc reset helper
    bb8143016130 drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs
    9899097b1fcf hwmon: (coretemp) Fix potentially truncated sysfs attribute name
    7d870088db48 hwmon: (axi-fan-control) Fix possible NULL pointer dereference
    060d54f09004 hwmon: (axi-fan-control) Support temperature vs pwm points
    d426a2955e45 platform/x86: wmi: Fix opening of char device
    d2220737330b platform/x86: wmi: remove unnecessary initializations
    3433a69c00ee platform/x86: wmi: Fix probe failure when failing to register WMI devices
    b16622d304e7 clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM
    001e5def774f clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data
    4f861b63945e clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data
    96e9544a0c4f clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data
    81b162861107 clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data
    3994387ba356 clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data
    2617aa8ceaf3 clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data
    55e5fd11a21d clk: npcm7xx: Fix incorrect kfree
    0beaefa9885f clk: ti: fix double free in of_ti_divider_clk_setup()
    acb535d75077 clk: ti: change ti_clk_register[_omap_hw]() API
    98c5012c11a1 clk: ti: Update component clocks to use ti_dt_clk_name()
    1c4253252c7f clk: ti: Update pll and clockdomain clocks to use ti_dt_clk_name()
    00c67e0aa7e4 clk: ti: Add ti_dt_clk_name() helper to use clock-output-names
    de33b367f80d clk: keystone: pll: fix a couple NULL vs IS_ERR() checks
    c07a0e2e93b6 spi: nxp-fspi: use the correct ioremap function
    d459cb424483 clk: linux/clk-provider.h: fix kernel-doc warnings and typos
    f28709097db4 clk: asm9260: use parent index to link the reference clock
    8d03f7c5800d clk: imx: imx8mq: correct error handling path
    c1bacea8a64b clk: imx: Select MXC_CLK for CLK_IMX8QXP
    a52c963d8d7b clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src
    c6919a1576bc clk: qcom: gcc-sm8150: use ARRAY_SIZE instead of specifying num_parents
    355a12fa1c50 clk: qcom: mmcc-msm8998: Fix the SMMU GDSC
    ba7f9695d545 clk: qcom: mmcc-msm8998: Set bimc_smmu_gdsc always on
    97a671174433 clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks
    05eebcd4bc5b clk: qcom: mmcc-msm8998: Add hardware clockgating registers to some clks
    3181168e61f4 clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies
    80836b5859b7 regmap: debugfs: Fix a erroneous check after snprintf()
    9954a7f3808b ipvlan: properly track tx_errors
    e897dcbd5fbc net: add DEV_STATS_READ() helper
    98e8a5a370da ipv6: avoid atomic fragment on GSO packets
    dea8d9e571ee ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias()
    88be6453d7c9 tcp: fix cookie_init_timestamp() overflows
    76894f305c96 chtls: fix tp->rcv_tstamp initialization
    d104f6cb41e8 r8169: fix rare issue with broken rx after link-down on RTL8125
    fdd4a3c20ad5 r8169: use tp_to_dev instead of open code
    3f795fb35c2d thermal: core: prevent potential string overflow
    ae681e5eff0c PM / devfreq: rockchip-dfi: Make pmu regmap mandatory
    d7a220bf6bd6 can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on()
    040f65c2821f can: dev: can_restart(): don't crash kernel if carrier is OK
    03d138b6b243 wifi: rtlwifi: fix EDCA limit set by BT coexistence
    d8f2e18d1dcf tcp_metrics: do not create an entry from tcp_init_metrics()
    73999f29ab19 tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics()
    37308a39262b tcp_metrics: add missing barriers on delete
    d203f9921ac0 wifi: mt76: mt7603: rework/fix rx pse hang check
    3068527d17e8 wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file()
    d44f88b20d44 net: spider_net: Use size_add() in call to struct_size()
    9b8486fdad65 tipc: Use size_add() in calls to struct_size()
    5f5aabbdc27f mlxsw: Use size_mul() in call to struct_size()
    f927d4469632 gve: Use size_add() in call to struct_size()
    2b46db3bb73d overflow: Implement size_t saturating arithmetic helpers
    2f4b4eb58fc0 tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed
    0ca9fc8200d4 udp: add missing WRITE_ONCE() around up->encap_rcv
    61e7961ff33d i40e: fix potential memory leaks in i40e_remove()
    47479ed7fcf7 genirq/matrix: Exclude managed interrupts in irq_matrix_allocated()
    bb166bdae1a7 pstore/platform: Add check for kstrdup
    66f9969141c0 x86/boot: Fix incorrect startup_gdt_descr.size
    ffa4cc86e959 futex: Don't include process MM in futex key on no-MMU
    f52587051637 x86/srso: Fix SBPB enablement for (possible) future fixed HW
    f49926b8d2a5 vfs: fix readahead(2) on block devices
    9fe0f6b5720e sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0
    bdb7de7ed5ba iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()

(From OE-Core rev: 8f2c31ddd3b93f3f3e4eee5f3e97c84167f54dc4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Bruce Ashfield
75cd31f6d3 linux-yocto/5.10: update to v5.10.200
Updating  to the latest korg -stable release that comprises
the following commits:

    3e55583405ac Linux 5.10.200
    a5feaf765935 ALSA: hda: intel-dsp-config: Fix JSL Chromebook quirk detection
    9109649559f9 tty: 8250: Add support for Intashield IS-100
    73bcb4d44988 tty: 8250: Add support for Brainboxes UP cards
    119f38e8ca16 tty: 8250: Add support for additional Brainboxes UC cards
    a8bf6f62187f tty: 8250: Remove UC-257 and UC-431
    e705aee2a657 usb: raw-gadget: properly handle interrupted requests
    8e0324f2cbb7 usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" compatibility
    747b8f877998 PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device
    deddf60c271f can: isotp: isotp_sendmsg(): fix TX state detection and wait behavior
    8716c28f695c can: isotp: isotp_bind(): do not validate unused address information
    e4c4e0e1b29c can: isotp: add local echo tx processing and tx without FC
    569c95b7ece0 can: isotp: handle wait_event_interruptible() return values
    de3c02383aa6 can: isotp: check CAN address family in isotp_bind()
    0386f3704789 can: isotp: isotp_bind(): return -EINVAL on incorrect CAN ID formatting
    93b1e3f3a263 can: isotp: set max PDU size to 64 kByte
    7adbc048d84b can: isotp: Add error message if txqueuelen is too small
    57798a2cfe15 can: isotp: add symbolic error message to isotp_module_init()
    186ab5645199 can: isotp: change error format from decimal to symbolic error names
    b881ce6c7d10 powerpc/mm: Fix boot crash with FLATMEM
    1b285a1bfb0d net: chelsio: cxgb4: add an error code check in t4_load_phy_fw
    955a1105eec2 platform/mellanox: mlxbf-tmfifo: Fix a warning message
    268ec38b797b scsi: mpt3sas: Fix in error path
    abf9c7811836 fbdev: uvesafb: Call cn_del_callback() at the end of uvesafb_exit()
    ec45886637ee ASoC: rt5650: fix the wrong result of key button
    c683d8b6417c netfilter: nfnetlink_log: silence bogus compiler warning
    66cc633fc6e1 spi: npcm-fiu: Fix UMA reads when dummy.nbytes == 0
    6f9093b6f8f7 fbdev: atyfb: only use ioremap_uc() on i386 and ia64
    ead3c123a753 Input: synaptics-rmi4 - handle reset delay when using SMBus trsnsport
    fb8f253b9532 dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe
    e619b38a873f irqchip/stm32-exti: add missing DT IRQ flag translation
    d151fb801957 net: sched: cls_u32: Fix allocation size in u32_init()
    9ade01b2949b x86: Fix .brk attribute in linker script
    3fdd5b2bb09f rpmsg: Fix possible refcount leak in rpmsg_register_device_override()
    41c13a571de4 rpmsg: glink: Release driver_override
    5f1bb9f4d4b5 rpmsg: Fix calling device_lock() on non-initialized device
    5bbd3469a4b6 rpmsg: Fix kfree() of static memory on setting driver_override
    d0208fb38f43 rpmsg: Constify local variable in field store macro
    da369d3996cc driver: platform: Add helper for safer setting of driver_override
    4a20f5ea62db objtool/x86: add missing embedded_insn check
    6b977a7323f7 ext4: avoid overlapping preallocations due to overflow
    58fe961c606c ext4: fix BUG in ext4_mb_new_inode_pa() due to overflow
    c0db17e55ff6 ext4: add two helper functions extent_logical_end() and pa_logical_end()
    c761d34a7ec0 x86/mm: Fix RESERVE_BRK() for older binutils
    01a5e17e3ef3 x86/mm: Simplify RESERVE_BRK()
    571ce7d944cd f2fs: fix to do sanity check on inode type during garbage collection
    d1c37e849f37 smbdirect: missing rc checks while waiting for rdma events
    b2e62728b106 kobject: Fix slab-out-of-bounds in fill_kobj_path()
    b9b197f65904 x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility
    62184eb77821 iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds
    e96eb8853f33 iio: adc: xilinx: use more devres helpers and remove remove()
    0eb1198fe4d6 iio: adc: xilinx: use devm_krealloc() instead of kfree() + kcalloc()
    c4b496c9f772 iio: adc: xilinx: use helper variable for &pdev->dev
    d8928befffe5 clk: Sanitize possible_parent_show to Handle Return Value of of_clk_get_parent_name
    09ce0d85cc00 sparc32: fix a braino in fault handling in csum_and_copy_..._user()
    0258ca32b0ea perf/core: Fix potential NULL deref
    4e3c606afa25 nvmem: imx: correct nregs for i.MX6UL
    37ccf15ebeec nvmem: imx: correct nregs for i.MX6SLL
    7a1c29e93c25 nvmem: imx: correct nregs for i.MX6ULL
    d44166341f4b misc: fastrpc: Clean buffers on remote invocation failures
    866838eb8ee9 tracing/kprobes: Fix the description of variable length arguments
    ca764116b5c1 i2c: aspeed: Fix i2c bus hang in slave read
    18c5167d0460 i2c: stm32f7: Fix PEC handling in case of SMBUS transfers
    80416f6ba002 i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node()
    9a9ead53e72f i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node()
    3cb69f1dbc86 i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node()
    0c8587fec9d5 iio: exynos-adc: request second interupt only when touchscreen mode is used
    632c2199e52d kasan: print the original fault addr when access invalid shadow
    be9e6f51ba7b i40e: Fix wrong check for I40E_TXR_FLAGS_WB_ON_ITR
    fe65fc90e9f2 gtp: fix fragmentation needed check with gso
    3ae8b75fce05 gtp: uapi: fix GTPA_MAX
    4d0d5e54b590 tcp: fix wrong RTO timeout when received SACK reneging
    e0308c793943 r8152: Release firmware if we have an error in probe
    17b455747bc6 r8152: Cancel hw_phy_work if we have an error in probe
    7dc907d855df r8152: Run the unload routine if we have errors during probe
    704c25fc6abd r8152: Increase USB control msg timeout to 5000ms as per spec
    79e2610efc94 net: usb: smsc95xx: Fix uninit-value access in smsc95xx_read_reg
    d9864e589f0e net: ieee802154: adf7242: Fix some potential buffer overflow in adf7242_stats_show()
    634c72adc864 igc: Fix ambiguity in the ethtool advertising
    1e628189a21b neighbour: fix various data-races
    77c4f14f952e igb: Fix potential memory leak in igb_add_ethtool_nfc_entry
    1ac4f8e5553c treewide: Spelling fix in comment
    5eab293b1cbf r8169: fix the KCSAN reported data race in rtl_rx while reading desc->opts1
    13d357d9f226 r8169: fix the KCSAN reported data-race in rtl_tx while reading TxDescArray[entry].opts1
    31c31a78dccf drm/dp_mst: Fix NULL deref in get_mst_branch_device_by_guid_helper()
    957ec0823a5a mmc: renesas_sdhi: use custom mask for TMIO_MASK_ALL
    3ab81820bf92 mm/page_alloc: correct start page when guard page debug is enabled
    f2c0b571a5fc virtio-mmio: fix memory leak of vm_dev
    8b857a93d6be virtio_balloon: Fix endless deflation and inflation on arm64
    c88dd2aebf0c mcb-lpc: Reallocate memory region to avoid memory overlapping
    6976459c6439 mcb: Return actual parsed size when reading chameleon table
    09bcf9254838 selftests/ftrace: Add new test case which checks non unique symbol
    cb49f0e441ce Linux 5.10.199
    657a3ca8236c xfrm6: fix inet6_dev refcount underflow problem
    5d5680755bce Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name
    b423509bc99c Bluetooth: hci_sock: fix slab oob read in create_monitor_event
    653c808023cd phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins
    e9c20d3078cc phy: mapphone-mdm6600: Fix runtime PM for remove
    f42634685ee5 phy: mapphone-mdm6600: Fix runtime disable on probe
    05e06fb6a642 ASoC: pxa: fix a memory leak in probe()
    7e29dadf265d gpio: vf610: set value before the direction to avoid a glitch
    6c3a72d4ae24 platform/x86: asus-wmi: Map 0x2a code, Ignore 0x2b and 0x2c events
    8fece0081b64 platform/x86: asus-wmi: Change ASUS_WMI_BRN_DOWN code from 0x20 to 0x2e
    3be044840e8e s390/pci: fix iommu bitmap allocation
    487a8e24643a perf: Disallow mis-matched inherited group reads
    550c70f72a1b USB: serial: option: add Fibocom to DELL custom modem FM101R-GL
    a39ea926ff6d USB: serial: option: add entry for Sierra EM9191 with new firmware
    3fb223086de9 USB: serial: option: add Telit LE910C4-WWX 0x1035 composition
    d78d3e0d8462 nvme-rdma: do not try to stop unallocated queues
    6238faecf88a nvme-pci: add BOGUS_NID for Intel 0a54 device
    9efa38fdca2c ACPI: irq: Fix incorrect return value in acpi_register_gsi()
    9df654268aec pNFS: Fix a hang in nfs4_evict_inode()
    c44e09a89ad2 Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()"
    b26b0b8757c6 mmc: core: Capture correct oemid-bits for eMMC cards
    f4771efb0683 mmc: core: sdio: hold retuning if sdio in 1-bit mode
    2312fb7f3b20 mtd: physmap-core: Restore map_rom fallback
    3a141424f8fe mtd: spinand: micron: correct bitmask for ecc status
    7682dae0a607 mtd: rawnand: arasan: Ensure program page operations are successful
    875d17e4524b mtd: rawnand: marvell: Ensure program page operations are successful
    6224890ad0b4 mtd: rawnand: qcom: Unmap the right resource upon probe failure
    f707bc0a55b7 Bluetooth: hci_event: Fix using memcmp when comparing keys
    3b6aa631df0c net/mlx5: Handle fw tracer change ownership event based on MTRC
    ead8131372af platform/x86: touchscreen_dmi: Add info for the Positivo C4128B
    fd1271632769 HID: multitouch: Add required quirk for Synaptics 0xcd7e device
    4e71ae53f121 btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c
    661b4ce3b54a drm: panel-orientation-quirks: Add quirk for One Mix 2S
    5b7cae7c35dd ipv4/fib: send notify when delete source address routes
    21f85b026dfe sky2: Make sure there is at least one frag_addr available
    f06c3a50ef2b regulator/core: Revert "fix kobject release warning and memory leak in regulator_register()"
    461341412960 wifi: cfg80211: avoid leaking stack data into trace
    fde6d84daa0f wifi: mac80211: allow transmitting EAPOL frames with tainted key
    8de7f7058314 wifi: cfg80211: Fix 6GHz scan configuration
    ffb060b136dd Bluetooth: hci_core: Fix build warnings
    65f5da6df897 Bluetooth: Avoid redundant authentication
    115f2c88fde3 HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event
    a59636cdd84a tracing: relax trace_event_eval_update() execution with cond_resched()
    fb60e9c00042 ata: libata-eh: Fix compilation warning in ata_eh_link_report()
    22c3641bef9c gpio: timberdale: Fix potential deadlock on &tgpio->lock
    b4fcf1a0bbd0 overlayfs: set ctime when setting mtime and atime
    4b472c25a597 i2c: mux: Avoid potential false error message in i2c_mux_add_adapter
    840b912df518 btrfs: initialize start_slot in btrfs_log_prealloc_extents
    9801e2798b63 btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1
    d69131b48fea ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone
    9ed14f807f4f usb: typec: altmodes/displayport: Signal hpd low when exiting mode
    f25a13d318b8 usb: typec: altmodes/displayport: Notify drm subsys of hotplug events
    2ea6a14e8a55 drm/connector: Add support for out-of-band hotplug notification (v3)
    6e55f6a8a498 drm/connector: Add drm_connector_find_by_fwnode() function (v3)
    89b1868bab48 drm/connector: Add a fwnode pointer to drm_connector and register with ACPI (v2)
    86502f1b63aa drm/connector: Give connector sysfs devices there own device_type
    cedcbf61dfce drm/amd/display: Don't set dpms_off for seamless boot
    ebba01fcd562 drm/amd/display: only check available pipe to disable vbios mode.
    1ac717000403 serial: 8250_omap: Fix errors with no_console_suspend
    be300358b55d serial: 8250: omap: Fix imprecise external abort for omap_8250_pm()
    fc778e9d7995 xhci: track port suspend state correctly in unsuccessful resume cases
    1c034c6e224d xhci: decouple usb2 port resume and get_port_status request handling
    92088dd88627 xhci: clear usb2 resume related variables in one place.
    e7abc4b18d1a xhci: rename resume_done to resume_timestamp
    d44c9285ce35 xhci: move port specific items such as state completions to port structure
    e2b4de13e5f9 xhci: cleanup xhci_hub_control port references
    95b9f1e3927b usb: core: Track SuperSpeed Plus GenXxY
    d6316f592988 selftests/mm: fix awk usage in charge_reserved_hugetlb.sh and hugetlb_reparenting_test.sh that may cause error
    69f40ce372b9 selftests/vm: make charge_reserved_hugetlb.sh work with existing cgroup setting
    cb868d8857ae ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CBA
    7d0728e7ac04 ACPI: resource: Skip IRQ override on ASUS ExpertBook B1502CBA
    3a58c28bff79 ACPI: resource: Skip IRQ override on Asus Expertbook B2402CBA
    1b4659e283bc ACPI: resource: Add Asus ExpertBook B2502 to Asus quirks
    980dd4dfb9e8 ACPI: resource: Skip IRQ override on Asus Vivobook S5602ZA
    e0014184cd11 ACPI: resource: Add ASUS model S5402ZA to quirks
    7f26f0ac3854 ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA
    ffcb69e923aa ACPI: resources: Add DMI-based legacy IRQ override quirk
    8a8918b51080 ACPI: Drop acpi_dev_irqresource_disabled()
    196896455bd1 resource: Add irqresource_disabled()
    faa9a9d07c06 thunderbolt: Workaround an IOMMU fault on certain systems with Intel Maple Ridge
    482fa2345f03 net: pktgen: Fix interface flags printing
    068e4ecea226 netfilter: nft_set_rbtree: .deactivate fails if element has expired
    9cef803e9ed0 neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section
    36848adbdeba net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve
    923e47c0b40a net: dsa: bcm_sf2: Fix possible memory leak in bcm_sf2_mdio_register()
    a53fc0641683 i40e: prevent crash on probe if hw registers have invalid values
    9b5661bda392 net: usb: smsc95xx: Fix an error code in smsc95xx_reset()
    250cd610f8c4 ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr
    1cef1a2d5c22 tun: prevent negative ifindex
    f828e15db3c7 tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb
    c39c31c5265b tcp: fix excessive TLP and RACK timeouts from HZ rounding
    805b38062e28 net: rfkill: gpio: prevent value glitch during probe
    8023c7e90007 net: ipv6: fix return value check in esp_remove_trailer
    2ca00d93f2b1 net: ipv4: fix return value check in esp_remove_trailer
    4ba4eec4f40d xfrm: interface: use DEV_STATS_INC()
    4d78b9dc79d5 xfrm: fix a data-race in xfrm_gen_index()
    8c6c3d0b9f2e qed: fix LL2 RX buffer allocation
    88c493297e40 drm/i915: Retry gtt fault when out of fence registers
    e985d78bdcf3 nvmet-tcp: Fix a possible UAF in queue intialization setup
    287401f92c57 netfilter: nft_payload: fix wrong mac header matching
    fe37e56ed47d tcp: check mptcp-level constraints for backlog coalescing
    6550cbe25de1 x86/sev: Check for user-space IOIO pointing to kernel space
    5bb9ba7dafbe x86/sev: Check IOBM for IOIO exceptions from user-space
    d78c5d8c23c3 x86/sev: Disable MMIO emulation from user mode
    459af3fb81e6 KVM: x86: Mask LVTPC when handling a PMI
    4cbac83549dd regmap: fix NULL deref on lookup
    c95fa5b20fe0 nfc: nci: fix possible NULL pointer dereference in send_acknowledge()
    2e64f4c732cb ice: reset first in crash dump kernels
    95d68fdc71ba ice: fix over-shifted variable
    a56c436b4335 Bluetooth: avoid memcmp() out of bounds warning
    7e83d15e0ca2 Bluetooth: hci_event: Fix coding style
    c6878fa1730b Bluetooth: vhci: Fix race when opening vhci device
    40a33a129d99 Bluetooth: Fix a refcnt underflow problem for hci_conn
    ab950561bca4 Bluetooth: Reject connection with the device which has same BD_ADDR
    0e025a4528f4 Bluetooth: hci_event: Ignore NULL link key
    241f23032433 usb: hub: Guard against accesses to uninitialized BOS descriptors
    aec24b096300 Documentation: sysctl: align cells in second content column
    f10690787d2c mm/memory_hotplug: rate limit page migration warnings
    bf97ea76eac5 lib/Kconfig.debug: do not enable DEBUG_PREEMPT by default
    c44b14469af0 dev_forward_skb: do not scrub skb mark within the same name space
    db9aafa19547 ravb: Fix use-after-free issue in ravb_tx_timeout_work()
    db375fa550c0 RDMA/srp: Fix srp_abort()
    f022576aa03c RDMA/srp: Set scmnd->result only when scmnd is not NULL
    489818719a88 arm64: armv8_deprecated: fix unused-function error
    da7603cedb7d arm64: armv8_deprecated: rework deprected instruction handling
    45a26d2a5394 arm64: armv8_deprecated: move aarch32 helper earlier
    0b6a7a9f6d94 arm64: armv8_deprecated move emulation functions
    2202536144bc arm64: armv8_deprecated: fold ops into insn_emulation
    5aa232345e4d arm64: rework EL0 MRS emulation
    15e964971ff7 arm64: factor insn read out of call_undef_hook()
    0edde7fd1c3b arm64: factor out EL1 SSBS emulation hook
    7a76df1ae1b3 arm64: split EL0/EL1 UNDEF handlers
    8a8d4cc303ef arm64: allow kprobes on EL0 handlers
    793ed958b62a arm64: rework BTI exception handling
    9113333d7c7c arm64: rework FPAC exception handling
    a8d7c8484ff7 arm64: consistently pass ESR_ELx to die()
    004bdab6edc7 arm64: die(): pass 'err' as long
    835cb1f78d74 arm64: report EL1 UNDEFs better
    6788b10620ca x86/alternatives: Disable KASAN in apply_alternatives()
    ba4b37721096 powerpc/64e: Fix wrong test in __ptep_test_and_clear_young()
    dadb86fba67f powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE
    288a0593c798 dmaengine: mediatek: Fix deadlock caused by synchronize_irq()
    17c653d4913b usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call
    a906f2eb675c usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
    7decb6515138 counter: microchip-tcb-capture: Fix the use of internal GCLK logic
    a177771bff63 pinctrl: avoid unsafe code pattern in find_pinctrl()
    2a4a82804024 cgroup: Remove duplicates in cgroup v1 tasks file
    da7ce52a2f6c tee: amdtee: fix use-after-free vulnerability in amdtee_close_session
    0ea0231dd1b2 Input: goodix - ensure int GPIO is in input for gpio_count == 1 && gpio_int_idx == 0 case
    39fb79407e59 Input: i8042 - add Fujitsu Lifebook E5411 to i8042 quirk table
    8d862a3dff7e Input: xpad - add PXN V900 support
    e8ea649fc35f Input: psmouse - fix fast_reconnect function for PS/2 mode
    cd2fbfd8b922 Input: powermate - fix use-after-free in powermate_config_complete
    27b6c809d393 ceph: fix type promotion bug on 32bit systems
    2b2bf63671cc ceph: fix incorrect revoked caps assert in ceph_fill_file_size()
    62f6d24f2e7d libceph: use kernel_connect()
    5850eb4df422 thunderbolt: Check that lane 1 is in CL0 before enabling lane bonding
    008ba1a5ada5 mcb: remove is_added flag from mcb_device struct
    ec93456c0289 x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs
    b608f4aedc0e iio: pressure: ms5611: ms5611_prom_is_valid false negative bug
    02388eaf3a15 iio: pressure: dps310: Adjust Timeout Settings
    2abd2cffa1b8 iio: pressure: bmp280: Fix NULL pointer exception
    aadbf612f8b1 usb: musb: Modify the "HWVers" register address
    bc929a0052c4 usb: musb: Get the musb_qh poniter after musb_giveback
    459eb7c6885f usb: dwc3: Soft reset phy on probe for host
    d71d0009f9e7 net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read
    4bf69ee6bb41 usb: xhci: xhci-ring: Use sysdev for mapping bounce buffer
    2d30692c6c94 dmaengine: stm32-mdma: abort resume if no ongoing transfer
    d346a2ef6b1e media: mtk-jpeg: Fix use after free bug due to uncanceled work
    014cab5329d1 net: release reference to inet6_dev pointer
    d491ac7aa12a net: change accept_ra_min_rtr_lft to affect all RA lifetimes
    354a96770d94 net: add sysctl accept_ra_min_rtr_lft
    1ceaf0d3a883 Revert "spi: spi-zynqmp-gqspi: Fix runtime PM imbalance in zynqmp_qspi_probe"
    649237ccf440 Revert "spi: zynqmp-gqspi: fix clock imbalance on probe failure"
    ce03f0234f9d workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask()
    a424807d860b nfc: nci: assert requested protocol is valid
    b5b03da30bd5 pinctrl: renesas: rzn1: Enable missing PINMUX
    6ac22ecdaad2 net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn()
    31ea13e3ff52 ixgbe: fix crash with empty VF macvlan list
    b24bd1277501 net: phy: mscc: macsec: reject PN update requests
    a848ae8b5ad7 net: macsec: indicate next pn update when offloading
    a629f0575c9c drm/vmwgfx: fix typo of sizeof argument
    d4ba78e5522e riscv, bpf: Sign-extend return values
    2a8ef2234b3a riscv, bpf: Factor out emit_call for kernel and bpf context
    1bf4da1818c2 xen-netback: use default TX queue size for vifs
    33548a6b3c7c mlxsw: fix mlxsw_sp2_nve_vxlan_learning_set() return type
    55e06850c789 ieee802154: ca8210: Fix a potential UAF in ca8210_probe
    ef7a0d51bfdb ravb: Fix up dma_free_coherent() call in ravb_remove()
    1673841da013 drm/msm/dpu: change _dpu_plane_calc_bw() to use u64 to avoid overflow
    6004ca7ad2d0 drm/msm/dsi: skip the wait for video mode done if not applicable
    dbbbeaef7786 drm/msm/dp: do not reinitialize phy unless retry during link training
    31e7e77b24f1 net: prevent address rewrite in kernel_bind()
    22c06bf1f99e quota: Fix slow quotaoff
    093af62c0235 HID: logitech-hidpp: Fix kernel crash on receiver USB disconnect
    cb4a8146e3a9 lib/test_meminit: fix off-by-one error in test_pages()
    06068e7f3ff8 perf/arm-cmn: Fix the unhandled overflow status of counter 4 to 7
    0ed2ad00f333 RDMA/cxgb4: Check skb value for failure to allocate
    26788a5b48d9 RDMA/srp: Do not call scsi_done() from srp_abort()
    81982125c352 RDMA/srp: Make struct scsi_cmnd and struct srp_request adjacent

(From OE-Core rev: 630963a1396afa8c1550ec971d50e444f5ccbcfd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Bruce Ashfield
f5c3c374e8 linux-yocto/5.10: update to v5.10.198
Updating  to the latest korg -stable release that comprises
the following commits:

    a8d812240fdd Linux 5.10.198
    660627c71bc1 xen/events: replace evtchn_rwlock with RCU
    1e3d016a9506 mmc: renesas_sdhi: only reset SCC when its pointer is populated
    a7d86a77c33b netfilter: nftables: exthdr: fix 4-byte stack OOB write
    84f6b686df2d netfilter: nf_tables: fix kdoc warnings after gc rework
    c17446c00805 parisc: Restore __ldcw_align for PA-RISC 2.0 processors
    cfc333393ae6 RDMA/mlx5: Fix NULL string error
    0d520cdb0cd0 RDMA/siw: Fix connection failure handling
    5a4a6a47e074 RDMA/uverbs: Fix typo of sizeof argument
    626868282c36 RDMA/cma: Fix truncation compilation warning in make_cma_ports
    7de0e42444e9 RDMA/cma: Initialize ib_sa_multicast structure to 0 when join
    36953b4da78b gpio: pxa: disable pinctrl calls for MMP_GPIO
    6ad972e66870 gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config()
    d7d8f1a679ec IB/mlx4: Fix the size of a buffer in add_port_entries()
    204c2d485f86 of: dynamic: Fix potential memory leak in of_changeset_action()
    b74f12f98b7f RDMA/core: Require admin capabilities to set system parameters
    ccd87fe7a0f6 dm zoned: free dmz->ddev array in dmz_put_zoned_devices
    82d87c944ea8 cpupower: add Makefile dependencies for install targets
    492241613cf4 sctp: update hb timer immediately after users change hb_interval
    f87658493898 sctp: update transport state when processing a dupcook packet
    ff346b01eba5 tcp: fix delayed ACKs for MSS boundary condition
    677aaa261e7a tcp: fix quick-ack counting to count actual ACKs of new data
    6a24d0661fa3 tipc: fix a potential deadlock on &tx->lock
    b9f1568ba37f net: stmmac: dwmac-stm32: fix resume on STM32 MCU
    3a5142f01758 netfilter: nf_tables: nft_set_rbtree: fix spurious insertion failure
    0ba9348532bd netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp
    b212f361a5d1 net: ethernet: ti: am65-cpsw: Fix error code in am65_cpsw_nuss_init_tx_chns()
    dba849cc9811 net: nfc: llcp: Add lock when modifying device list
    30bc4d7aebe3 net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg
    d44346dda7d4 net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent
    96b2e1090397 ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data()
    2ea52a2fb8e8 net: fix possible store tearing in neigh_periodic_work()
    6e3d9e5caba8 modpost: add missing else to the "of" check
    225cd4f67bd4 NFSv4: Fix a nfs4_state_manager() race
    d8f2ba9ec358 ima: rework CONFIG_IMA dependency block
    77f82df960cb scsi: target: core: Fix deadlock due to recursive locking
    a9430129d8db ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig
    725fd2080559 regmap: rbtree: Fix wrong register marked as in-cache when creating new node
    666cdc43df24 wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling
    54a4faab2baa drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close()
    93dd471d3a2f bpf: Fix tr dereferencing
    10a18c8bac7f wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet
    8c15c1bcc5b5 wifi: iwlwifi: dbg_ini: fix structure packing
    a5f643ab1163 ubi: Refuse attaching if mtd's erasesize is 0
    33420a82067b arm64: Add Cortex-A520 CPU part definition
    81d03e251894 net: prevent rewrite of msg_name in sock_sendmsg()
    72fc02ebfc93 net: replace calls to sock->ops->connect() with kernel_connect()
    1aeff207e295 wifi: mwifiex: Fix tlv_buf_left calculation
    f6f25930fa34 qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info
    b9c4b3ca9016 scsi: zfcp: Fix a double put in zfcp_port_enqueue()
    04b6b67a3e77 Revert "PCI: qcom: Disable write access to read only registers for IP v2.3.3"
    c2cf152e8bb8 Revert "clk: imx: pll14xx: dynamically configure PLL for 393216000/361267200Hz"
    f94471c0cc31 block: fix use-after-free of q->q_usage_counter
    0d6987d4a34c rbd: take header_rwsem in rbd_dev_refresh() only when updating
    d3d170c5fc06 rbd: decouple parent info read-in from updating rbd_dev
    3ceb306f9b2d rbd: decouple header read-in from updating rbd_dev->header
    7c4f11d73b24 rbd: move rbd_dev_refresh() definition
    d0952ce316d1 drm/mediatek: Fix backport issue in mtk_drm_gem_prime_vmap()
    c33d75a57a81 ring-buffer: Fix bytes info in per_cpu buffer stats
    0ecde7dd766f ring-buffer: remove obsolete comment for free_buffer_page()
    2ad1a1d3d616 NFSv4: Fix a state manager thread deadlock regression
    ec4325e80633 NFS: rename nfs_client_kset to nfs_kset
    598539f38c72 NFS: Cleanup unused rpc_clnt variable
    19f3d5d13b75 spi: zynqmp-gqspi: fix clock imbalance on probe failure
    2cdec9c13f81 spi: spi-zynqmp-gqspi: Fix runtime PM imbalance in zynqmp_qspi_probe
    ae03dafc3761 fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
    8ec1abb59a98 ata: libata-sata: increase PMP SRST timeout to 10s
    dc0bd0f2da5c ata: libata-core: Do not register PM operations for SAS ports
    531d9f6dbfd5 ata: libata-core: Fix port and device removal
    99d308c31923 ata: libata-core: Fix ata_port_request_pm() locking
    eaf449666221 net: thunderbolt: Fix TCPv6 GSO checksum calculation
    72595dbfcae3 bpf: Fix BTF_ID symbol generation collision in tools/
    6a80578bd441 bpf: Fix BTF_ID symbol generation collision
    cbbfdb4bab70 btrfs: properly report 0 avail for very full file systems
    ef47f25e98de ring-buffer: Update "shortest_full" in polling
    b7a0df4c0877 proc: nommu: /proc/<pid>/maps: release mmap read lock
    acc7fc82d0ad Revert "SUNRPC dont update timeout value on connection reset"
    e3b8c9e0fc3c i2c: i801: unregister tco_pdev in i801_probe() error path
    b664e9db8d2c ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES
    25872c67de20 ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre M70q
    5a03b42ae1ed netfilter: nf_tables: disallow rule removal from chain binding
    7130a87ca323 nilfs2: fix potential use after free in nilfs_gccache_submit_read_data()
    e14afa4450cb serial: 8250_port: Check IRQ data before use
    6d5c8862932d Revert "tty: n_gsm: fix UAF in gsm_cleanup_mux"
    14443223e08c Smack:- Use overlay inode label in smack_inode_copy_up()
    297c51c63fe1 smack: Retrieve transmuting information in smack_inode_getsecurity()
    41de7a6b95df smack: Record transmuting in smk_transmuted
    831f18c735e2 nvme-pci: always return an ERR_PTR from nvme_pci_alloc_dev
    fb28f89d50c0 netfilter: nft_exthdr: Fix for unsafe packet data read
    e18216cd0ec7 netfilter: nft_exthdr: Search chunks in SCTP packets only
    152b8ac839c9 watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running
    13b7d49f339a watchdog: iTCO_wdt: No need to stop the timer in probe
    0d599a3f57a5 nvme-pci: do not set the NUMA node of device if it has none
    97e148dcb97d nvme-pci: factor out a nvme_pci_alloc_dev helper
    71357c751fb2 nvme-pci: factor the iod mempool creation into a helper
    38f82cf86096 ACPI: Check StorageD3Enable _DSD property in ACPI code
    67025d565450 cgroup: Fix suspicious rcu_dereference_check() usage warning
    b2788f6d4924 sched/cpuacct: Optimize away RCU read lock
    82756d8a2394 sched/cpuacct: Fix charge percpu cpuusage
    f8e8e72c58c7 sched/cpuacct: Fix user/system in shown cpuacct.usage*
    ef3c728ca0d4 perf build: Define YYNOMEM as YYNOABORT for bison < 3.81
    da91481c5d2b fbdev/sh7760fb: Depend on FB=y
    ffc459a93065 ncsi: Propagate carrier gain/loss events to the NCSI controller
    8c2500228b8f powerpc/watchpoints: Disable preemption in thread_change_pc()
    f5bdbed0361c media: vb2: frame_vector.c: replace WARN_ONCE with a comment
    ebc91848062e bpf: Clarify error expectations from bpf_clone_redirect
    0118244848a5 spi: nxp-fspi: reset the FLSHxCR1 registers
    f6cf19c1b313 ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset()
    2afd8fcee0c4 scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command
    0decc581e1dc scsi: pm80xx: Use phy-specific SAS address when sending PHY_START command
    f44e66447c4f platform/mellanox: mlxbf-bootctl: add NET dependency into Kconfig
    cee5151c5410 ring-buffer: Do not attempt to read past "commit"
    2956e33fb4f8 selftests: fix dependency checker script
    9ccce21bd77b ring-buffer: Avoid softlockup in ring_buffer_resize()
    5dfcb92905b3 selftests/ftrace: Correctly enable event in instance-event.tc
    38ef4b2e4dca scsi: qedf: Add synchronization between I/O completions and abort
    2081b2a15b08 parisc: irq: Make irq_stack_union static to avoid sparse warning
    f47efdffdc13 parisc: drivers: Fix sparse warning
    d967a9472bf9 parisc: iosapic.c: Fix sparse warnings
    7b2440c2d64f parisc: sba: Fix compile warning wrt list of SBA devices
    c79300599923 dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
    061f40275338 i2c: npcm7xx: Fix callback completion ordering
    dd81e91b2efc gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip
    b317f69871ef xtensa: boot/lib: fix function prototypes
    be17dfdcc87a xtensa: boot: don't add include-dirs
    a10bfbe599b7 xtensa: iss/network: make functions static
    608af5511a8f xtensa: add default definition for XCHAL_HAVE_DIV32
    3696261859c5 power: supply: ucs1002: fix error code in ucs1002_get_property()
    eff55feb8b87 bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up
    1bc88671960f ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot
    a2a592adad7c ARM: dts: Unify pwm-omap-dmtimer node names
    2d9c9589da6a ARM: dts: am335x: Guardian: Update beeper label
    ef83f35ced40 ARM: dts: motorola-mapphone: Drop second ti,wlcore compatible value
    12a28c379ef8 ARM: dts: motorola-mapphone: Add 1.2GHz OPP
    afdc40a74ae3 ARM: dts: motorola-mapphone: Configure lower temperature passive cooling
    093a9a02d4d5 ARM: dts: ti: omap: Fix bandgap thermal cells addressing for omap3/4
    28e5423ad8fb ARM: dts: omap: correct indentation
    50789f37239c clk: tegra: fix error return case for recalc_rate
    0fd5839e2504 bus: ti-sysc: Fix missing AM35xx SoC matching
    1d4d846e2a49 bus: ti-sysc: Use fsleep() instead of usleep_range() in sysc_reset()
    a8ee76d72737 MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled
    d678c078f302 btrfs: reset destination buffer when read_extent_buffer() gets invalid range
    a1f85bc9bc69 ata: ahci: Add Elkhart Lake AHCI controller
    51d190cc98de ata: ahci: Rename board_ahci_mobile
    8061c399c83b ata: ahci: Add support for AMD A85 FCH (Hudson D4)
    0156cce71f8e ata: libata: Rename link flag ATA_LFLAG_NO_DB_DELAY
    9f0d34663025 netfilter: nft_exthdr: Fix non-linear header modification
    ed60b8014c9a netfilter: exthdr: add support for tcp option removal
    10670abe1115 netfilter: nft_exthdr: break evaluation if setting TCP option fails
    45b3eb6afcff netfilter: nf_tables: add and use nft_thoff helper
    39546418b84d netfilter: nf_tables: add and use nft_sk helper
    af844ba799b5 netfilter: nft_exthdr: Support SCTP chunks
    858ca1921639 netfilter: use actual socket sk for REJECT action
    2d9ea86f3c4a media: venus: hfi_venus: Write to VIDC_CTRL_INIT after unmasking interrupts
    c4cc1f690f19 media: venus: hfi: Add a 6xx boot logic
    4596fece3c24 media: venus: core: Add differentiator IS_V6(core)
    3ed9d3dc244b media: venus: hfi: Define additional 6xx registers
    ebccb53232cc media: venus: hfi,pm,firmware: Convert to block relative addressing
    4ccdeb68da0c media: venus: core: Add io base variables for each block
    6d3745bbc334 mmc: renesas_sdhi: register irqs before registering controller
    995ef65e4b5c mmc: tmio: support custom irq masks
    97eb045386de mmc: renesas_sdhi: populate SCC pointer at the proper place
    7217ceb61a47 mmc: renesas_sdhi: probe into TMIO after SCC parameters have been setup
    e492f8125133 Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN
    677bff659fd3 Input: i8042 - rename i8042-x86ia64io.h to i8042-acpipnpio.h
    3fac8ce48fa9 netfilter: nf_tables: double hook unregistration in netns path
    e51f30826bc5 netfilter: nf_tables: unregister flowtable hooks on netns exit
    5e95c88e9061 i2c: mux: demux-pinctrl: check the return value of devm_kstrdup()
    0a78bcc2d526 gpio: tb10x: Fix an error handling path in tb10x_gpio_probe()
    f515112e8337 net: rds: Fix possible NULL-pointer dereference
    466e88548e19 bnxt_en: Flush XDP for bnxt_poll_nitroa0()'s NAPI
    78106529b390 locking/seqlock: Do the lockdep annotation before locking in do_write_seqcount_begin_nested()
    a8dd21118b0f seqlock: Prefix internal seqcount_t-only macros with a "do_"
    ac01a0dd7905 seqlock: Rename __seqprop() users
    a8460ee6c80b seqlock: avoid -Wshadow warnings
    f1893feb20ea netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP
    b44dd92e2afd team: fix null-ptr-deref when team device type is changed
    04cc361f029c net: bridge: use DEV_STATS_INC()
    1671dc1b25e5 net: hns3: add 5ms delay before clear firmware reset irq source
    309af4a39b8e net: hns3: only enable unicast promisc when mac table full
    ae806c74c063 x86/srso: Fix SBPB enablement for spec_rstack_overflow=off
    423ba1b3a5a7 x86/srso: Fix srso_show_state() side effect
    1ec40ef6f765 platform/x86: intel_scu_ipc: Fail IPC send if still busy
    4c5eaf6d8bb4 platform/x86: intel_scu_ipc: Don't override scu in intel_scu_ipc_dev_simple_command()
    441b61d742ef platform/x86: intel_scu_ipc: Check status upon timeout in ipc_wait_for_interrupt()
    c463898b6e72 platform/x86: intel_scu_ipc: Check status after timeout in busy_loop()
    60d73c62e3e4 dccp: fix dccp_v4_err()/dccp_v6_err() again
    09a1c790e1b9 powerpc/perf/hv-24x7: Update domain value check
    8689c9ace976 ipv4: fix null-deref in ipv4_link_failure
    47907ebeb77a i40e: Fix VF VLAN offloading when port VLAN is configured
    a91861446f1c ASoC: imx-audmix: Fix return error with devm_clk_get()
    c4ecedf980b0 selftests: tls: swap the TX and RX sockets in some tests
    78ef69b6e770 selftests/tls: Add {} to avoid static checker warning
    388c9d3eefae bpf: Avoid deadlock when using queue and stack maps from NMI
    6dc85d848c26 netfilter: nf_tables: disallow element removal on anonymous sets
    a45632f99713 ASoC: meson: spdifin: start hw on dai probe
    09c85f2d21ab netfilter: nf_tables: fix memleak when more than 255 elements expired
    4deaf1316b42 netfilter: nft_set_hash: try later when GC hits EAGAIN on iteration
    26d0e4d632f8 netfilter: nft_set_pipapo: stop GC iteration if GC transaction allocation fails
    b796c4e4bf29 netfilter: nft_set_rbtree: use read spinlock to avoid datapath contention
    c323ed65f66e netfilter: nft_set_rbtree: skip sync GC for new elements in this transaction
    09f2dda1e576 netfilter: nf_tables: defer gc run if previous batch is still pending
    b71dcee2fc9c netfilter: nf_tables: use correct lock to protect gc_list
    23292bdfda5f netfilter: nf_tables: GC transaction race with abort path
    dc0b1f019554 netfilter: nf_tables: GC transaction race with netns dismantle
    4046f2b56e5a netfilter: nf_tables: fix GC transaction races with netns and netlink event exit path
    891ca5dfe3b7 netfilter: nf_tables: don't fail inserts if duplicate has expired
    911dd3cdf108 netfilter: nf_tables: remove busy mark and gc batch API
    77046cb00850 netfilter: nft_set_hash: mark set element as dead when deleting from packet path
    146c76866795 netfilter: nf_tables: adapt set backend to use GC transaction API
    448be0774882 netfilter: nf_tables: GC transaction API to avoid race with control plane
    b15ea4017af8 netfilter: nf_tables: don't skip expired elements during walk
    f8bf7706151a netfilter: nf_tables: integrate pipapo into commit protocol
    9b65bff30a61 tracing: Have event inject files inc the trace array ref count
    f8a86ab3c4a4 ext4: do not let fstrim block system suspend
    c502b09d9bef ext4: move setting of trimmed bit into ext4_try_to_trim_range()
    e78e9f08a24e ext4: replace the traditional ternary conditional operator with with max()/min()
    cbf6a0f65404 ext4: mark group as trimmed only if it was fully scanned
    5eaf4a1e06cf ext4: change s_last_trim_minblks type to unsigned long
    24a86315a353 ext4: scope ret locally in ext4_try_to_trim_range()
    da1895f731f3 ext4: add new helper interface ext4_try_to_trim_range()
    6f5fc957dfb7 ext4: remove the 'group' parameter of ext4_trim_extent
    69c966583022 ata: libahci: clear pending interrupt status
    11d15a115c90 ata: ahci: Drop pointless VPRINTK() calls and convert the remaining ones
    407bf1c140f0 tracing: Increase trace array ref count on enable and filter files
    3f7df02fa0d4 SUNRPC: Mark the cred for revalidation if the server rejects it
    25ae2b2fdb12 NFS/pNFS: Report EINVAL errors from connect() to the server
    26db22a6397b NFS: Use the correct commit info in nfs_join_page_group()

(From OE-Core rev: 2c379dc34820b80f3f4132437737f0e4d601e36a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Tim Orling
93d2e547d1 vim: upgrade 9.0.2068 -> 9.0.2130
https://github.com/vim/vim/compare/v9.0.2068...v9.0.2130

CVE: CVE-2023-48231
CVE: CVE-2023-48232
CVE: CVE-2023-48233
CVE: CVE-2023-48234
CVE: CVE-2023-48235
CVE: CVE-2023-48236
CVE: CVE-2023-48237

(From OE-Core rev: 7a6aab8b28b57bbaa4d4cf436a8cae18f1a43eba)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
(cherry picked from commit 5978d565a9e700485fc563dfe2e3c0045dd74b59)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Narpat Mali
31507dd07a python3-cryptography: fix CVE-2023-49083
cryptography is a package designed to expose cryptographic primitives
and recipes to Python developers. Calling `load_pem_pkcs7_certificates`
or `load_der_pkcs7_certificates` could lead to a NULL-pointer dereference
and segfault. Exploitation of this vulnerability poses a serious risk of
Denial of Service (DoS) for any application attempting to deserialize a
PKCS7 blob/certificate. The consequences extend to potential disruptions
in system availability and stability. This vulnerability has been patched
in version 41.0.6.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-49083
https://security-tracker.debian.org/tracker/CVE-2023-49083

(From OE-Core rev: 2d104f78cd13a10640bc284c7fc8358bf305279c)

Signed-off-by: Narpat Mali <narpat.mali@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Lee Chee Yang
82e76d21dc xwayland: fix CVE-2023-5367
(From OE-Core rev: 9c21b08c18414bb61abebcbbb8704946ea288a7b)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Vivek Kumbhar
006b4b976c libsndfile: fix CVE-2022-33065 Signed integer overflow in src/mat4.c
(From OE-Core rev: 0dc086b37b1c333adf99c01ce4ecb717df48d6f9)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-12 04:20:34 -10:00
Martin Jansa
d6385a54cb bitbake: runqueue: show number of currently running bitbake threads when pressure changes
* it might be a bit confusing as it shows number of threads before making
  the decision to start more tasks and also it can show only a few tasks
  running, but not because of pressure when there just aren't many tasks
  left or wait for their dependencies to be finished first

* example output:
  NOTE: Pressure status changed to CPU: True, IO: None, Mem: None (CPU: 297589.5/200000.0, IO: 5522.2/None, Mem: 779.2/None) - using 7/8 bitbake threads
  NOTE: Pressure status changed to CPU: False, IO: None, Mem: None (CPU: 196381.2/200000.0, IO: 2667.9/None, Mem: 556.2/None) - using 2/8 bitbake threads

(Bitbake rev: 42a1c9fe698a03feb34c5bba223c6e6e0350925b)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-11 06:13:49 -10:00
Martin Jansa
acd993f24c bitbake: runqueue: show more pressure data
* with latest bitbake I'm seeing very low number of bitbake tasks
  executed in parallel, probably due to pressure regulation
  show the values this is based on in the note

* also simplify a bit by counting the pressure and exceeds signs
  only once

(Bitbake rev: 1050145c3004861ebede4777fd4fbd89d0470716)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-11 06:13:49 -10:00
Chen Qi
98223b776a bitbake: runqueue.py: fix PSI check logic
The current calculation is not correct because if tdiff is less than
1.0, it's not taken into consideration when calculating the current
pressure.

Also, make it clear that the 1.0s is the psi accumulation cycle,
which might be changed in the future. We have this cycle because it
could largely avoid the 0 result issue, that is, if the interval
between checks are too small, the result might be 0. With this
accumulation logic, which has been there but let's make it clear,
this 0 result problem could be mitigated.

(Bitbake rev: 76889ff0a8938a3d77603d2af176aa9e264df839)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-11 06:13:49 -10:00
Richard Purdie
7057b7bb2b bitbake: runqueue: Add pressure change logging
It is currently hard to tell when bitbake is throttling task execution
due to system pressure changes. Add notes to the console output to make
this clearer, only generating output when the values change.

(Bitbake rev: b5f77e8159ad321f31999af8304f082a2c56b537)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-11 06:13:49 -10:00
Chen Qi
a76bc698c4 bitbake: runqueue: fix PSI check calculation
The current PSI check calculation does not take into consideration
the possibility of the time interval between last check and current
check being much larger than 1s. In fact, the current behavior does
not match what the manual says about BB_PRESSURE_MAX_XXX, even if
the value is set to upper limit, 1000000, we still get many blocks
on new task launch. The difference between 'total' should be divided
by the time interval if it's larger than 1s.

(Bitbake rev: 2b2997ab6bdda730e4b638f416311a73e0c42156)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-11 06:13:49 -10:00
Li Wang
3e73216a32 systemtap_git: fix used uninitialized error
bpf-translate.cxx: error: 'this_column_size' may be used uninitialized in this function [-Werror=maybe-uninitialized]
bpf-translate.cxx: error: 'num' may be used uninitialized in this function [-Werror=maybe-uninitialized]

(From OE-Core rev: 11da43b58e19583a9bc16044309610cfb2e86469)

Signed-off-by: Li Wang <li.wang@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-02 16:36:57 -10:00
Ninad Palsule
239bf770b6 kernel-fitImage: Strip path component from dtb
Machines that have added subdirectires to the KERNEL_DEVICETREE
recently, such as arm32 boards that were moved under subdirectories in
Linux 6.5, will have that subdirectory in the node name of the FIT. This
breaks existing systems that select a configuration in u-boot by it's
name.

Strip off the directory component from the device tree to preserve
compatibility.

(From OE-Core rev: 941ba1a132bafa9c9be855fb91fec96d8b06299f)

(From OE-Core rev: 9a42349a176ca4d7a1bfab3425a0821dbcbd9368)

Signed-off-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Ninad Palsule <ninad@linux.ibm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> # backport to kirkstone
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-02 16:36:57 -10:00
Archana Polampalli
d1b9e2acaa vim: Upgrade 9.0.2048 -> 9.0.2068
This includes CVE fix for CVE-2023-46246.
9198c1f2b (tag: v9.0.2068) patch 9.0.2068: [security] overflow in :history

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-46246

(From OE-Core rev: 8c83a25494f99ebe63f59a267001e4a19d0a6b14)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 63bc72ccb63d2f8eb591d7cc481657a538f0fd42)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-02 16:36:56 -10:00
Steve Sakoman
51a2c26e29 vim: use upstream generated .po files
A previous commit attempted to fix reproducibility errors by forcing
regeneration of .po files. Unfortunately this triggered a different
type of reproducibility issue.

Work around this by adjusting the timestamps of the troublesome .po
files so they are not regenerated and we use the shipped upstream
versions of the files.

The shipped version of ru.cp1251.po doesn't seem to have been created
with the vim tooling and specifies CP1251 instead of cp1251, fix that.

(From OE-Core rev: 3c1e35562c31b8fa94ea10d18ddfdb4267566bf3)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 13d9551ba626f001c71bf908df16caf1d739cf13)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-02 16:36:56 -10:00
Richard Purdie
f46bb8ad10 vim: Improve locale handling
When making checkouts from git, the timestamps can vary and occasionally two files
can end up with the same stamp. This triggers make to regenerate ru.cp1251.po from
ru.po for example. If it isn't regenerated, the output isn't quite the same leading
to reproducibility issues (CP1251 vs cp1251).

Since we added all locales to buildtools tarball now, we can drop the locale
restrictions too. We need to generate a native binary for the sjis conversion
tool so also tweak that.

(From OE-Core rev: b2e62fb4d52b019728a4920553fa24f4626b881a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 042c1a501b1dae5ddb31307b461be02c3591c589)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-02 16:36:56 -10:00
Hitendra Prajapati
f007ad78dd grub: fix CVE-2023-4693
Upstream-Status: Backport from https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=0ed2458cc4eff6d9a9199527e2a0b6d445802f94

(From OE-Core rev: 1bbbba098dba85ec1b875512d75f7eca9026e781)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-02 16:36:56 -10:00
Vivek Kumbhar
24121f9699 openssl: fix CVE-2023-5678 Generating excessively long X9.42 DH keys or checking excessively long X9.42 DH keys or parameters may be very slow
(From OE-Core rev: 6cd4c30a2811420159d72c2f0a9430f1f0294686)

Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-02 16:36:56 -10:00
Archana Polampalli
f8a7dbd8fb gstreamer1.0-plugins-bad: fix CVE-2023-44429
AV1 codec parser buffer overflow

(From OE-Core rev: 76b97dc17349419059de739b2342853219c2e4ec)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-12-02 16:36:56 -10:00
Alexander Kanavin
8dc22248a8 sdk-manual: extensible.rst: remove instructions for using SDK functionality directly in a yocto build
This was not actually backported to kirkstone (and isn't going to be)
but the documentation for the feature erroneously did make its way
from master into kirkstone.

(From yocto-docs rev: 08fda7a5601393617b1ecfe89229459e14a90b1d)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Lee Chee Yang
b159ad2464 migration-guide: add release notes for 4.0.14
(From yocto-docs rev: c3b7de1ffdaf5abd3383af1159132457c4ca19a3)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Michael Opdenacker
a2d67684cc manuals: update class references
Synchronizing with master whenever possible,
to make the branch easier to maintain.

(From yocto-docs rev: 825b1292ab08770b2d8cfdc1e11358a2790c1a1b)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Michael Opdenacker
fdd88b549f ref-manual: classes: explain cml1 class name
(From yocto-docs rev: aa2f61675e79e04207e91ab845892d581069fb74)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
CC: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Paul Eggleton
95795dff9b ref-manual: update SDK_NAME variable documentation
Update for changes in nanbield. Note that I am documenting what is set
by poky.conf here (since this is Yocto Project documentation), which is
slightly different from what is done in meta/conf/bitbake.conf.

(From yocto-docs rev: 4273dc298aba67fe07f19b52e5f8fa1d183d054c)

Signed-off-by: Paul Eggleton <bluelightning@bluelightning.org>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
BELHADJ SALEM Talel
6c9f29507f overview-manual: concepts: Add Bitbake Tasks Map
Create a Map to detail how BitBake handles a recipe's tasks
and its compile/runtime dependencies along with detailed comments.

(From yocto-docs rev: 529c7bf6c434166f4d372166868d46f275eb5bea)

Signed-off-by: Talel BELHAJSALEM <bhstalel@gmail.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Michael Opdenacker
942c66a9fb ref-manual: variables: add RECIPE_MAINTAINER
(From yocto-docs rev: 97661c8583e3be2ee992d2c0a158554086f6d038)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Michael Opdenacker
12643571ec ref-manual: variables: mention new CDN for SSTATE_MIRRORS
(From yocto-docs rev: 57cf137a45070d45d4ae2518d6c45e226166bbee)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Michael Opdenacker
9536f32528 ref-manual: variables: document OEQA_REPRODUCIBLE_* variables
(From yocto-docs rev: 40285a94db71dabfbddc324ee71b46984dbdb6fd)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Peter Marko
e826f80436 goarch: Move Go architecture mapping to a library
Other spaces uses the Go architecture definitions as their own (for
example, container arches are defined to be Go arches). To make it
easier for other places to use this mapping, move the code that does the
translation of OpenEmbedded arches to Go arches to a library.

(From oe-core rev: 3e86f72fc2e1cc2e5ea4b4499722d736941167ce)

This commit together with meta-virtualization commit
115f6367f37095415f289fb6981cda9608ac72ff
broke meta-virtualization master used with
meta-lts-mixins kirkstone/go which is our primary
usecase for having kirkstone/go mixin layer

Manually crafted since cherry-pick had too many conflicts:
* different path to classes
* additional architecture loongarch64
* different way how to import library

(From OE-Core rev: 8726ae02d760270f9e7fe7ef5715d8f7553371ce)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Bruce Ashfield <bruce.ashfield@gmail.com>
Cc: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Chaitanya Vadrevu
f19d7f427e go: Fix issue in DNS resolver
This change adds a patch that is a partial backport of an upstream
commit[1].

It fixes a bug in go's DNS resolver that was causing a docker issue
where the first "docker pull" always fails after system boot if docker
daemon is started before networking is completely up.

[1] d52883f443

(From OE-Core rev: 8c8b01e84844a7e721c668d5ffbc7161e67f0862)

Signed-off-by: Chaitanya Vadrevu <chaitanya.vadrevu@ni.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Soumya Sambu
c8fa08b01c sudo: upgrade 1.9.13p3 -> 1.9.15p2
License-update: file removed upstream

Drop patch as issue fixed upstream.

Changelog:
===========
1.9.15p2
 * Fixed a bug on BSD systems where sudo would not restore the
   terminal settings on exit if the terminal had parity enabled.
   GitHub issue #326.

1.9.15p1
 * Fixed a bug introduced in sudo 1.9.15 that prevented LDAP-based
   sudoers from being able to read the ldap.conf file.
   GitHub issue #325.

1.9.15
 * Fixed an undefined symbol problem on older versions of macOS
   when "intercept" or "log_subcmds" are enabled in sudoers.
   GitHub issue #276.
 * Fixed "make check" failure related to getpwent(3) wrapping
   on NetBSD.
 * Fixed the warning message for "sudo -l command" when the command
   is not permitted.  There was a missing space between "list" and
   the actual command due to changes in sudo 1.9.14.
 * Fixed a bug where output could go to the wrong terminal if
   "use_pty" is enabled (the default) and the standard input, output
   or error is redirected to a different terminal.  Bug #1056.
 * The visudo utility will no longer create an empty file when the
   specified sudoers file does not exist and the user exits the
   editor without making any changes.  GitHub issue #294.
 * The AIX and Solaris sudo packages on www.sudo.ws now support
   "log_subcmds" and "intercept" with both 32-bit and 64-bit
   binaries.  Previously, they only worked when running binaries
   with the same word size as the sudo binary.  GitHub issue #289.
 * The sudoers source is now logged in the JSON event log.  This
   makes it possible to tell which rule resulted in a match.
 * Running "sudo -ll command" now produces verbose output that
   includes matching rule as well as the path to the sudoers file
   the matching rule came from.  For LDAP sudoers, the name of the
   matching sudoRole is printed instead.
 * The embedded copy of zlib has been updated to version 1.3.
 * The sudoers plugin has been modified to make it more resilient
   to ROWHAMMER attacks on authentication and policy matching.
   This addresses CVE-2023-42465.
 * The sudoers plugin now constructs the user time stamp file path
   name using the user-ID instead of the user name.  This avoids a
   potential problem with user names that contain a path separator
   ('/') being interpreted as part of the path name.  A similar
   issue in sudo-rs has been assigned CVE-2023-42456.
 * A path separator ('/') in a user, group or host name is now
   replaced with an underbar character ('_') when expanding escapes
   in @include and @includedir directives as well as the "iolog_file"
   and "iolog_dir" sudoers Default settings.
 * The "intercept_verify" sudoers option is now only applied when
   the "intercept" option is set in sudoers.  Previously, it was
   also applied when "log_subcmds" was enabled.  Sudo 1.9.14
   contained an incorrect fix for this.  Bug #1058.
 * Changes to terminal settings are now performed atomically, where
   possible.  If the command is being run in a pseudo-terminal and
   the user's terminal is already in raw mode, sudo will not change
   the user's terminal settings.  This prevents concurrent sudo
   processes from restoring the terminal settings to the wrong values.
   GitHub issue #312.
 * Reverted a change from sudo 1.9.4 that resulted in PAM session
   modules being called with the environment of the command to be
   run instead of the environment of the invoking user.
   GitHub issue #318.
 * New Indonesian translation from translationproject.org.
 * The sudo_logsrvd server will now raise its open file descriptor
   limit to the maximum allowed value when it starts up.  Each
   connection can require up to nine open file descriptors so the
   default soft limit may be too low.
 * Better log message when rejecting a command if the "intercept"
   option is enabled and the "intercept_allow_setid" option is
   disabled.  Previously, "command not allowed" would be logged and
   the user had no way of knowing what the actual problem was.
 * Sudo will now log the invoking user's environment as "submitenv"
   in the JSON logs.  The command's environment ("runenv") is no
   longer logged for commands rejected by the sudoers file or an
   approval plugin.

1.9.14p3
 * Fixed a crash with Python 3.12 when the sudo Python plugin is
   unloaded.  This only affects "make check" for the Python plugin.
 * Adapted the sudo Python plugin test output to match Python 3.12.

1.9.14p2
 * Fixed a crash on Linux systems introduced in version 1.9.14 when
   running a command with a NULL argv[0] if "log_subcmds" or
   "intercept" is enabled in sudoers.
 * Fixed a problem with "stair-stepped" output when piping or
   redirecting the output of a sudo command that takes user input.
 * Fixed a bug introduced in sudo 1.9.14 that affects matching
   sudoers rules containing a Runas_Spec with an empty Runas user.
   These rules should only match when sudo's -g option is used but
   were matching even without the -g option.  GitHub issue #290.

1.9.14p1
 * Fixed an invalid free bug in sudo_logsrvd that was introduced
   in version 1.9.14 which could cause sudo_logsrvd to crash.
 * The sudoers plugin no longer tries to send the terminal name
   to the log server when no terminal is present.  This bug was
   introduced in version 1.9.14.

1.9.14
 * Fixed a bug where if the "intercept" or "log_subcmds" sudoers
   option was enabled and a sub-command was run where the first
   entry of the argument vector didn't match the command being run.
   This resulted in commands like "sudo su -" being killed due to
   the mismatch.  Bug #1050.
 * The sudoers plugin now canonicalizes command path names before
   matching (where possible).  This fixes a bug where sudo could
   execute the wrong path if there are multiple symbolic links with
   the same target and the same base name in sudoers that a user is
   allowed to run.  GitHub issue #228.
 * Improved command matching when a chroot is specified in sudoers.
   The sudoers plugin will now change the root directory id needed
   before performing command matching.  Previously, the root directory
   was simply prepended to the path that was being processed.
 * When NETGROUP_BASE is set in the ldap.conf file, sudo will now
   perform its own netgroup lookups of the host name instead of
   using the system innetgr(3) function.  This guarantees that user
   and host netgroup lookups are performed using  the same LDAP
   server (or servers).
 * Fixed a bug introduced in sudo 1.9.13 that resulted in a missing
   " ; " separator between environment variables and the command
   in log entries.
 * The visudo utility now displays a warning when it ignores a file
   in an include dir such as /etc/sudoers.d.
 * When running a command in a pseudo-terminal, sudo will initialize
   the terminal settings even if it is the background process.
   Previously, sudo only initialized the pseudo-terminal when running
   in the foreground.  This fixes an issue where a program that
   checks the window size would read the wrong value when sudo was
   running in the background.
 * Fixed a bug where only the first two digits of the TSID field
   being was logged.  Bug #1046.
 * The "use_pty" sudoers option is now enabled by default.  To
   restore the historic behavior where a command is run in the
   user's terminal, add "Defaults !use_pty" to the sudoers file.
   GitHub issue #258.
 * Sudo's "-b" option now works when the command is run in a
   pseudo-terminal.
 * When disabling core dumps, sudo now only modifies the soft limit
   and leaves the hard limit as-is.  This avoids problems on Linux
   when sudo does not have CAP_SYS_RESOURCE, which may be the case
   when run inside a container.  GitHub issue #42.
 * Sudo configuration file paths have been converted to colon-separated
   lists of paths.  This makes it possible to have configuration
   files on a read-only file system while still allowing for local
   modifications in a different (writable) directory.  The new
   --enable-adminconf configure option can be used to specify a
   directory that is searched for configuration files in preference
   to the sysconfdir (which is usually /etc).
 * The NETGROUP_QUERY ldap.conf parameter can now be disabled for
   LDAP servers that do not support querying the nisNetgroup object
   by its nisNetgroupTriple attribute, while still allowing sudo to
   query the LDAP server directly to determine netgroup membership.
 * Fixed a long-standing bug where a sudoers rule without an explicit
   runas list allowed the user to run a command as root and any
   group instead of just one of the groups that root is a member
   of.  For example, a rule such as "myuser ALL = ALL" would permit
   "sudo -u root -g othergroup" even if root did not belong to
   "othergroup".
 * Fixed a bug where a sudoers rule with an explicit runas list
   allowed a user to run sudo commands as themselves.  For example,
   a rule such as "myuser ALL = (root) ALL", "myuser" should only
   allow commands to be run as root (optionally using one of root's
   groups).  However, the rule also allowed the user to run
   "sudo -u myuser -g myuser command".
 * Fixed a bug that prevented the user from specifying a group on
   the command line via "sudo -g" if the rule's Runas_Spec contained
   a Runas_Alias.
 * Sudo now requires a C compiler that conforms to ISO C99 or higher
   to build.

(From OE-Core rev: 55f1437e2e7f11724ace489677ae214611244faf)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Peter Marko
ecba5ff495 go: ignore CVE-2023-45283 and CVE-2023-45284
These CVEs affect path handling on Windows.

(From OE-Core rev: 60f75fd6a671fcbfeefb634fe88f6faa17b446b7)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Lee Chee Yang
a7657ca5ff ghostscript: ignore GhostPCL CVE-2023-38560
issue in GhostPCL.
GhostPCL not part of this GhostScript recipe.

(From OE-Core rev: 7c4b4daeeca8fab257475eacb83c58b7e5dfee24)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Deepthi Hemraj
c771630e99 binutils: Fix CVE-2022-48064
(From OE-Core rev: 88cbf5eb4a075e677b1f9e6444ec6378a5949978)

Signed-off-by: Deepthi Hemraj <Deepthi.Hemraj@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Deepthi Hemraj
39aa7af59b binutils: Fix CVE-2022-47007
(From OE-Core rev: 03e6ea59d82e613ba3b5d388fa87317cef982f2b)

Signed-off-by: Deepthi Hemraj <Deepthi.Hemraj@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Meenali Gupta
2629c5fe89 avahi: fix CVE-2023-38473
A vulnerability was found in Avahi. A reachable assertion
exists in the avahi_alternative_host_name() function.

(From OE-Core rev: 3a9b67f222d6e004a8b56eedca6ff869e9aba710)

Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Meenali Gupta
517e513209 avahi: fix CVE-2023-38472
A vulnerability was found in Avahi. A reachable assertion
exists in the avahi_rdata_parse() function.

(From OE-Core rev: 1b699ac1e8519cd488ee033919b9205283b7b465)

Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Meenali Gupta
973020ce12 avahi: fix CVE-2023-38469
A vulnerability was found in Avahi, where a reachable assertion
exists in avahi_dns_packet_append_record.

(From OE-Core rev: 8bd1980fd4175be3dd68987f8c5653409b76f544)

Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Meenali Gupta
f2c0b5cef2 avahi: fix CVE-2023-38470
A vulnerability was found in Avahi. A reachable assertion exists
in the avahi_escape_label() function.

(From OE-Core rev: bc211ae0e597d40f938f9a25bfc0fcbb228d90b6)

Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Meenali Gupta
1867c0de35 avahi: fix CVE-2023-38471
A vulnerability was found in Avahi. A reachable assertion exists
in the dbus_set_host_name function.

(From OE-Core rev: f4286c3a3070fd50e334a48f1b7c068d34747115)

Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Niranjan Pradhan
24646e55b2 qemu 6.2.0: Fix CVE-2023-1544
Upstream Repository: https://gitlab.com/qemu-project/qemu.git

Bug Details: https://nvd.nist.gov/vuln/detail/CVE-2023-1544
Type: Security Fix
CVE: CVE-2023-1544
Score: 6.3
Patch: https://gitlab.com/qemu-project/qemu/-/commit/85fc35afa93c

(From OE-Core rev: d019fcc99c542d49be6e1615a5c75f88f8ff5a52)

Signed-off-by: Niranjan Pradhan <nirpradh@cisco.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Yogita Urade
f9527fb2ac grub: fix CVE-2023-4692
An out-of-bounds write flaw was found in grub2's NTFS filesystem driver.
This issue may allow an attacker to present a specially crafted NTFS
filesystem image, leading to grub's heap metadata corruption. In some
circumstances, the attack may also corrupt the UEFI firmware heap metadata.
As a result, arbitrary code execution and secure boot protection bypass
may be achieved.

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-4692
https://bugzilla.redhat.com/show_bug.cgi?id=2236613

(From OE-Core rev: c89835b37366dde6c74f8221fd5a295ecabf8225)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Vijay Anusuri
e447b4139f tiff: Backport fix for CVE-2023-41175
Upstream-Status: Backport [6e2dac5f90]

Reference: https://security-tracker.debian.org/tracker/CVE-2023-41175

(From OE-Core rev: dcdcd9dcab750927701deb78b798c8fedeec67e0)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-28 05:00:32 -10:00
Narpat Mali
f60fb52055 python3-jinja2: Fixed ptest result output as per the standard
There was an extra space between the result and ':'.
After removing extra space, the ptest result will be:
result : testname -> result: testname

(From OE-Core rev: 4bb6373e5f4a1330a063d1afe855d6c24d5461e7)

Signed-off-by: Narpat Mali <narpat.mali@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-14 06:49:11 -10:00
Ross Burton
2e3c89e255 cve-check: don't warn if a patch is remote
We don't make do_cve_check depend on do_unpack because that would be a
waste of time 99% of the time.  The compromise here is that we can't
scan remote patches for issues, but this isn't a problem so downgrade
the warning to a note.

Also move the check for CVEs in the filename before the local file check
so that even with remote patches, we still check for CVE references in
the name.

(From OE-Core rev: b4e5e02ab5dcc6b32810aa88c371799777dd8821)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0251cad677579f5b4dcc25fa2f8552c6040ac2cf)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-14 06:49:11 -10:00
Ross Burton
9200c6b310 cve-check: slightly more verbose warning when adding the same package twice
Occasionally the cve-check tool will warn that it is adding the same
package twice.  Knowing what this package is might be the first step
towards understanding where this message comes from.

(From OE-Core rev: 4b449d5dcbaebb0690a55cf45e3a735c2d8df101)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c1179faec8583a8b7df192cf1cbf221f0e3001fc)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-14 06:49:11 -10:00
Ross Burton
ae28221a40 cve-check: sort the package list in the JSON report
The JSON report generated by the cve-check class is basically a huge
list of packages.  This list of packages is, however, unsorted.

To make things easier for people comparing the JSON, or more
specifically for git when archiving the JSON over time in a git
repository, we can sort the list by package name.

(From OE-Core rev: 1245649fd2725915154648a98584c908da07af18)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e9861be0e5020830c2ecc24fd091f4f5b05da036)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-14 06:49:11 -10:00
Vijay Anusuri
4e227eaf1c xserver-xorg: Fix for CVE-2023-5367 and CVE-2023-5380
Upstream-Status: Backport
[541ab2ecd4
&
564ccf2ce9]

(From OE-Core rev: afc30fc07d806c3f0d2192454344995f19e68575)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-14 06:49:11 -10:00
Soumya Sambu
9f0a8901d1 libwebp: Fix CVE-2023-4863
Heap buffer overflow in WebP in Google Chrome prior to 116.0.5845.187
allowed a remote attacker to perform an out of bounds memory write via
a crafted HTML page.

Removed CVE-2023-5129.patch as CVE-2023-5129 is duplicate of CVE-2023-4863.

CVE: CVE-2023-4863

References:
https://nvd.nist.gov/vuln/detail/CVE-2023-4863
https://security-tracker.debian.org/tracker/CVE-2023-4863
https://bugzilla.redhat.com/show_bug.cgi?id=2238431#c12

(From OE-Core rev: dbef9bf56fec551b6d1428fcefdadb500172940a)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-14 06:49:11 -10:00
Sanjana
f9a95adda5 binutils: Fix CVE-2022-47010
(From OE-Core rev: 3fd5701a861aa263ad1d912bfd44d4d5826d11a1)

Signed-off-by: Sanjana <Sanjana.Venkatesh@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-14 06:49:11 -10:00
Samantha Jalabert
a171408008 bitbake: Fix disk space monitoring on cephfs
Error occured while running bitbake on cephfs:

WARNING: The free inode of path is running low (-0.001K left)
ERROR: Immediately halt since the disk space monitor action is "HALT"!

(Bitbake rev: a7f6c3e67bd9170e93b2b94676e84018faf0df91)

Signed-off-by: Samantha Jalabert <samantha.jalabert@syslinbit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-09 04:41:17 -10:00
Denys Dmytriyenko
8d57eddc82 bitbake: runqueue: convert deferral messages from bb.note to bb.debug
Using multiconfig to target baremetal pieces of the system and building
corresponding toolchains for them results in hundreds and hundreds of
"Deferring %s after %s" and "Deferred task %s now buildable".

To clean up the output and to reduce risk of missing important warnings,
convert these notice messages to debug messages.

(Bitbake rev: 3505d8d8c02b041946670ab6bc5751e54fe292ff)

Signed-off-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 64bc00a46d1aacc23fe7e8d9a46a126f3a4bc318)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-09 04:41:17 -10:00
Peter Kjellerstedt
2fc0a78176 bitbake: tinfoil: Do not fail when logging is disabled and full config is used
If Tinfoil is initialized with setup_logging = False and
Tinfoil.prepare() is called with config_only = False, then it fails
because self.localhandlers is only initialized when
setup_logging = True.

This is seen with, e.g., `bitbake-getvar -q -r busybox MACHINE`:

  Traceback (most recent call last):
    File ".../bitbake/bin/bitbake-getvar", line 41, in <module>
      tinfoil.prepare(quiet=2)
    File ".../bitbake/lib/bb/tinfoil.py", line 390, in prepare
      for handler in self.localhandlers:
  AttributeError: 'Tinfoil' object has no attribute 'localhandlers'.
  Did you mean: 'oldhandlers'?

(Bitbake rev: e452c6d7ba5bb4f78a1d2bfb742794efdf171dbc)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 616101ddb630e2c9975022068b52a87c4cf647f6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-09 04:41:17 -10:00
Peter Kjellerstedt
0207478c7b bitbake: bitbake-getvar: Make --quiet work with --recipe
Initializing Tinfoil with setup_logging = False only has an effect when
recipe parsing is not needed. To make it work regardless of if --recipe
is used, manipulate the quiet parameter to Tinfoil.prepare() instead.

(Bitbake rev: 161ab0d5bab74732e12d490cee50e14295be0a9f)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 71ee69a20f21f3d37f4f060a7d8e87d9f1dc6aa1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2023-11-09 04:41:17 -10:00
174 changed files with 7941 additions and 2363 deletions

View File

@@ -36,9 +36,10 @@ if __name__ == "__main__":
print("--flag only makes sense with --value")
sys.exit(1)
with bb.tinfoil.Tinfoil(tracking=True, setup_logging=not args.quiet) as tinfoil:
quiet = args.quiet
with bb.tinfoil.Tinfoil(tracking=True, setup_logging=not quiet) as tinfoil:
if args.recipe:
tinfoil.prepare(quiet=2)
tinfoil.prepare(quiet=3 if quiet else 2)
d = tinfoil.parse_recipe(args.recipe)
else:
tinfoil.prepare(quiet=2, config_only=True)

View File

@@ -56,25 +56,24 @@ def main():
nonlocal missed_hashes
nonlocal max_time
client = hashserv.create_client(args.address)
with hashserv.create_client(args.address) as client:
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
for i in range(args.requests):
taskhash = hashlib.sha256()
taskhash.update(args.taskhash_seed.encode('utf-8'))
taskhash.update(str(i).encode('utf-8'))
start_time = time.perf_counter()
l = client.get_unihash(METHOD, taskhash.hexdigest())
elapsed = time.perf_counter() - start_time
start_time = time.perf_counter()
l = client.get_unihash(METHOD, taskhash.hexdigest())
elapsed = time.perf_counter() - start_time
with lock:
if l:
found_hashes += 1
else:
missed_hashes += 1
with lock:
if l:
found_hashes += 1
else:
missed_hashes += 1
max_time = max(elapsed, max_time)
pbar.update()
max_time = max(elapsed, max_time)
pbar.update()
max_time = 0
found_hashes = 0
@@ -152,9 +151,8 @@ def main():
func = getattr(args, 'func', None)
if func:
client = hashserv.create_client(args.address)
return func(args, client)
with hashserv.create_client(args.address) as client:
return func(args, client)
return 0

View File

@@ -15,6 +15,13 @@ import sys
if sys.version_info < (3, 6, 0):
raise RuntimeError("Sorry, python 3.6.0 or later is required for this version of bitbake")
if sys.version_info < (3, 10, 0):
# With python 3.8 and 3.9, we see errors of "libgcc_s.so.1 must be installed for pthread_cancel to work"
# https://stackoverflow.com/questions/64797838/libgcc-s-so-1-must-be-installed-for-pthread-cancel-to-work
# https://bugs.ams1.psf.io/issue42888
# so ensure libgcc_s is loaded early on
import ctypes
libgcc_s = ctypes.CDLL('libgcc_s.so.1')
class BBHandledException(Exception):
"""

View File

@@ -126,6 +126,12 @@ class AsyncClient(object):
{'ping': {}}
)
async def __aenter__(self):
return self
async def __aexit__(self, exc_type, exc_value, traceback):
await self.close()
class Client(object):
def __init__(self):
@@ -176,3 +182,10 @@ class Client(object):
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, traceback):
self.close()
return False

View File

@@ -310,6 +310,7 @@ def build_dependencies(key, keys, shelldeps, varflagsexcl, ignored_vars, d):
value += "\n_remove of %s" % r
deps |= r2.references
deps = deps | (keys & r2.execs)
value = handle_contains(value, r2.contains, exclusions, d)
return value
if "vardepvalue" in varflags:

View File

@@ -234,9 +234,10 @@ class diskMonitor:
freeInode = st.f_favail
if minInode and freeInode < minInode:
# Some filesystems use dynamic inodes so can't run out
# (e.g. btrfs). This is reported by the inode count being 0.
if st.f_files == 0:
# Some filesystems use dynamic inodes so can't run out.
# This is reported by the inode count being 0 (btrfs) or the free
# inode count being -1 (cephfs).
if st.f_files == 0 or st.f_favail == -1:
self.devDict[k][2] = None
continue
# Always show warning, the self.checked would always be False if the action is WARN

View File

@@ -198,15 +198,27 @@ class RunQueueScheduler(object):
curr_cpu_pressure = cpu_pressure_fds.readline().split()[4].split("=")[1]
curr_io_pressure = io_pressure_fds.readline().split()[4].split("=")[1]
curr_memory_pressure = memory_pressure_fds.readline().split()[4].split("=")[1]
exceeds_cpu_pressure = self.rq.max_cpu_pressure and (float(curr_cpu_pressure) - float(self.prev_cpu_pressure)) > self.rq.max_cpu_pressure
exceeds_io_pressure = self.rq.max_io_pressure and (float(curr_io_pressure) - float(self.prev_io_pressure)) > self.rq.max_io_pressure
exceeds_memory_pressure = self.rq.max_memory_pressure and (float(curr_memory_pressure) - float(self.prev_memory_pressure)) > self.rq.max_memory_pressure
now = time.time()
if now - self.prev_pressure_time > 1.0:
tdiff = now - self.prev_pressure_time
psi_accumulation_interval = 1.0
cpu_pressure = (float(curr_cpu_pressure) - float(self.prev_cpu_pressure)) / tdiff
io_pressure = (float(curr_io_pressure) - float(self.prev_io_pressure)) / tdiff
memory_pressure = (float(curr_memory_pressure) - float(self.prev_memory_pressure)) / tdiff
exceeds_cpu_pressure = self.rq.max_cpu_pressure and cpu_pressure > self.rq.max_cpu_pressure
exceeds_io_pressure = self.rq.max_io_pressure and io_pressure > self.rq.max_io_pressure
exceeds_memory_pressure = self.rq.max_memory_pressure and memory_pressure > self.rq.max_memory_pressure
if tdiff > psi_accumulation_interval:
self.prev_cpu_pressure = curr_cpu_pressure
self.prev_io_pressure = curr_io_pressure
self.prev_memory_pressure = curr_memory_pressure
self.prev_pressure_time = now
pressure_state = (exceeds_cpu_pressure, exceeds_io_pressure, exceeds_memory_pressure)
pressure_values = (round(cpu_pressure,1), self.rq.max_cpu_pressure, round(io_pressure,1), self.rq.max_io_pressure, round(memory_pressure,1), self.rq.max_memory_pressure)
if hasattr(self, "pressure_state") and pressure_state != self.pressure_state:
bb.note("Pressure status changed to CPU: %s, IO: %s, Mem: %s (CPU: %s/%s, IO: %s/%s, Mem: %s/%s) - using %s/%s bitbake threads" % (pressure_state + pressure_values + (len(self.rq.runq_running.difference(self.rq.runq_complete)), self.rq.number_tasks)))
self.pressure_state = pressure_state
return (exceeds_cpu_pressure or exceeds_io_pressure or exceeds_memory_pressure)
return False
@@ -1980,12 +1992,12 @@ class RunQueueExecute:
# Allow the next deferred task to run. Any other deferred tasks should be deferred after that task.
# We shouldn't allow all to run at once as it is prone to races.
if not found:
bb.note("Deferred task %s now buildable" % t)
bb.debug(1, "Deferred task %s now buildable" % t)
del self.sq_deferred[t]
update_scenequeue_data([t], self.sqdata, self.rqdata, self.rq, self.cooker, self.stampcache, self, summary=False)
found = t
else:
bb.note("Deferring %s after %s" % (t, found))
bb.debug(1, "Deferring %s after %s" % (t, found))
self.sq_deferred[t] = found
def task_complete(self, task):
@@ -2892,7 +2904,7 @@ def build_scenequeue_data(sqdata, rqdata, rq, cooker, stampcache, sqrq):
sqdata.hashes[h] = tid
else:
sqrq.sq_deferred[tid] = sqdata.hashes[h]
bb.note("Deferring %s after %s" % (tid, sqdata.hashes[h]))
bb.debug(1, "Deferring %s after %s" % (tid, sqdata.hashes[h]))
update_scenequeue_data(sqdata.sq_revdeps, sqdata, rqdata, rq, cooker, stampcache, sqrq, summary=True)

View File

@@ -430,6 +430,32 @@ esac
self.assertEqual(deps, set(["TESTVAR2"]))
self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval3', 'anothervalue'])
def test_contains_vardeps_override_operators(self):
# Check override operators handle dependencies correctly with the contains functionality
expr_plain = 'testval'
expr_prepend = '${@bb.utils.filter("TESTVAR1", "testval1", d)} '
expr_append = ' ${@bb.utils.filter("TESTVAR2", "testval2", d)}'
expr_remove = '${@bb.utils.contains("TESTVAR3", "no-testval", "testval", "", d)}'
# Check dependencies
self.d.setVar('ANOTHERVAR', expr_plain)
self.d.prependVar('ANOTHERVAR', expr_prepend)
self.d.appendVar('ANOTHERVAR', expr_append)
self.d.setVar('ANOTHERVAR:remove', expr_remove)
self.d.setVar('TESTVAR1', 'blah')
self.d.setVar('TESTVAR2', 'testval2')
self.d.setVar('TESTVAR3', 'no-testval')
deps, values = bb.data.build_dependencies("ANOTHERVAR", set(self.d.keys()), set(), set(), set(), self.d)
self.assertEqual(sorted(values.splitlines()),
sorted([
expr_prepend + expr_plain + expr_append,
'_remove of ' + expr_remove,
'TESTVAR1{testval1} = Unset',
'TESTVAR2{testval2} = Set',
'TESTVAR3{no-testval} = Set',
]))
# Check final value
self.assertEqual(self.d.getVar('ANOTHERVAR').split(), ['testval2'])
#Currently no wildcard support
#def test_vardeps_wildcards(self):
# self.d.setVar("oe_libinstall", "echo test")

View File

@@ -324,11 +324,11 @@ class Tinfoil:
self.recipes_parsed = False
self.quiet = 0
self.oldhandlers = self.logger.handlers[:]
self.localhandlers = []
if setup_logging:
# This is the *client-side* logger, nothing to do with
# logging messages from the server
bb.msg.logger_create('BitBake', output)
self.localhandlers = []
for handler in self.logger.handlers:
if handler not in self.oldhandlers:
self.localhandlers.append(handler)

View File

@@ -344,9 +344,9 @@ def auto_shutdown():
def ping(host, port):
from . import client
conn = client.PRClient()
conn.connect_tcp(host, port)
return conn.ping()
with client.PRClient() as conn:
conn.connect_tcp(host, port)
return conn.ping()
def connect(host, port):
from . import client

View File

@@ -11,7 +11,7 @@ import os
import re
import logging
import json
import subprocess
import glob
from collections import Counter
from orm.models import Project, ProjectTarget, Build, Layer_Version
@@ -234,13 +234,11 @@ class XhrSetDefaultImageUrl(View):
def scan_layer_content(layer,layer_version):
# if this is a local layer directory, we can immediately scan its content
if layer.local_source_dir:
if os.path.isdir(layer.local_source_dir):
try:
# recipes-*/*/*.bb
cmd = '%s %s' % ('ls', os.path.join(layer.local_source_dir,'recipes-*/*/*.bb'))
recipes_list = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,stderr=subprocess.STDOUT).stdout.read()
recipes_list = recipes_list.decode("utf-8").strip()
if recipes_list and 'No such' not in recipes_list:
recipes_list = glob.glob(os.path.join(layer.local_source_dir, 'recipes-*/*/*.bb'))
for recipe in recipes_list:
for recipe in recipes_list.split('\n'):
recipe_path = recipe[recipe.rfind('recipes-'):]
recipe_name = recipe[recipe.rfind('/')+1:].replace('.bb','')
@@ -260,6 +258,9 @@ def scan_layer_content(layer,layer_version):
except Exception as e:
logger.warning("ERROR:scan_layer_content: %s" % e)
else:
logger.warning("ERROR: wrong path given")
raise KeyError("local_source_dir")
class XhrLayer(View):
""" Delete, Get, Add and Update Layer information

View File

@@ -254,10 +254,10 @@ an entire Linux distribution, including the toolchain, from source.
To use such mirrors, uncomment the below lines in your ``conf/local.conf``
file in the :term:`Build Directory`::
BB_SIGNATURE_HANDLER = "OEEquivHash"
BB_HASHSERVE = "auto"
BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687"
SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"
BB_HASHSERVE = "auto"
BB_SIGNATURE_HANDLER = "OEEquivHash"
#. **Start the Build:** Continue with the following command to build an OS
image for the target, which is ``core-image-sato`` in this example:

View File

@@ -250,6 +250,18 @@ Recipes need to define both the :term:`LICENSE` and
correct string that you can substitute into the recipe file for a
subsequent build.
License Updates
~~~~~~~~~~~~~~~
When you change the :term:`LICENSE` or :term:`LIC_FILES_CHKSUM` in the recipe
you need to briefly explain the reason for the change via a ``License-Update:``
tag. Often it's quite trivial, such as::
License-Update: copyright years refreshed
Less often, the actual licensing terms themselves will have changed. If so, do
try to link to upstream making/justifying that decision.
Tips and Guidelines for Writing Recipes
---------------------------------------

View File

@@ -57,7 +57,7 @@ Set up Git
The first thing to do is to install Git packages. Here is an example
on Debian and Ubuntu::
sudo aptitude install git-core git-email
sudo apt install git-core git-email
Then, you need to set a name and e-mail address that Git will
use to identify your commits::
@@ -420,7 +420,7 @@ or any layer other than :oe_git:`openembedded-core </openembedded-core/>`,
please add the appropriate prefix so that it is clear which layer the patch is intended
to be applied to::
git send-email --subject-prefix="meta-oe][PATCH" ...
git format-patch --subject-prefix="meta-oe][PATCH" ...
.. note::

View File

@@ -32,6 +32,10 @@ build host running Linux.
OpenEmbedded build system, see the
:doc:`/brief-yoctoprojectqs/index` document.
- You can also use the `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension for Visual Studio Code to build images.
The build process creates an entire Linux distribution from source and
places it in your :term:`Build Directory` under ``tmp/deploy/images``. For
detailed information on the build process using BitBake, see the

View File

@@ -327,7 +327,7 @@ BitBake has determined by doing the following:
the task. This list also includes indirect dependencies from
variables depending on other variables, recursively::
Task dependencies: ['PV', 'SRCREV', 'SRC_URI', 'SRC_URI[md5sum]', 'SRC_URI[sha256sum]', 'base_do_fetch']
Task dependencies: ['PV', 'SRCREV', 'SRC_URI', 'SRC_URI[sha256sum]', 'base_do_fetch']
.. note::

View File

@@ -313,7 +313,7 @@ Logo for your layer and application. The process consists of two parts:
successful compatibility registration.
#. Completion of an application acceptance form, which you can find at
:yocto_home:`/webform/yocto-project-compatible-registration`.
:yocto_home:`/compatible-registration/`.
To be granted permission to use the logo, you need to satisfy the
following:
@@ -337,7 +337,7 @@ application, you can use the Yocto Project Compatibility Logo with your
layer and the application that uses your layer.
To access the form, use this link:
:yocto_home:`/webform/yocto-project-compatible-registration`.
:yocto_home:`/compatible-registration`.
Follow the instructions on the form to complete your application.
The application consists of the following sections:

View File

@@ -303,28 +303,33 @@ If your :term:`SRC_URI` statement includes URLs pointing to individual files
fetched from a remote server other than a version control system,
BitBake attempts to verify the files against checksums defined in your
recipe to ensure they have not been tampered with or otherwise modified
since the recipe was written. Two checksums are used:
``SRC_URI[md5sum]`` and ``SRC_URI[sha256sum]``.
since the recipe was written. Multiple checksums are supported:
``SRC_URI[md5sum]``, ``SRC_URI[sha1sum]``, ``SRC_URI[sha256sum]``.
``SRC_URI[sha384sum]`` and ``SRC_URI[sha512sum]``, but only
``SRC_URI[sha256sum]`` is commonly used.
.. note::
``SRC_URI[md5sum]`` used to also be commonly used, but it is deprecated
and should be replaced by ``SRC_URI[sha256sum]`` when updating existing
recipes.
If your :term:`SRC_URI` variable points to more than a single URL (excluding
SCM URLs), you need to provide the ``md5`` and ``sha256`` checksums for
each URL. For these cases, you provide a name for each URL as part of
the :term:`SRC_URI` and then reference that name in the subsequent checksum
statements. Here is an example combining lines from the files
``git.inc`` and ``git_2.24.1.bb``::
SCM URLs), you need to provide the ``sha256`` checksum for each URL. For these
cases, you provide a name for each URL as part of the :term:`SRC_URI` and then
reference that name in the subsequent checksum statements. Here is an example
combining lines from the files ``git.inc`` and ``git_2.24.1.bb``::
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"
SRC_URI[tarball.md5sum] = "166bde96adbbc11c8843d4f8f4f9811b"
SRC_URI[tarball.sha256sum] = "ad5334956301c86841eb1e5b1bb20884a6bad89a10a6762c958220c7cf64da02"
SRC_URI[manpages.md5sum] = "31c2272a8979022497ba3d4202df145d"
SRC_URI[manpages.sha256sum] = "9a7ae3a093bea39770eb96ca3e5b40bff7af0b9f6123f089d7821d0e5b8e1230"
Proper values for ``md5`` and ``sha256`` checksums might be available
The proper value for the ``sha256`` checksum might be available together
with other signatures on the download page for the upstream source (e.g.
``md5``, ``sha1``, ``sha256``, ``GPG``, and so forth). Because the
OpenEmbedded build system only deals with ``sha256sum`` and ``md5sum``,
OpenEmbedded build system typically only deals with ``sha256sum``,
you should verify all the signatures you find by hand.
If no :term:`SRC_URI` checksums are specified when you attempt to build the

View File

@@ -332,7 +332,7 @@ You can start the tests automatically or manually:
bitbake core-image-sato
- *Manually running tests:* To manually run the tests, first globally
inherit the :ref:`ref-classes-testimage*` class by editing your
inherit the :ref:`ref-classes-testimage` class by editing your
``local.conf`` file::
IMAGE_CLASSES += "testimage"
@@ -459,7 +459,7 @@ layer's ``layer.conf`` file as normal). Just remember the following:
directory.
To create a new test, start by copying an existing module (e.g.
``syslog.py`` or ``gcc.py`` are good ones to use). Test modules can use
``oe_syslog.py`` or ``gcc.py`` are good ones to use). Test modules can use
code from ``meta/lib/oeqa/utils``, which are helper classes.
.. note::

View File

@@ -332,7 +332,10 @@ to use the Extensible SDK, see the ":doc:`/sdk-manual/extensible`" Chapter in th
Project Application Development and the Extensible Software Development
Kit (eSDK) manual. If you want to work on the kernel, see the :doc:`/kernel-dev/index`. If you are going to use
Toaster, see the ":doc:`/toaster-manual/setup-and-use`"
section in the Toaster User Manual.
section in the Toaster User Manual. If you are a VSCode user, you can configure
the `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension accordingly.
Setting Up to Use CROss PlatformS (CROPS)
-----------------------------------------
@@ -424,7 +427,10 @@ section. If you are going to use the Extensible SDK container, see the
Project Application Development and the Extensible Software Development
Kit (eSDK) manual. If you are going to use the Toaster container, see
the ":doc:`/toaster-manual/setup-and-use`"
section in the Toaster User Manual.
section in the Toaster User Manual. If you are a VSCode user, you can configure
the `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension accordingly.
Setting Up to Use Windows Subsystem For Linux (WSLv2)
-----------------------------------------------------
@@ -554,7 +560,10 @@ Extensible SDK container, see the ":doc:`/sdk-manual/extensible`" Chapter in the
Project Application Development and the Extensible Software Development
Kit (eSDK) manual. If you are going to use the Toaster container, see
the ":doc:`/toaster-manual/setup-and-use`"
section in the Toaster User Manual.
section in the Toaster User Manual. If you are a VSCode user, you can configure
the `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension accordingly.
Locating Yocto Project Source Files
===================================
@@ -642,7 +651,7 @@ Follow these steps to locate and download a particular tarball:
Using the Downloads Page
------------------------
The :yocto_home:`Yocto Project Website <>` uses a "DOWNLOADS" page
The :yocto_home:`Yocto Project Website <>` uses a "RELEASES" page
from which you can locate and download tarballs of any Yocto Project
release. Rather than Git repositories, these files represent snapshot
tarballs similar to the tarballs located in the Index of Releases
@@ -651,11 +660,13 @@ described in the ":ref:`dev-manual/start:accessing index of releases`" section.
1. *Go to the Yocto Project Website:* Open The
:yocto_home:`Yocto Project Website <>` in your browser.
2. *Get to the Downloads Area:* Select the "DOWNLOADS" item from the
pull-down "SOFTWARE" tab menu near the top of the page.
#. *Get to the Downloads Area:* Select the "RELEASES" item from the
pull-down "DEVELOPMENT" tab menu near the top of the page.
3. *Select a Yocto Project Release:* Use the menu next to "RELEASE" to
display and choose a recent or past supported Yocto Project release
#. *Select a Yocto Project Release:* On the top of the "RELEASE" page currently
supported releases are displayed, further down past supported Yocto Project
releases are visible. The "Download" links in the rows of the table there
will lead to the download tarballs for the release
(e.g. &DISTRO_NAME_NO_CAP;, &DISTRO_NAME_NO_CAP_MINUS_ONE;, and so forth).
.. note::
@@ -666,9 +677,9 @@ described in the ":ref:`dev-manual/start:accessing index of releases`" section.
You can use the "RELEASE ARCHIVE" link to reveal a menu of all Yocto
Project releases.
4. *Download Tools or Board Support Packages (BSPs):* From the
"DOWNLOADS" page, you can download tools or BSPs as well. Just scroll
down the page and look for what you need.
#. *Download Tools or Board Support Packages (BSPs):* Next to the tarballs you
will find download tools or BSPs as well. Just select a Yocto Project
release and look for what you need.
Cloning and Checking Out Branches
=================================

View File

@@ -113,7 +113,7 @@ The following steps describe how to set up the AUH utility:
``upgrade-helper/work/recipe/buildhistory-diff.txt`` file found in
your :term:`Build Directory`.
- If you want to enable testing through the :ref:`ref-classes-testimage*`
- If you want to enable testing through the :ref:`ref-classes-testimage`
class, which is optional, you need to have the following set in
your ``conf/local.conf`` file::

View File

@@ -240,7 +240,7 @@ Automated Image Testing
-----------------------
A new automated image testing framework has been added through the
:ref:`ref-classes-testimage*` classes. This
:ref:`ref-classes-testimage` classes. This
framework replaces the older ``imagetest-qemu`` framework.
You can learn more about performing automated image tests in the

View File

@@ -27,7 +27,7 @@ Staging Directories in Sysroot Has Been Simplified
The way directories are staged in sysroot has been simplified and
introduces the new :term:`SYSROOT_DIRS`,
:term:`SYSROOT_DIRS_NATIVE`, and ``SYSROOT_DIRS_BLACKLIST``
(replaced by :term:`SYSROOT_DIRS_IGNORE` in version 3.5). See the
(replaced by :term:`SYSROOT_DIRS_IGNORE` in version 4.0). See the
:oe_lists:`v2 patch series on the OE-Core Mailing List
</pipermail/openembedded-core/2016-May/121365.html>`
for additional information.
@@ -442,7 +442,7 @@ The following miscellaneous changes have occurred:
- :ref:`ref-classes-image`: Renamed COMPRESS(ION) to CONVERSION. This change
means that ``COMPRESSIONTYPES``, ``COMPRESS_DEPENDS`` and
``COMPRESS_CMD`` are deprecated in favor of ``CONVERSIONTYPES``,
``CONVERSION_DEPENDS`` and ``CONVERSION_CMD``. The ``COMPRESS*``
``CONVERSION_DEPENDS`` and :term:`CONVERSION_CMD`. The ``COMPRESS*``
variable names will still work in the 2.2 release but metadata that
does not need to be backwards-compatible should be changed to use the
new names as the ``COMPRESS*`` ones will be removed in a future

View File

@@ -301,7 +301,7 @@ The following are additional changes:
likely be removed in the next Yocto Project release.
- The ``vmdk``, ``vdi``, and ``qcow2`` image file types are now used in
conjunction with the "wic" image type through ``CONVERSION_CMD``.
conjunction with the "wic" image type through :term:`CONVERSION_CMD`.
Consequently, the equivalent image types are now ``wic.vmdk``,
``wic.vdi``, and ``wic.qcow2``, respectively.

View File

@@ -319,7 +319,7 @@ This section provides information about automatic testing changes:
practices now dictate that you use the
:term:`IMAGE_CLASSES` variable rather than the
:term:`INHERIT` variable when you inherit the
:ref:`testimage <ref-classes-testimage*>` and
:ref:`testimage <ref-classes-testimage>` and
:ref:`testsdk <ref-classes-testsdk>` classes used for automatic
testing.

View File

@@ -148,7 +148,7 @@ XML feeds that ``cve-check-tool`` was using, supports CVSSv3 scoring,
and makes other improvements.
Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced
by ``CVE_CHECK_WHITELIST`` (replaced by :term:`CVE_CHECK_IGNORE` in version 3.5).
by ``CVE_CHECK_WHITELIST`` (replaced by :term:`CVE_CHECK_IGNORE` in version 4.0).
.. _migration-3.0-bitbake-changes:

View File

@@ -252,8 +252,8 @@ Miscellaneous
- The previously deprecated ``COMPRESS_CMD`` and
``CVE_CHECK_CVE_WHITELIST`` variables have been removed. Use
``CONVERSION_CMD`` and ``CVE_CHECK_WHITELIST`` (replaced by
:term:`CVE_CHECK_IGNORE` in version 3.5) respectively
:term:`CONVERSION_CMD` and ``CVE_CHECK_WHITELIST`` (replaced by
:term:`CVE_CHECK_IGNORE` in version 4.0) respectively
instead.
- The obsolete ``oe_machinstall`` function previously provided in the

View File

@@ -20,3 +20,5 @@ Release 4.0 (kirkstone)
release-notes-4.0.11
release-notes-4.0.12
release-notes-4.0.13
release-notes-4.0.14
release-notes-4.0.15

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,189 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Release notes for Yocto-4.0.15 (Kirkstone)
------------------------------------------
Security Fixes in Yocto-4.0.15
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- avahi: Fix :cve:`2023-1981`, :cve:`2023-38469`, :cve:`2023-38470`, :cve:`2023-38471`, :cve:`2023-38472` and :cve:`2023-38473`
- binutils: Fix :cve:`2022-47007`, :cve:`2022-47010` and :cve:`2022-48064`
- bluez5: Fix :cve:`2023-45866`
- ghostscript: Ignore GhostPCL :cve:`2023-38560`
- gnutls: Fix :cve:`2023-5981`
- go: Ignore :cve:`2023-45283` and :cve:`2023-45284`
- grub: Fix :cve:`2023-4692` and :cve:`2023-4693`
- gstreamer1.0-plugins-bad: Fix :cve_mitre:`2023-44429`
- libsndfile: Fix :cve:`2022-33065`
- libwebp: Fix :cve:`2023-4863`
- openssl: Fix :cve:`2023-5678`
- python3-cryptography: Fix :cve:`2023-49083`
- qemu: Fix :cve:`2023-1544`
- sudo: :cve:`2023-42456` and :cve_mitre:`2023-42465`
- tiff: Fix :cve:`2023-41175`
- vim: Fix :cve:`2023-46246`, :cve:`2023-48231`, :cve:`2023-48232`, :cve:`2023-48233`, :cve:`2023-48234`, :cve:`2023-48235`, :cve:`2023-48236`, :cve:`2023-48237` and :cve:`2023-48706`
- xserver-xorg: Fix :cve:`2023-5367` and :cve:`2023-5380`
- xwayland: Fix :cve:`2023-5367`
Fixes in Yocto-4.0.15
~~~~~~~~~~~~~~~~~~~~~
- bash: changes to SIGINT handler while waiting for a child
- bitbake: Fix disk space monitoring on cephfs
- bitbake: bitbake-getvar: Make --quiet work with --recipe
- bitbake: runqueue.py: fix PSI check logic
- bitbake: runqueue: Add pressure change logging
- bitbake: runqueue: convert deferral messages from bb.note to bb.debug
- bitbake: runqueue: fix PSI check calculation
- bitbake: runqueue: show more pressure data
- bitbake: runqueue: show number of currently running bitbake threads when pressure changes
- bitbake: tinfoil: Do not fail when logging is disabled and full config is used
- build-appliance-image: Update to kirkstone head revision
- cve-check: don't warn if a patch is remote
- cve-check: slightly more verbose warning when adding the same package twice
- cve-check: sort the package list in the JSON report
- cve-exclusion_5.10.inc: update for 5.10.202
- go: Fix issue in DNS resolver
- goarch: Move Go architecture mapping to a library
- gstreamer1.0-plugins-base: enable glx/opengl support
- linux-yocto/5.10: update to v5.10.202
- manuals: update class references
- migration-guide: add release notes for 4.0.14
- native: Clear TUNE_FEATURES/ABIEXTENSION
- openssh: drop sudo from ptest dependencies
- overview-manual: concepts: Add Bitbake Tasks Map
- poky.conf: bump version for 4.0.15
- python3-jinja2: Fixed ptest result output as per the standard
- ref-manual: classes: explain cml1 class name
- ref-manual: update :term:`SDK_NAME` variable documentation
- ref-manual: variables: add :term:`RECIPE_MAINTAINER`
- ref-manual: variables: document OEQA_REPRODUCIBLE_* variables
- ref-manual: variables: mention new CDN for :term:`SSTATE_MIRRORS`
- rust-common: Set llvm-target correctly for cross SDK targets
- rust-cross-canadian: Fix ordering of target json config generation
- rust-cross/rust-common: Merge arm target handling code to fix cross-canadian
- rust-cross: Simplfy the rust_gen_target calls
- rust-llvm: Allow overriding LLVM target archs
- sdk-manual: extensible.rst: remove instructions for using SDK functionality directly in a yocto build
- sudo: upgrade to 1.9.15p2
- systemtap_git: fix used uninitialized error
- vim: Improve locale handling
- vim: Upgrade to 9.0.2130
- vim: use upstream generated .po files
Known Issues in Yocto-4.0.15
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-4.0.15
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Alexander Kanavin
- Archana Polampalli
- BELHADJ SALEM Talel
- Bruce Ashfield
- Chaitanya Vadrevu
- Chen Qi
- Deepthi Hemraj
- Denys Dmytriyenko
- Hitendra Prajapati
- Lee Chee Yang
- Li Wang
- Martin Jansa
- Meenali Gupta
- Michael Opdenacker
- Mikko Rapeli
- Narpat Mali
- Niko Mauno
- Ninad Palsule
- Niranjan Pradhan
- Paul Eggleton
- Peter Kjellerstedt
- Peter Marko
- Richard Purdie
- Ross Burton
- Samantha Jalabert
- Sanjana
- Soumya Sambu
- Steve Sakoman
- Tim Orling
- Vijay Anusuri
- Vivek Kumbhar
- Wenlin Kang
- Yogita Urade
Repositories / Downloads for Yocto-4.0.15
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.15 </poky/log/?h=yocto-4.0.15>`
- Git Revision: :yocto_git:`755632c2fcab43aa05cdcfa529727064b045073c </poky/commit/?id=755632c2fcab43aa05cdcfa529727064b045073c>`
- Release Artefact: poky-755632c2fcab43aa05cdcfa529727064b045073c
- sha: b40b43bd270d21a420c399981f9cfe0eb999f15e051fc2c89d124f249cdc0bd5
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.15/poky-755632c2fcab43aa05cdcfa529727064b045073c.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.15/poky-755632c2fcab43aa05cdcfa529727064b045073c.tar.bz2
openembedded-core
- Repository Location: :oe_git:`/openembedded-core`
- Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
- Tag: :oe_git:`yocto-4.0.15 </openembedded-core/log/?h=yocto-4.0.15>`
- Git Revision: :oe_git:`eea685e1caafd8e8121006d3f8b5d0b8a4f2a933 </openembedded-core/commit/?id=eea685e1caafd8e8121006d3f8b5d0b8a4f2a933>`
- Release Artefact: oecore-eea685e1caafd8e8121006d3f8b5d0b8a4f2a933
- sha: ddc3d4a2c8a097f2aa7132ae716affacc44b119c616a1eeffb7db56caa7fc79e
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.15/oecore-eea685e1caafd8e8121006d3f8b5d0b8a4f2a933.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.15/oecore-eea685e1caafd8e8121006d3f8b5d0b8a4f2a933.tar.bz2
meta-mingw
- Repository Location: :yocto_git:`/meta-mingw`
- Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.15 </meta-mingw/log/?h=yocto-4.0.15>`
- Git Revision: :yocto_git:`f6b38ce3c90e1600d41c2ebb41e152936a0357d7 </meta-mingw/commit/?id=f6b38ce3c90e1600d41c2ebb41e152936a0357d7>`
- Release Artefact: meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7
- sha: 7d57167c19077f4ab95623d55a24c2267a3a3fb5ed83688659b4c03586373b25
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.15/meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.15/meta-mingw-f6b38ce3c90e1600d41c2ebb41e152936a0357d7.tar.bz2
meta-gplv2
- Repository Location: :yocto_git:`/meta-gplv2`
- Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.15 </meta-gplv2/log/?h=yocto-4.0.15>`
- Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
- Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
- sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.15/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.15/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
bitbake
- Repository Location: :oe_git:`/bitbake`
- Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
- Tag: :oe_git:`yocto-4.0.15 </bitbake/log/?h=yocto-4.0.15>`
- Git Revision: :oe_git:`42a1c9fe698a03feb34c5bba223c6e6e0350925b </bitbake/commit/?id=42a1c9fe698a03feb34c5bba223c6e6e0350925b>`
- Release Artefact: bitbake-42a1c9fe698a03feb34c5bba223c6e6e0350925b
- sha: 64c684ccd661fa13e25c859dfc68d66bec79281da0f4f81b0d6a9995acb659b5
- Download Locations:
http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.15/bitbake-42a1c9fe698a03feb34c5bba223c6e6e0350925b.tar.bz2
http://mirrors.kernel.org/yocto/yocto/yocto-4.0.15/bitbake-42a1c9fe698a03feb34c5bba223c6e6e0350925b.tar.bz2
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.15 </yocto-docs/log/?h=yocto-4.0.15>`
- Git Revision: :yocto_git:`08fda7a5601393617b1ecfe89229459e14a90b1d </yocto-docs/commit/?id=08fda7a5601393617b1ecfe89229459e14a90b1d>`

View File

@@ -1026,7 +1026,7 @@ processing includes creation of a manifest file and optimizations.
The manifest file (``.manifest``) resides in the same directory as the
root filesystem image. This file lists out, line-by-line, the installed
packages. The manifest file is useful for the
:ref:`testimage <ref-classes-testimage*>` class,
:ref:`testimage <ref-classes-testimage>` class,
for example, to determine whether or not to run specific tests. See the
:term:`IMAGE_MANIFEST`
variable for additional information.
@@ -2230,3 +2230,173 @@ For more information, see the
BitBake User Manual. You can also reference the "`Why Not
Fakeroot? <https://github.com/wrpseudo/pseudo/wiki/WhyNotFakeroot>`__"
article for background information on Fakeroot and Pseudo.
BitBake Tasks Map
=================
To understand how BitBake operates in the build directory and environment
we can consider the following recipes and diagram, to have full picture
about the tasks that BitBake runs to generate the final package file
for the recipe.
We will have two recipes as an example:
- ``libhello``: A recipe that provides a shared library
- ``sayhello``: A recipe that uses ``libhello`` library to do its job
.. note::
``sayhello`` depends on ``libhello`` at compile time as it needs the shared
library to do the dynamic linking process. It also depends on it at runtime
as the shared library loader needs to find the library.
For more details about dependencies check :ref:`ref-varlocality-recipe-dependencies`.
``libhello`` sources are as follows:
- ``LICENSE``: This is the license associated with this library
- ``Makefile``: The file used by ``make`` to build the library
- ``hellolib.c``: The implementation of the library
- ``hellolib.h``: The C header of the library
``sayhello`` sources are as follows:
- ``LICENSE``: This is the license associated with this project
- ``Makefile``: The file used by ``make`` to build the project
- ``sayhello.c``: The source file of the project
Before presenting the contents of each file, here are the steps
that we need to follow to accomplish what we want in the first place,
which is integrating ``sayhello`` in our root file system:
#. Create a Git repository for each project with the corresponding files
#. Create a recipe for each project
#. Make sure that ``sayhello`` recipe :term:`DEPENDS` on ``libhello``
#. Make sure that ``sayhello`` recipe :term:`RDEPENDS` on ``libhello``
#. Add ``sayhello`` to :term:`IMAGE_INSTALL` to integrate it into
the root file system
The following are the contents of ``libhello/Makefile``::
LIB=libhello.so
all: $(LIB)
$(LIB): hellolib.o
$(CC) $< -Wl,-soname,$(LIB).1 -fPIC $(LDFLAGS) -shared -o $(LIB).1.0
%.o: %.c
$(CC) -c $<
clean:
rm -rf *.o *.so*
.. note::
When creating shared libraries, it is strongly recommended to follow the Linux
conventions and guidelines (see `this article
<https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html>`__
for some background).
.. note::
When creating ``Makefile`` files, it is strongly recommended to use ``CC``, ``LDFLAGS``
and ``CFLAGS`` as BitBake will set them as environment variables according
to your build configuration.
The following are the contents of ``libhello/hellolib.h``::
#ifndef HELLOLIB_H
#define HELLOLIB_H
void Hello();
#endif
The following are the contents of ``libhello/hellolib.c``::
#include <stdio.h>
void Hello(){
puts("Hello from a Yocto demo \n");
}
The following are the contents of ``sayhello/Makefile``::
EXEC=sayhello
LDFLAGS += -lhello
all: $(EXEC)
$(EXEC): sayhello.c
$(CC) $< $(LDFLAGS) $(CFLAGS) -o $(EXEC)
clean:
rm -rf $(EXEC) *.o
The following are the contents of ``sayhello/sayhello.c``::
#include <hellolib.h>
int main(){
Hello();
return 0;
}
The following are the contents of ``libhello_0.1.bb``::
SUMMARY = "Hello demo library"
DESCRIPTION = "Hello shared library used in Yocto demo"
# NOTE: Set the License according to the LICENSE file of your project
# and then add LIC_FILES_CHKSUM accordingly
LICENSE = "CLOSED"
# Assuming the branch is main
# Change <username> accordingly
SRC_URI = "git://github.com/<username>/libhello;branch=main;protocol=https"
S = "${WORKDIR}/git"
do_install(){
install -d ${D}${includedir}
install -d ${D}${libdir}
install hellolib.h ${D}${includedir}
oe_soinstall ${PN}.so.${PV} ${D}${libdir}
}
The following are the contents of ``sayhello_0.1.bb``::
SUMMARY = "SayHello demo"
DESCRIPTION = "SayHello project used in Yocto demo"
# NOTE: Set the License according to the LICENSE file of your project
# and then add LIC_FILES_CHKSUM accordingly
LICENSE = "CLOSED"
# Assuming the branch is main
# Change <username> accordingly
SRC_URI = "git://github.com/<username>/sayhello;branch=main;protocol=https"
DEPENDS += "libhello"
RDEPENDS:${PN} += "libhello"
S = "${WORKDIR}/git"
do_install(){
install -d ${D}/usr/bin
install -m 0700 sayhello ${D}/usr/bin
}
After placing the recipes in a custom layer we can run ``bitbake sayhello``
to build the recipe.
The following diagram shows the sequences of tasks that BitBake
executes to accomplish that.
.. image:: svg/bitbake_tasks_map.*
:width: 100%

View File

@@ -132,6 +132,14 @@ are several ways of working in the Yocto Project environment:
Toaster and on how to use Toaster in general, see the
:doc:`/toaster-manual/index`.
- *Using the VSCode Extension:* You can use the `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension for Visual Studio Code to start your BitBake builds through a
graphical user interface.
Learn more about the VSCode Extension on the `extension's marketplace page
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__.
Yocto Project Source Repositories
=================================

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 197 KiB

View File

@@ -340,6 +340,18 @@ the Yocto Project:
view information about builds. For information on Toaster, see the
:doc:`/toaster-manual/index`.
- *VSCode IDE Extension:* The `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension for Visual Studio Code provides a rich set of features for working
with BitBake recipes. The extension provides syntax highlighting,
hover tips, and completion for BitBake files as well as embedded Python and
Bash languages. Additional views and commands allow you to efficiently
browse, build and edit recipes. It also provides SDK integration for
cross-compiling and debugging through ``devtool``.
Learn more about the VSCode Extension on the `extension's frontpage
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__.
Production Tools
----------------
@@ -610,6 +622,14 @@ Build Host runs, you have several choices.
For information about and how to use Toaster, see the
:doc:`/toaster-manual/index`.
- *Using the VSCode Extension:* You can use the `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension for Visual Studio Code to start your BitBake builds through a
graphical user interface.
Learn more about the VSCode Extension on the `extension's marketplace page
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
Reference Embedded Distribution (Poky)
======================================

File diff suppressed because it is too large Load Diff

View File

@@ -163,7 +163,7 @@ consists of the following pieces:
an ARM target, did the build produce ARM binaries. If, for example,
the build produced PPC binaries then there is a problem.
- :ref:`ref-classes-testimage*`: This class
- :ref:`ref-classes-testimage`: This class
performs runtime testing of images after they are built. The tests
are usually used with :doc:`QEMU </dev-manual/qemu>`
to boot the images and check the combined runtime result boot

View File

@@ -63,26 +63,28 @@ and announcements. To subscribe to one of the following mailing lists,
click on the appropriate URL in the following list and follow the
instructions:
- :yocto_lists:`/g/yocto` - General Yocto Project
- :yocto_lists:`/g/yocto` --- general Yocto Project
discussion mailing list.
- :oe_lists:`/g/openembedded-core` - Discussion mailing
- :oe_lists:`/g/openembedded-core` --- discussion mailing
list about OpenEmbedded-Core (the core metadata).
- :oe_lists:`/g/openembedded-devel` - Discussion
- :oe_lists:`/g/openembedded-devel` --- discussion
mailing list about OpenEmbedded.
- :oe_lists:`/g/bitbake-devel` - Discussion mailing
- :oe_lists:`/g/bitbake-devel` --- discussion mailing
list about the :term:`BitBake` build tool.
- :yocto_lists:`/g/poky` - Discussion mailing list
- :yocto_lists:`/g/poky` --- discussion mailing list
about :term:`Poky`.
- :yocto_lists:`/g/yocto-announce` - Mailing list to
- :yocto_lists:`/g/yocto-announce` --- mailing list to
receive official Yocto Project release and milestone announcements.
For more Yocto Project-related mailing lists, see the
:yocto_home:`Yocto Project Website <>`.
- :yocto_lists:`/g/docs` --- discussion mailing list about the Yocto Project
documentation.
See also :yocto_home:`the description of all mailing lists </community/mailing-lists/>`.
.. _resources-irc:
@@ -103,93 +105,96 @@ Links and Related Documentation
Here is a list of resources you might find helpful:
- :yocto_home:`The Yocto Project Website <>`\ *:* The home site
- :yocto_home:`The Yocto Project Website <>`: The home site
for the Yocto Project.
- :yocto_wiki:`The Yocto Project Main Wiki Page <>`\ *:* The main wiki page for
- :yocto_wiki:`The Yocto Project Main Wiki Page <>`: The main wiki page for
the Yocto Project. This page contains information about project
planning, release engineering, QA & automation, a reference site map,
and other resources related to the Yocto Project.
- :oe_home:`OpenEmbedded <>`\ *:* The build system used by the
- :oe_home:`OpenEmbedded <>`: The build system used by the
Yocto Project. This project is the upstream, generic, embedded
distribution from which the Yocto Project derives its build system
(Poky) and to which it contributes.
- :oe_wiki:`BitBake </BitBake>`\ *:* The tool used to process metadata.
- :oe_wiki:`BitBake </BitBake>`: The tool used to process metadata.
- :doc:`BitBake User Manual <bitbake:index>`\ *:* A comprehensive
- :doc:`BitBake User Manual <bitbake:index>`: A comprehensive
guide to the BitBake tool. If you want information on BitBake, see
this manual.
- :doc:`/brief-yoctoprojectqs/index` *:* This
- :doc:`/brief-yoctoprojectqs/index`: This
short document lets you experience building an image using the Yocto
Project without having to understand any concepts or details.
- :doc:`/overview-manual/index` *:* This manual provides overview
- :doc:`/overview-manual/index`: This manual provides overview
and conceptual information about the Yocto Project.
- :doc:`/dev-manual/index` *:* This manual is a "how-to" guide
- :doc:`/dev-manual/index`: This manual is a "how-to" guide
that presents procedures useful to both application and system
developers who use the Yocto Project.
- :doc:`/sdk-manual/index` *manual :* This
- :doc:`/sdk-manual/index` manual: This
guide provides information that lets you get going with the standard
or extensible SDK. An SDK, with its cross-development toolchains,
allows you to develop projects inside or outside of the Yocto Project
environment.
- :doc:`/bsp-guide/bsp` *:* This guide defines the structure
- :doc:`/bsp-guide/bsp`: This guide defines the structure
for BSP components. Having a commonly understood structure encourages
standardization.
- :doc:`/kernel-dev/index` *:* This manual describes
- :doc:`/kernel-dev/index`: This manual describes
how to work with Linux Yocto kernels as well as provides a bit of
conceptual information on the construction of the Yocto Linux kernel
tree.
- :doc:`/ref-manual/index` *:* This
- :doc:`/ref-manual/index`: This
manual provides reference material such as variable, task, and class
descriptions.
- :yocto_docs:`Yocto Project Mega-Manual </singleindex.html>`\ *:* This manual
- :yocto_docs:`Yocto Project Mega-Manual </singleindex.html>`: This manual
is simply a single HTML file comprised of the bulk of the Yocto
Project manuals. It makes it easy to search for phrases and terms used
in the Yocto Project documentation set.
- :doc:`/profile-manual/index` *:* This manual presents a set of
- :doc:`/profile-manual/index`: This manual presents a set of
common and generally useful tracing and profiling schemes along with
their applications (as appropriate) to each tool.
- :doc:`/toaster-manual/index` *:* This manual
- :doc:`/toaster-manual/index`: This manual
introduces and describes how to set up and use Toaster. Toaster is an
Application Programming Interface (API) and web-based interface to
the :term:`OpenEmbedded Build System`, which uses
BitBake, that reports build information.
- :yocto_wiki:`FAQ </FAQ>`\ *:* A list of commonly asked
- `Yocto Project BitBake extension for VSCode
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__:
This extension provides a rich feature set when working with BitBake recipes
within the Visual Studio Code IDE.
- :yocto_wiki:`FAQ </FAQ>`: A list of commonly asked
questions and their answers.
- *Release Notes:* Features, updates and known issues for the current
release of the Yocto Project. To access the Release Notes, go to the
:yocto_home:`Downloads </software-overview/downloads>` page on
the Yocto Project website and click on the "RELEASE INFORMATION" link
for the appropriate release.
- :doc:`Release Information </migration-guides/index>`:
Migration guides, release notes, new features, updates and known issues
for the current and past releases of the Yocto Project.
- :yocto_bugs:`Bugzilla <>`\ *:* The bug tracking application
- :yocto_bugs:`Bugzilla <>`: The bug tracking application
the Yocto Project uses. If you find problems with the Yocto Project,
you should report them using this application.
- :yocto_wiki:`Bugzilla Configuration and Bug Tracking Wiki Page
</Bugzilla_Configuration_and_Bug_Tracking>`\ *:*
</Bugzilla_Configuration_and_Bug_Tracking>`:
Information on how to get set up and use the Yocto Project
implementation of Bugzilla for logging and tracking Yocto Project
defects.
- *Internet Relay Chat (IRC):* Two IRC channels on
- Internet Relay Chat (IRC): Two IRC channels on
`Libera Chat <https://libera.chat/>`__ are
available for Yocto Project and OpenEmbeddded discussions: ``#yocto`` and
``#oe``, respectively.
- `Quick EMUlator (QEMU) <https://wiki.qemu.org/Index.html>`__\ *:* An
- `Quick EMUlator (QEMU) <https://wiki.qemu.org/Index.html>`__: An
open-source machine emulator and virtualizer.

View File

@@ -404,15 +404,15 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1846"
inkscape:window-height="1016"
inkscape:window-width="1920"
inkscape:window-height="1043"
id="namedview4"
showgrid="true"
inkscape:zoom="0.51166405"
inkscape:cx="-43.974166"
inkscape:cy="311.72798"
inkscape:window-x="1994"
inkscape:window-y="27"
inkscape:zoom="1.4472045"
inkscape:cx="736.24703"
inkscape:cy="312.32629"
inkscape:window-x="1728"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g10"
inkscape:document-rotation="0"
@@ -669,28 +669,28 @@
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan10317-2-9-1-4">4.2</tspan></text>
<g
id="g32107">
id="g1379">
<rect
style="opacity:0.75;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
id="rect917-0-0-4-4-9-4-5-3"
width="140.00014"
style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
id="rect917-0-0-4-4-9-4-5-38"
width="140.00003"
height="45.000004"
x="1199.9999"
y="-229.99998"
x="1220"
y="-230.00005"
ry="2.2558987" />
<text
xml:space="preserve"
style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="1247.2329"
x="1269.2329"
y="-210.32925"
id="text1185-3-55-4-0-0-0-1-1"><tspan
sodipodi:role="line"
x="1247.2329"
x="1269.2329"
y="-210.32925"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan957-2-8-6-3-9-7-4">Nanbield</tspan><tspan
sodipodi:role="line"
x="1247.2329"
x="1269.2329"
y="-192.33258"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
id="tspan10317-2-9-1-4-6">4.3</tspan></text>

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -41,20 +41,17 @@ supported on the following distributions:
- Ubuntu 22.04 (LTS)
- Fedora 37
- Fedora 38
- Debian GNU/Linux 11.x (Bullseye)
- AlmaLinux 8.8
- AlmaLinux 8
The following distribution versions are still tested (being listed
in :term:`SANITY_TESTED_DISTROS`), even though the organizations
publishing them no longer make updates publicly available:
The following distribution versions are still tested, even though the
organizations publishing them no longer make updates publicly available:
- Ubuntu 18.04 (LTS)
- OpenSUSE Leap 15.3
Note that the Yocto Project doesn't have access to private updates
that some of these versions may have. Therefore, our testing has
limited value if you have access to such updates.
@@ -72,18 +69,18 @@ tested on former revisions of "&DISTRO_NAME;", but no longer are:
- Fedora 36
- Fedora 37
- CentOS 7.x
- CentOS 8.x
- AlmaLinux 8.5
- AlmaLinux 8.7
- Debian GNU/Linux 9.x (Stretch)
- Debian GNU/Linux 10.x (Buster)
- OpenSUSE Leap 15.3
.. note::
- While the Yocto Project Team attempts to ensure all Yocto Project

View File

@@ -1342,6 +1342,19 @@ system and gives an overview of their function and contents.
the recipe will be skipped, and if the build system attempts to build
the recipe then an error will be triggered.
:term:`CONVERSION_CMD`
This variable is used for storing image conversion commands.
Image conversion can convert an image into different objects like:
- Compressed version of the image
- Checksums for the image
An example of :term:`CONVERSION_CMD` from :ref:`image-types
<ref-classes-image_types>` class is::
CONVERSION_CMD:lzo = "lzop -9 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
:term:`COPY_LIC_DIRS`
If set to "1" along with the
:term:`COPY_LIC_MANIFEST` variable, the
@@ -2101,6 +2114,18 @@ system and gives an overview of their function and contents.
For information on policies and on how to use this variable, see the
comments in the ``meta/classes/compress_doc.bbclass`` file.
:term:`DT_FILES_PATH`
When compiling out-of-tree device tree sources using a recipe that
inherits the :ref:`ref-classes-devicetree` class, this variable specifies
the path to the directory containing dts files to build.
Defaults to the :term:`S` directory.
:term:`DT_PADDING_SIZE`
When inheriting the :ref:`ref-classes-devicetree` class, this variable
specifies the size of padding appended to the device tree blob, used as
extra space typically for additional properties during boot.
:term:`EFI_PROVIDER`
When building bootable images (i.e. where ``hddimg``, ``iso``, or
``wic.vmdk`` is in :term:`IMAGE_FSTYPES`), the
@@ -2860,6 +2885,73 @@ system and gives an overview of their function and contents.
GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
:term:`GO_IMPORT`
When inheriting the :ref:`ref-classes-go` class, this mandatory variable
sets the import path for the Go package that will be created for the code
to build. If you have a ``go.mod`` file in the source directory, this
typically matches the path in the ``module`` line in this file.
Other Go programs importing this package will use this path.
Here is an example setting from the
:yocto_git:`go-helloworld_0.1.bb </poky/tree/meta/recipes-extended/go-examples/go-helloworld_0.1.bb>`
recipe::
GO_IMPORT = "golang.org/x/example"
:term:`GO_INSTALL`
When inheriting the :ref:`ref-classes-go` class, this optional variable
specifies which packages in the sources should be compiled and
installed in the Go build space by the
`go install <https://go.dev/ref/mod#go-install>`__ command.
Here is an example setting from the
:oe_git:`crucible </meta-openembedded/tree/meta-oe/recipes-support/crucible/>`
recipe::
GO_INSTALL = "\
${GO_IMPORT}/cmd/crucible \
${GO_IMPORT}/cmd/habtool \
"
By default, :term:`GO_INSTALL` is defined as::
GO_INSTALL ?= "${GO_IMPORT}/..."
The ``...`` wildcard means that it will catch all
packages found in the sources.
See the :term:`GO_INSTALL_FILTEROUT` variable for
filtering out unwanted packages from the ones
found from the :term:`GO_INSTALL` value.
:term:`GO_INSTALL_FILTEROUT`
When using the Go "vendor" mechanism to bring in dependencies for a Go
package, the default :term:`GO_INSTALL` setting, which uses the ``...``
wildcard, will include the vendored packages in the build, which produces
incorrect results.
There are also some Go packages that are structured poorly, so that the
``...`` wildcard results in building example or test code that should not
be included in the build, or could fail to build.
This optional variable allows for filtering out a subset of the sources.
It defaults to excluding everything under the ``vendor`` subdirectory
under package's main directory. This is the normal location for vendored
packages, but it can be overridden by a recipe to filter out other
subdirectories if needed.
:term:`GO_WORKDIR`
When using Go Modules, the current working directory must be the directory
containing the ``go.mod`` file, or one of its subdirectories. When the
``go`` tool is used, it will automatically look for the ``go.mod`` file
in the Go working directory or in any parent directory, but not in
subdirectories.
When using the :ref:`ref-classes-go-mod` class to use Go modules,
the optional :term:`GO_WORKDIR` variable, defaulting to the value
of :term:`GO_IMPORT`, allows to specify a different Go working directory.
:term:`GROUPADD_PARAM`
When inheriting the :ref:`useradd <ref-classes-useradd>` class,
this variable specifies for a package what parameters should be
@@ -3128,17 +3220,23 @@ system and gives an overview of their function and contents.
material for Wic is located in the
":doc:`/ref-manual/kickstart`" chapter.
:term:`IMAGE_BUILDINFO_FILE`
When using the :ref:`ref-classes-image-buildinfo` class,
specifies the file in the image to write the build information into. The
default value is "``${sysconfdir}/buildinfo``".
:term:`IMAGE_BUILDINFO_VARS`
When using the :ref:`ref-classes-image-buildinfo` class,
specifies the list of variables to include in the `Build Configuration`
section of the output file (as a space-separated list). Defaults to
":term:`DISTRO` :term:`DISTRO_VERSION`".
:term:`IMAGE_CLASSES`
A list of classes that all images should inherit. You typically use
this variable to specify the list of classes that register the
different types of images the OpenEmbedded build system creates.
A list of classes that all images should inherit. This is typically used
to enable functionality across all image recipes.
The default value for :term:`IMAGE_CLASSES` is ``image_types``. You can
set this variable in your ``local.conf`` or in a distribution
configuration file.
For more information, see ``meta/classes/image_types.bbclass`` in the
:term:`Source Directory`.
Classes specified in :term:`IMAGE_CLASSES` must be located in the
``classes-recipe/`` or ``classes/`` subdirectories.
:term:`IMAGE_CMD`
Specifies the command to create the image file for a specific image
@@ -4115,9 +4213,18 @@ system and gives an overview of their function and contents.
There is legacy support for specifying the full path to the device
tree. However, providing just the ``.dtb`` file is preferred.
In order to use this variable, the
:ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class must
be inherited.
In order to use this variable, the :ref:`ref-classes-kernel-devicetree`
class must be inherited.
:term:`KERNEL_DEVICETREE_BUNDLE`
When set to "1", this variable allows to bundle the Linux kernel
and the Device Tree Binary together in a single file.
This feature is currently only supported on the "arm" (32 bit)
architecture.
This variable is set to "0" by default by the
:ref:`ref-classes-kernel-devicetree` class.
:term:`KERNEL_DTB_LINK_NAME`
The link name of the kernel device tree binary (DTB). This variable
@@ -4142,10 +4249,25 @@ system and gives an overview of their function and contents.
KERNEL_DTB_NAME ?= "${KERNEL_ARTIFACT_NAME}"
The value of the :term:`KERNEL_ARTIFACT_NAME`
variable, which is set in the same file, has the following value::
See :term:`KERNEL_ARTIFACT_NAME` for additional information.
KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
:term:`KERNEL_DTBDEST`
This variable, used by the :ref:`ref-classes-kernel-devicetree`
class, allows to change the installation directory of the DTB
(Device Tree Binary) files.
It is set by default to "${KERNEL_IMAGEDEST}" by the
:ref:`ref-classes-kernel` class.
:term:`KERNEL_DTBVENDORED`
This variable, used by the :ref:`ref-classes-kernel-devicetree`,
allows to ignore vendor subdirectories when installing DTB
(Device Tree Binary) files, when it is set to "false".
To keep vendor subdirectories, set this variable to "true".
It is set by default to "false" by the :ref:`ref-classes-kernel` class.
:term:`KERNEL_DTC_FLAGS`
Specifies the ``dtc`` flags that are passed to the Linux kernel build
@@ -4260,9 +4382,12 @@ system and gives an overview of their function and contents.
when building the kernel and is passed to ``make`` as the target to
build.
If you want to build an alternate kernel image type in addition to that
specified by :term:`KERNEL_IMAGETYPE`, use the :term:`KERNEL_ALT_IMAGETYPE`
variable.
To build additional kernel image types, use :term:`KERNEL_IMAGETYPES`.
:term:`KERNEL_IMAGETYPES`
Lists additional types of kernel images to build for a device in addition
to image type specified in :term:`KERNEL_IMAGETYPE`. Usually set by the
machine configuration files.
:term:`KERNEL_MODULE_AUTOLOAD`
Lists kernel modules that need to be auto-loaded during boot.
@@ -4300,6 +4425,14 @@ system and gives an overview of their function and contents.
provide those module configurations, see the
:term:`module_conf_* <module_conf>` variable.
:term:`KERNEL_PACKAGE_NAME`
Specifies the base name of the kernel packages, such as "kernel"
in the kernel packages such as "kernel-modules", "kernel-image" and
"kernel-dbg".
The default value for this variable is set to "kernel" by the
:ref:`ref-classes-kernel` class.
:term:`KERNEL_PATH`
The location of the kernel sources. This variable is set to the value
of the :term:`STAGING_KERNEL_DIR` within
@@ -4908,9 +5041,8 @@ system and gives an overview of their function and contents.
:term:`PREMIRRORS`, the upstream source, and then
locations specified by :term:`MIRRORS` in that order.
Assuming your distribution (:term:`DISTRO`) is "poky",
the default value for :term:`MIRRORS` is defined in the
``conf/distro/poky.conf`` file in the ``meta-poky`` Git repository.
The default value for :term:`MIRRORS` is defined in the
``meta/classes-global/mirrors.bbclass`` file in the core metadata layer.
:term:`MLPREFIX`
Specifies a prefix has been added to :term:`PN` to create a
@@ -5142,6 +5274,16 @@ system and gives an overview of their function and contents.
:term:`Source Directory` for details on how this class
applies these additional sed command arguments.
:term:`OECMAKE_GENERATOR`
A variable for the :ref:`ref-classes-cmake` class, allowing to choose
which back-end will be generated by CMake to build an application.
By default, this variable is set to ``Ninja``, which is faster than GNU
make, but if building is broken with Ninja, a recipe can use this
variable to use GNU make instead::
OECMAKE_GENERATOR = "Unix Makefiles"
:term:`OE_IMPORTS`
An internal variable used to tell the OpenEmbedded build system what
Python modules to import for every Python function run by the system.
@@ -5185,6 +5327,20 @@ system and gives an overview of their function and contents.
For additional information on how this variable is used, see the
initialization script.
:term:`OEQA_REPRODUCIBLE_TEST_PACKAGE`
Set the package manager(s) for build reproducibility testing.
See :yocto_git:`reproducible.py </poky/tree/meta/lib/oeqa/selftest/cases/reproducible.py>`
and :doc:`/test-manual/reproducible-builds`.
:term:`OEQA_REPRODUCIBLE_TEST_TARGET`
Set build target for build reproducibility testing. By default
all available recipes are compiled with "bitbake world", see also :term:`EXCLUDE_FROM_WORLD`
and :doc:`/test-manual/reproducible-builds`.
:term:`OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS`
Set build targets which can be rebuilt using :ref:`shared state <overview-manual/concepts:shared state cache>`
when running build reproducibility tests. See :doc:`/test-manual/reproducible-builds`.
:term:`OLDEST_KERNEL`
Declares the oldest version of the Linux kernel that the produced
binaries must support. This variable is passed into the build of the
@@ -6104,9 +6260,8 @@ system and gives an overview of their function and contents.
source, and then locations specified by
:term:`MIRRORS` in that order.
Assuming your distribution (:term:`DISTRO`) is "poky",
the default value for :term:`PREMIRRORS` is defined in the
``conf/distro/poky.conf`` file in the ``meta-poky`` Git repository.
The default value for :term:`PREMIRRORS` is defined in the
``meta/classes-global/mirrors.bbclass`` file in the core metadata layer.
Typically, you could add a specific server for the build system to
attempt before any others by adding something like the following to
@@ -6449,6 +6604,22 @@ system and gives an overview of their function and contents.
BitBake User Manual for additional information on tasks and
dependencies.
:term:`RECIPE_MAINTAINER`
This variable defines the name and e-mail address of the maintainer of a
recipe. Such information can be used by human users submitted changes,
and by automated tools to send notifications, for example about
vulnerabilities or source updates.
The variable can be defined in a global distribution :oe_git:`maintainers.inc
</openembedded-core/tree/meta/conf/distro/include/maintainers.inc>` file::
meta/conf/distro/include/maintainers.inc:RECIPE_MAINTAINER:pn-sysvinit = "Ross Burton <ross.burton@arm.com>"
It can also be directly defined in a recipe,
for example in the ``libgpiod`` one::
RECIPE_MAINTAINER = "Bartosz Golaszewski <brgl@bgdev.pl>"
:term:`RECIPE_NO_UPDATE_REASON`
If a recipe should not be replaced by a more recent upstream version,
putting the reason why in this variable in a recipe allows
@@ -6850,13 +7021,16 @@ system and gives an overview of their function and contents.
:term:`SDK_EXT_TYPE` is set to "full".
:term:`SDK_NAME`
The base name for SDK output files. The name is derived from the
:term:`DISTRO`, :term:`TCLIBC`,
:term:`SDK_ARCH`,
:term:`IMAGE_BASENAME`, and
:term:`TUNE_PKGARCH` variables::
The base name for SDK output files. The default value (as set in
``meta-poky/conf/distro/poky.conf``) is derived from the
:term:`DISTRO`,
:term:`TCLIBC`,
:term:`SDKMACHINE`,
:term:`IMAGE_BASENAME`,
:term:`TUNE_PKGARCH`, and
:term:`MACHINE` variables::
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}"
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
:term:`SDK_OS`
Specifies the operating system for which the SDK will be built. The
@@ -7387,6 +7561,38 @@ system and gives an overview of their function and contents.
section in the Yocto Project Board Support Package Developer's Guide
for additional information.
:term:`SPL_MKIMAGE_DTCOPTS`
Options for the device tree compiler passed to ``mkimage -D`` feature
while creating a FIT image with the :ref:`ref-classes-uboot-sign`
class. If :term:`SPL_MKIMAGE_DTCOPTS` is not set then the
:ref:`ref-classes-uboot-sign` class will not pass the ``-D`` option
to ``mkimage``.
The default value is set to "" by the :ref:`ref-classes-uboot-config`
class.
:term:`SPL_SIGN_ENABLE`
Enable signing of the U-Boot FIT image. The default value is "0".
This variable is used by the :ref:`ref-classes-uboot-sign` class.
:term:`SPL_SIGN_KEYDIR`
Location of the directory containing the RSA key and certificate used for
signing the U-Boot FIT image, used by the :ref:`ref-classes-uboot-sign`
class.
:term:`SPL_SIGN_KEYNAME`
The name of keys used by the :ref:`ref-classes-kernel-fitimage` class
for signing U-Boot FIT image stored in the :term:`SPL_SIGN_KEYDIR`
directory. If we have for example a ``dev.key`` key and a ``dev.crt``
certificate stored in the :term:`SPL_SIGN_KEYDIR` directory, you will
have to set :term:`SPL_SIGN_KEYNAME` to ``dev``.
:term:`SPLASH`
This variable, used by the :ref:`ref-classes-image` class, allows
to choose splashscreen applications. Set it to the names of packages
for such applications to use. This variable is set by default to
``psplash``.
:term:`SPLASH_IMAGES`
This variable, used by the ``psplash`` recipe, allows to customize
the default splashscreen image.
@@ -7605,6 +7811,16 @@ system and gives an overview of their function and contents.
file://.* https://someserver.tld/share/sstate/PATH;downloadfilename=PATH \
file://.* file:///some-local-dir/sstate/PATH"
The Yocto Project actually shares the cache data objects built by its
autobuilder::
SSTATE_MIRRORS ?= "file://.* http://cdn.jsdelivr.net/yocto/sstate/all/PATH;downloadfilename=PATH"
As such binary artifacts are built for the generic QEMU machines
supported by the various Poky releases, they are less likely to be
reusable in real projects building binaries optimized for a specific
CPU family.
:term:`SSTATE_SCAN_FILES`
Controls the list of files the OpenEmbedded build system scans for
hardcoded installation paths. The variable uses a space-separated
@@ -8472,7 +8688,7 @@ system and gives an overview of their function and contents.
on enabling, running, and writing these tests, see the
":ref:`dev-manual/runtime-testing:performing automated runtime testing`"
section in the Yocto Project Development Tasks Manual and the
":ref:`ref-classes-testimage*`" section.
":ref:`ref-classes-testimage`" section.
:term:`THISDIR`
The directory in which the file BitBake is currently parsing is
@@ -8716,23 +8932,30 @@ system and gives an overview of their function and contents.
See the machine include files in the :term:`Source Directory`
for these features.
:term:`UBOOT_BINARY`
Specifies the name of the binary build by U-Boot.
:term:`UBOOT_CONFIG`
Configures the :term:`UBOOT_MACHINE` and can
also define :term:`IMAGE_FSTYPES` for individual
cases.
Configures one or more U-Boot configurations to build. Each
configuration can define the :term:`UBOOT_MACHINE` and optionally the
:term:`IMAGE_FSTYPES` and the :term:`UBOOT_BINARY`.
Following is an example from the ``meta-fsl-arm`` layer. ::
Following is an example from the ``meta-freescale`` layer. ::
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
UBOOT_CONFIG ??= "sdcard-ifc-secure-boot sdcard-ifc sdcard-qspi lpuart qspi secure-boot nor"
UBOOT_CONFIG[nor] = "ls1021atwr_nor_defconfig"
UBOOT_CONFIG[sdcard-ifc] = "ls1021atwr_sdcard_ifc_defconfig,,u-boot-with-spl-pbl.bin"
UBOOT_CONFIG[sdcard-qspi] = "ls1021atwr_sdcard_qspi_defconfig,,u-boot-with-spl-pbl.bin"
UBOOT_CONFIG[lpuart] = "ls1021atwr_nor_lpuart_defconfig"
UBOOT_CONFIG[qspi] = "ls1021atwr_qspi_defconfig"
UBOOT_CONFIG[secure-boot] = "ls1021atwr_nor_SECURE_BOOT_defconfig"
UBOOT_CONFIG[sdcard-ifc-secure-boot] = "ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig,,u-boot-with-spl-pbl.bin"
In this example, "sd" is selected as the configuration of the possible four for the
:term:`UBOOT_MACHINE`. The "sd" configuration defines
"mx6qsabreauto_config" as the value for :term:`UBOOT_MACHINE`, while the
"sdcard" specifies the :term:`IMAGE_FSTYPES` to use for the U-Boot image.
In this example, all possible seven configurations are selected. Each
configuration specifies "..._defconfig" as :term:`UBOOT_MACHINE`, and
the "sd..." configurations define an individual name for
:term:`UBOOT_BINARY`. No configuration defines a second parameter for
:term:`IMAGE_FSTYPES` to use for the U-Boot image.
For more information on how the :term:`UBOOT_CONFIG` is handled, see the
:ref:`uboot-config <ref-classes-uboot-config>`
@@ -8756,6 +8979,64 @@ system and gives an overview of their function and contents.
creation, the :term:`UBOOT_ENTRYPOINT` variable is passed as a
command-line parameter to the ``uboot-mkimage`` utility.
:term:`UBOOT_FIT_DESC`
Specifies the description string encoded into a U-Boot fitImage. The default
value is set by the :ref:`ref-classes-uboot-sign` class as follows::
UBOOT_FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"
:term:`UBOOT_FIT_GENERATE_KEYS`
Decides whether to generate the keys for signing the U-Boot fitImage if
they don't already exist. The keys are created in :term:`SPL_SIGN_KEYDIR`.
The default value is "0".
Enable this as follows::
UBOOT_FIT_GENERATE_KEYS = "1"
This variable is used in the :ref:`ref-classes-uboot-sign` class.
:term:`UBOOT_FIT_HASH_ALG`
Specifies the hash algorithm used in creating the U-Boot FIT Image.
It is set by default to ``sha256`` by the :ref:`ref-classes-uboot-sign`
class.
:term:`UBOOT_FIT_KEY_GENRSA_ARGS`
Arguments to ``openssl genrsa`` for generating a RSA private key for
signing the U-Boot FIT image. The default value of this variable
is set to "-F4" by the :ref:`ref-classes-uboot-sign` class.
:term:`UBOOT_FIT_KEY_REQ_ARGS`
Arguments to ``openssl req`` for generating a certificate for signing
the U-Boot FIT image. The default value is "-batch -new" by the
:ref:`ref-classes-uboot-sign` class, "batch" for
non interactive mode and "new" for generating new keys.
:term:`UBOOT_FIT_KEY_SIGN_PKCS`
Format for the public key certificate used for signing the U-Boot FIT
image. The default value is set to "x509" by the
:ref:`ref-classes-uboot-sign` class.
:term:`UBOOT_FIT_SIGN_ALG`
Specifies the signature algorithm used in creating the U-Boot FIT Image.
This variable is set by default to "rsa2048" by the
:ref:`ref-classes-uboot-sign` class.
:term:`UBOOT_FIT_SIGN_NUMBITS`
Size of the private key used in signing the U-Boot FIT image, in number
of bits. The default value for this variable is set to "2048"
by the :ref:`ref-classes-uboot-sign` class.
:term:`UBOOT_FITIMAGE_ENABLE`
This variable allows to generate a FIT image for U-Boot, which is one
of the ways to implement a verified boot process.
Its default value is "0", so set it to "1" to enable this functionality::
UBOOT_FITIMAGE_ENABLE = "1"
See the :ref:`ref-classes-uboot-sign` class for details.
:term:`UBOOT_LOADADDRESS`
Specifies the load address for the U-Boot image. During U-Boot image
creation, the :term:`UBOOT_LOADADDRESS` variable is passed as a

View File

@@ -41,44 +41,6 @@ functionality.
Installing the Extensible SDK
=============================
Two ways to install the Extensible SDK
--------------------------------------
Extensible SDK can be installed in two different ways, and both have
their own pros and cons:
#. *Setting up the Extensible SDK environment directly in a Yocto build*. This
avoids having to produce, test, distribute and maintain separate SDK
installer archives, which can get very large. There is only one environment
for the regular Yocto build and the SDK and less code paths where things can
go not according to plan. It's easier to update the SDK: it simply means
updating the Yocto layers with git fetch or layer management tooling. The
SDK extensibility is better than in the second option: just run ``bitbake``
again to add more things to the sysroot, or add layers if even more things
are required.
#. *Setting up the Extensible SDK from a standalone installer*. This has the
benefit of having a single, self-contained archive that includes all the
needed binary artifacts. So nothing needs to be rebuilt, and there is no
need to provide a well-functioning binary artefact cache over the network
for developers with underpowered laptops.
Setting up the Extensible SDK environment directly in a Yocto build
-------------------------------------------------------------------
#. Set up all the needed layers and a Yocto :term:`Build Directory`, e.g. a regular Yocto
build where ``bitbake`` can be executed.
#. Run::
$ bitbake meta-ide-support
$ bitbake -c populate_sysroot gtk+3
# or any other target or native item that the application developer would need
$ bitbake build-sysroots
Setting up the Extensible SDK from a standalone installer
---------------------------------------------------------
The first thing you need to do is install the SDK on your :term:`Build
Host` by running the ``*.sh`` installation script.
@@ -172,12 +134,7 @@ Running the Extensible SDK Environment Setup Script
===================================================
Once you have the SDK installed, you must run the SDK environment setup
script before you can actually use the SDK.
When using a SDK directly in a Yocto build, you will find the script in
``tmp/deploy/images/qemux86-64/`` in your :term:`Build Directory`.
When using a standalone SDK installer, this setup script resides in
script before you can actually use the SDK. This setup script resides in
the directory you chose when you installed the SDK, which is either the
default ``poky_sdk`` directory or the directory you chose during
installation.
@@ -195,11 +152,6 @@ script is for an IA-based target machine using i586 tuning::
SDK environment now set up; additionally you may now run devtool to perform development tasks.
Run devtool --help for further details.
When using the environment script directly in a Yocto build, it can
be run similarly::
$ source tmp/deploy/images/qemux86-64/environment-setup-core2-64-poky-linux
Running the setup script defines many environment variables needed in order to
use the SDK (e.g. ``PATH``, :term:`CC`, :term:`LD`, and so forth). If you want
to see all the environment variables the script exports, examine the
@@ -1219,19 +1171,6 @@ You can use the following command to find out::
Once you know the recipe
(i.e. ``mesa`` in this example), you can install it.
When using the extensible SDK directly in a Yocto build
-------------------------------------------------------
In this scenario, the Yocto build tooling, e.g. ``bitbake``
is directly accessible to build additional items, and it
can simply be executed directly::
$ bitbake mesa
$ bitbake build-sysroots
When using a standalone installer for the Extensible SDK
--------------------------------------------------------
::
$ devtool sdk-install mesa

View File

@@ -14,15 +14,13 @@ release works as intended. All the project's testing infrastructure and
processes are publicly visible and available so that the community can
see what testing is being performed, how it's being done and the current
status of the tests and the project at any given time. It is intended
that Other organizations can leverage off the process and testing
that other organizations can leverage off the process and testing
environment used by the Yocto Project to create their own automated,
production test environment, building upon the foundations from the
project core.
Currently, the Yocto Project Test Environment Manual has no projected
release date. This manual is a work-in-progress and is being initially
loaded with information from the README files and notes from key
engineers:
This manual is a work-in-progress and is being initially loaded with
information from the README files and notes from key engineers:
- *yocto-autobuilder2:* This
:yocto_git:`README.md </yocto-autobuilder2/tree/README.md>`
@@ -39,7 +37,7 @@ engineers:
As a result, it can be used by any Continuous Improvement (CI) system
to run builds, support getting the correct code revisions, configure
builds and layers, run builds, and collect results. The code is
independent of any CI system, which means the code can work `Buildbot <https://docs.buildbot.net/0.9.15.post1/>`__,
independent of any CI system, which means the code can work `Buildbot <https://docs.buildbot.net/current/>`__,
Jenkins, or others. This repository has a branch per release of the
project defining the tests to run on a per release basis.
@@ -54,8 +52,8 @@ the Autobuilder tests if things work. The Autobuilder builds all test
targets and runs all the tests.
The Yocto Project uses now uses standard upstream
`Buildbot <https://docs.buildbot.net/0.9.15.post1/>`__ (version 9) to
drive its integration and testing. Buildbot Nine has a plug-in interface
Buildbot (`version 3.8 <https://docs.buildbot.net/3.8.0/>`__) to
drive its integration and testing. Buildbot has a plug-in interface
that the Yocto Project customizes using code from the
``yocto-autobuilder2`` repository, adding its own console UI plugin. The
resulting UI plug-in allows you to visualize builds in a way suited to
@@ -93,8 +91,8 @@ the following types of tests:
- *Build Testing:* Tests whether specific configurations build by
varying :term:`MACHINE`,
:term:`DISTRO`, other configuration
options, and the specific target images being built (or world). Used
to trigger builds of all the different test configurations on the
options, and the specific target images being built (or ``world``). This is
used to trigger builds of all the different test configurations on the
Autobuilder. Builds usually cover many different targets for
different architectures, machines, and distributions, as well as
different configurations, such as different init systems. The
@@ -121,7 +119,8 @@ the following types of tests:
$ bitbake image -c testsdkext
The tests utilize the :ref:`testsdkext <ref-classes-testsdk>` class and the ``do_testsdkext`` task.
The tests use the :ref:`ref-classes-testsdk` class and the
``do_testsdkext`` task.
- *Feature Testing:* Various scenario-based tests are run through the
:ref:`OpenEmbedded Self test (oe-selftest) <ref-manual/release-process:Testing and Quality Assurance>`. We test oe-selftest on each of the main distributions
@@ -131,8 +130,8 @@ the following types of tests:
$ bitbake image -c testimage
The tests utilize the :ref:`testimage* <ref-classes-testimage*>`
classes and the :ref:`ref-tasks-testimage` task.
The tests use the :ref:`ref-classes-testimage`
class and the :ref:`ref-tasks-testimage` task.
- *Layer Testing:* The Autobuilder has the possibility to test whether
specific layers work with the test of the system. The layers tested
@@ -151,7 +150,7 @@ the following types of tests:
$ bitbake image -c testsdk
The tests utilize the :ref:`testsdk <ref-classes-testsdk>` class and
The tests use the :ref:`ref-classes-testsdk` class and
the ``do_testsdk`` task.
- *Unit Testing:* Unit tests on various components of the system run
@@ -179,7 +178,7 @@ Tests map into the codebase as follows:
$ bitbake-selftest
To skip tests that access the Internet, use the ``BB_SKIP_NETTESTS``
variable when running "bitbake-selftest" as follows::
variable when running ``bitbake-selftest`` as follows::
$ BB_SKIP_NETTESTS=yes bitbake-selftest
@@ -191,31 +190,32 @@ Tests map into the codebase as follows:
Use this option when you wish to skip tests that access the network,
which are mostly necessary to test the fetcher modules. To specify
individual test modules to run, append the test module name to the
"bitbake-selftest" command. For example, to specify the tests for the
bb.data.module, run::
``bitbake-selftest`` command. For example, to specify the tests for
``bb.tests.data.DataExpansions``, run::
$ bitbake-selftest bb.test.data.module
$ bitbake-selftest bb.tests.data.DataExpansions
You can also specify individual tests by defining the full name and module
plus the class path of the test, for example::
$ bitbake-selftest bb.tests.data.TestOverrides.test_one_override
$ bitbake-selftest bb.tests.data.DataExpansions.test_one_var
The tests are based on `Python
unittest <https://docs.python.org/3/library/unittest.html>`__.
The tests are based on
`Python unittest <https://docs.python.org/3/library/unittest.html>`__.
- *oe-selftest:*
- These tests use OE to test the workflows, which include testing
specific features, behaviors of tasks, and API unit tests.
- The tests can take advantage of parallelism through the "-j"
- The tests can take advantage of parallelism through the ``-j``
option, which can specify a number of threads to spread the tests
across. Note that all tests from a given class of tests will run
in the same thread. To parallelize large numbers of tests you can
split the class into multiple units.
- The tests are based on Python unittest.
- The tests are based on
`Python unittest <https://docs.python.org/3/library/unittest.html>`__.
- The code for the tests resides in
``meta/lib/oeqa/selftest/cases/``.
@@ -225,18 +225,18 @@ Tests map into the codebase as follows:
$ oe-selftest -a
- To run a specific test, use the following command form where
testname is the name of the specific test::
``testname`` is the name of the specific test::
$ oe-selftest -r <testname>
For example, the following command would run the tinfoil
getVar API test::
For example, the following command would run the ``tinfoil``
``getVar`` API test::
$ oe-selftest -r tinfoil.TinfoilTests.test_getvar
It is also possible to run a set
of tests. For example the following command will run all of the
tinfoil tests::
``tinfoil`` tests::
$ oe-selftest -r tinfoil
@@ -271,7 +271,7 @@ Tests map into the codebase as follows:
- These tests build an extended SDK (eSDK), install that eSDK, and
run tests against the eSDK.
- The code for these tests resides in ``meta/lib/oeqa/esdk``.
- The code for these tests resides in ``meta/lib/oeqa/sdkext/cases/``.
- To run the tests, use the following command form::
@@ -298,13 +298,13 @@ Tests map into the codebase as follows:
Git repository.
Use the ``oe-build-perf-report`` command to generate text reports
and HTML reports with graphs of the performance data. For
examples, see
:yocto_dl:`/releases/yocto/yocto-2.7/testresults/buildperf-centos7/perf-centos7.yoctoproject.org_warrior_20190414204758_0e39202.html`
and HTML reports with graphs of the performance data. See
:yocto_dl:`html </releases/yocto/yocto-4.3/testresults/buildperf-debian11/perf-debian11_nanbield_20231019191258_15b576c410.html>`
and
:yocto_dl:`/releases/yocto/yocto-2.7/testresults/buildperf-centos7/perf-centos7.yoctoproject.org_warrior_20190414204758_0e39202.txt`.
:yocto_dl:`txt </releases/yocto/yocto-4.3/testresults/buildperf-debian11/perf-debian11_nanbield_20231019191258_15b576c410.txt>`
examples.
- The tests are contained in ``lib/oeqa/buildperf/test_basic.py``.
- The tests are contained in ``meta/lib/oeqa/buildperf/test_basic.py``.
Test Examples
=============
@@ -312,16 +312,14 @@ Test Examples
This section provides example tests for each of the tests listed in the
:ref:`test-manual/intro:How Tests Map to Areas of Code` section.
For oeqa tests, testcases for each area reside in the main test
directory at ``meta/lib/oeqa/selftest/cases`` directory.
- ``oe-selftest`` testcases reside in the ``meta/lib/oeqa/selftest/cases`` directory.
For oe-selftest. bitbake testcases reside in the ``lib/bb/tests/``
directory.
- ``bitbake-selftest`` testcases reside in the ``bitbake/lib/bb/tests/`` directory.
``bitbake-selftest``
--------------------
A simple test example from ``lib/bb/tests/data.py`` is::
A simple test example from ``bitbake/lib/bb/tests/data.py`` is::
class DataExpansions(unittest.TestCase):
def setUp(self):
@@ -334,21 +332,24 @@ A simple test example from ``lib/bb/tests/data.py`` is::
val = self.d.expand("${foo}")
self.assertEqual(str(val), "value_of_foo")
In this example, a ``DataExpansions`` class of tests is created,
derived from standard python unittest. The class has a common ``setUp``
function which is shared by all the tests in the class. A simple test is
then added to test that when a variable is expanded, the correct value
is found.
In this example, a ``DataExpansions`` class of tests is created, derived from
standard `Python unittest <https://docs.python.org/3/library/unittest.html>`__.
The class has a common ``setUp`` function which is shared by all the tests in
the class. A simple test is then added to test that when a variable is
expanded, the correct value is found.
Bitbake selftests are straightforward python unittest. Refer to the
Python unittest documentation for additional information on writing
these tests at: https://docs.python.org/3/library/unittest.html.
BitBake selftests are straightforward
`Python unittest <https://docs.python.org/3/library/unittest.html>`__.
Refer to the `Python unittest documentation
<https://docs.python.org/3/library/unittest.html>`__ for additional information
on writing such tests.
``oe-selftest``
---------------
These tests are more complex due to the setup required behind the scenes
for full builds. Rather than directly using Python's unittest, the code
for full builds. Rather than directly using `Python unittest
<https://docs.python.org/3/library/unittest.html>`__, the code
wraps most of the standard objects. The tests can be simple, such as
testing a command from within the OE build environment using the
following example::
@@ -385,14 +386,14 @@ so tests within a given test class should always run in the same build,
while tests in different classes or modules may be split into different
builds. There is no data store available for these tests since the tests
launch the ``bitbake`` command and exist outside of its context. As a
result, common bitbake library functions (bb.\*) are also unavailable.
result, common BitBake library functions (``bb.\*``) are also unavailable.
``testimage``
-------------
These tests are run once an image is up and running, either on target
hardware or under QEMU. As a result, they are assumed to be running in a
target image environment, as opposed to a host build environment. A
target image environment, as opposed to in a host build environment. A
simple example from ``meta/lib/oeqa/runtime/cases/python.py`` contains
the following::
@@ -407,19 +408,19 @@ the following::
In this example, the ``OERuntimeTestCase`` class wraps
``unittest.TestCase``. Within the test, ``self.target`` represents the
target system, where commands can be run on it using the ``run()``
target system, where commands can be run using the ``run()``
method.
To ensure certain test or package dependencies are met, you can use the
To ensure certain tests or package dependencies are met, you can use the
``OETestDepends`` and ``OEHasPackage`` decorators. For example, the test
in this example would only make sense if python3-core is installed in
in this example would only make sense if ``python3-core`` is installed in
the image.
``testsdk_ext``
---------------
These tests are run against built extensible SDKs (eSDKs). The tests can
assume that the eSDK environment has already been setup. An example from
assume that the eSDK environment has already been set up. An example from
``meta/lib/oeqa/sdk/cases/devtool.py`` contains the following::
class DevtoolTest(OESDKExtTestCase):
@@ -466,9 +467,9 @@ following::
output = self._run(cmd)
self.assertEqual(output, "Hello, world\n")
In this example, if nativesdk-python3-core has been installed into the SDK, the code runs
the python3 interpreter with a basic command to check it is working
correctly. The test would only run if python3 is installed in the SDK.
In this example, if ``nativesdk-python3-core`` has been installed into the SDK,
the code runs the ``python3`` interpreter with a basic command to check it is
working correctly. The test would only run if Python3 is installed in the SDK.
``oe-build-perf-test``
----------------------
@@ -512,9 +513,9 @@ an isolated directory.
**Running "cleansstate" is not permitted.**
This can delete files from SSTATE_DIR which would potentially break
other builds running in parallel. If this is required, SSTATE_DIR must
be set to an isolated directory. Alternatively, you can use the "-f"
This can delete files from :term:`SSTATE_DIR` which would potentially break
other builds running in parallel. If this is required, :term:`SSTATE_DIR` must
be set to an isolated directory. Alternatively, you can use the ``-f``
option with the ``bitbake`` command to "taint" tasks by changing the
sstate checksums to ensure sstate cache items will not be reused.

View File

@@ -20,8 +20,8 @@ helps review and test patches and this is his testing tree).
We have two broad categories of test builds, including "full" and
"quick". On the Autobuilder, these can be seen as "a-quick" and
"a-full", simply for ease of sorting in the UI. Use our Autobuilder
console view to see where me manage most test-related items, available
at: :yocto_ab:`/typhoon/#/console`.
:yocto_ab:`console view </typhoon/#/console>` to see where we manage most
test-related items.
Builds are triggered manually when the test branches are ready. The
builds are monitored by the SWAT team. For additional information, see
@@ -34,24 +34,21 @@ which the result was required.
The Autobuilder does build the ``master`` branch once daily for several
reasons, in particular, to ensure the current ``master`` branch does
build, but also to keep ``yocto-testresults``
(:yocto_git:`/yocto-testresults/`),
buildhistory
(:yocto_git:`/poky-buildhistory/`), and
our sstate up to date. On the weekend, there is a master-next build
build, but also to keep (:yocto_git:`yocto-testresults </yocto-testresults/>`),
(:yocto_git:`buildhistory </poky-buildhistory/>`), and
our sstate up to date. On the weekend, there is a ``master-next`` build
instead to ensure the test results are updated for the less frequently
run targets.
Performance builds (buildperf-\* targets in the console) are triggered
Performance builds (``buildperf-\*`` targets in the console) are triggered
separately every six hours and automatically push their results to the
buildstats repository at:
:yocto_git:`/yocto-buildstats/`.
:yocto_git:`buildstats </yocto-buildstats/>` repository.
The 'quick' targets have been selected to be the ones which catch the
most failures or give the most valuable data. We run 'fast' ptests in
The "quick" targets have been selected to be the ones which catch the
most failures or give the most valuable data. We run "fast" ptests in
this case for example but not the ones which take a long time. The quick
target doesn't include \*-lsb builds for all architectures, some world
builds and doesn't trigger performance tests or ltp testing. The full
target doesn't include ``\*-lsb`` builds for all architectures, some ``world``
builds and doesn't trigger performance tests or ``ltp`` testing. The full
build includes all these things and is slower but more comprehensive.
Release Builds
@@ -67,12 +64,12 @@ that in :ref:`test-manual/test-process:day to day development`, in that the
a-full target of the Autobuilder is used but in addition the form is
configured to generate and publish artifacts and the milestone number,
version, release candidate number and other information is entered. The
box to "generate an email to QA"is also checked.
box to "generate an email to QA" is also checked.
When the build completes, an email is sent out using the send-qa-email
script in the ``yocto-autobuilder-helper`` repository to the list of
people configured for that release. Release builds are placed into a
directory in https://autobuilder.yocto.io/pub/releases on the
When the build completes, an email is sent out using the ``send-qa-email``
script in the :yocto_git:`yocto-autobuilder-helper </yocto-autobuilder-helper>`
repository to the list of people configured for that release. Release builds
are placed into a directory in https://autobuilder.yocto.io/pub/releases on the
Autobuilder which is included in the email. The process from here is
more manual and control is effectively passed to release engineering.
The next steps include:
@@ -80,14 +77,15 @@ The next steps include:
- QA teams respond to the email saying which tests they plan to run and
when the results will be available.
- QA teams run their tests and share their results in the yocto-
testresults-contrib repository, along with a summary of their
findings.
- QA teams run their tests and share their results in the
:yocto_git:`yocto-testresults-contrib </yocto-testresults-contrib>`
repository, along with a summary of their findings.
- Release engineering prepare the release as per their process.
- Test results from the QA teams are included into the release in
separate directories and also uploaded to the yocto-testresults
separate directories and also uploaded to the
:yocto_git:`yocto-testresults </yocto-testresults>`
repository alongside the other test results for the given revision.
- The QA report in the final release is regenerated using resulttool to

View File

@@ -9,8 +9,8 @@ Execution Flow within the Autobuilder
The "a-full" and "a-quick" targets are the usual entry points into the
Autobuilder and it makes sense to follow the process through the system
starting there. This is best visualized from the Autobuilder Console
view (:yocto_ab:`/typhoon/#/console`).
starting there. This is best visualized from the :yocto_ab:`Autobuilder
Console view </typhoon/#/console>`.
Each item along the top of that view represents some "target build" and
these targets are all run in parallel. The 'full' build will trigger the
@@ -18,9 +18,9 @@ majority of them, the "quick" build will trigger some subset of them.
The Autobuilder effectively runs whichever configuration is defined for
each of those targets on a separate buildbot worker. To understand the
configuration, you need to look at the entry on ``config.json`` file
within the ``yocto-autobuilder-helper`` repository. The targets are
defined in the overrides' section, a quick example could be qemux86-64
which looks like::
within the :yocto_git:`yocto-autobuilder-helper </yocto-autobuilder-helper>`
repository. The targets are defined in the ``overrides`` section, a quick
example could be ``qemux86-64`` which looks like::
"qemux86-64" : {
"MACHINE" : "qemux86-64",
@@ -32,8 +32,8 @@ which looks like::
}
},
And to expand that, you need the "arch-qemu" entry from
the "templates" section, which looks like::
And to expand that, you need the ``arch-qemu`` entry from
the ``templates`` section, which looks like::
"arch-qemu" : {
"BUILDINFO" : true,
@@ -54,11 +54,11 @@ the "templates" section, which looks like::
}
},
Combining these two entries you can see that "qemux86-64" is a three step build where the
``bitbake BBTARGETS`` would be run, then ``bitbake SANITYTARGETS`` for each step; all for
``MACHINE="qemx86-64"`` but with differing SDKMACHINE settings. In step
1 an extra variable is added to the ``auto.conf`` file to enable wic
image generation.
Combining these two entries you can see that ``qemux86-64`` is a three step
build where ``bitbake BBTARGETS`` would be run, then ``bitbake SANITYTARGETS``
for each step; all for ``MACHINE="qemux86-64"`` but with differing
:term:`SDKMACHINE` settings. In step 1, an extra variable is added to the
``auto.conf`` file to enable wic image generation.
While not every detail of this is covered here, you can see how the
template mechanism allows quite complex configurations to be built up
@@ -88,9 +88,9 @@ roughly consist of:
#. *Obtain yocto-autobuilder-helper*
This step clones the ``yocto-autobuilder-helper`` git repository.
This is necessary to prevent the requirement to maintain all the
release or project-specific code within Buildbot. The branch chosen
This step clones the :yocto_git:`yocto-autobuilder-helper </yocto-autobuilder-helper>`
git repository. This is necessary to avoid the requirement to maintain all
the release or project-specific code within Buildbot. The branch chosen
matches the release being built so we can support older releases and
still make changes in newer ones.
@@ -163,8 +163,9 @@ Autobuilder Worker Janitor
--------------------------
This is a process running on each Worker that performs two basic
operations, including background file deletion at IO idle (see :ref:`test-manual/understand-autobuilder:Autobuilder Target Execution Overview`: Run clobberdir) and
maintenance of a cache of cloned repositories to improve the speed
operations, including background file deletion at IO idle (see
"Run clobberdir" in :ref:`test-manual/understand-autobuilder:Autobuilder Target Execution Overview`)
and maintenance of a cache of cloned repositories to improve the speed
the system can checkout repositories.
Shared DL_DIR
@@ -172,7 +173,7 @@ Shared DL_DIR
The Workers are all connected over NFS which allows DL_DIR to be shared
between them. This reduces network accesses from the system and allows
the build to be sped up. Usage of the directory within the build system
the build to be sped up. The usage of the directory within the build system
is designed to be able to be shared over NFS.
Shared SSTATE_DIR
@@ -180,8 +181,8 @@ Shared SSTATE_DIR
The Workers are all connected over NFS which allows the ``sstate``
directory to be shared between them. This means once a Worker has built
an artifact, all the others can benefit from it. Usage of the directory
within the directory is designed for sharing over NFS.
an artifact, all the others can benefit from it. The usage of the directory
within the build system is designed for sharing over NFS.
Resulttool
----------
@@ -192,7 +193,7 @@ in a given build and their status. Additional information, such as
failure logs or the time taken to run the tests, may also be included.
Resulttool is part of OpenEmbedded-Core and is used to manipulate these
json results files. It has the ability to merge files together, display
JSON results files. It has the ability to merge files together, display
reports of the test results and compare different result files.
For details, see :yocto_wiki:`/Resulttool`.
@@ -206,7 +207,11 @@ are general setup steps that are run once and include:
#. Set up any ``buildtools-tarball`` if configured.
<<<<<<< HEAD
#. Call "buildhistory-init" if buildhistory is configured.
=======
#. Call ``buildhistory-init`` if :ref:`ref-classes-buildhistory` is configured.
>>>>>>> 7c4f616f77 (test-manual: text and formatting fixes)
For each step that is configured in ``config.json``, it will perform the
following:
@@ -250,15 +255,16 @@ Deploying Yocto Autobuilder
===========================
The most up to date information about how to setup and deploy your own
Autobuilder can be found in README.md in the ``yocto-autobuilder2``
repository.
Autobuilder can be found in :yocto_git:`README.md </yocto-autobuilder2/tree/README.md>`
in the :yocto_git:`yocto-autobuilder2 </yocto-autobuilder2>` repository.
We hope that people can use the ``yocto-autobuilder2`` code directly but
it is inevitable that users will end up needing to heavily customise the
``yocto-autobuilder-helper`` repository, particularly the
``config.json`` file as they will want to define their own test matrix.
We hope that people can use the :yocto_git:`yocto-autobuilder2 </yocto-autobuilder2>`
code directly but it is inevitable that users will end up needing to heavily
customize the :yocto_git:`yocto-autobuilder-helper </yocto-autobuilder-helper>`
repository, particularly the ``config.json`` file as they will want to define
their own test matrix.
The Autobuilder supports wo customization options:
The Autobuilder supports two customization options:
- variable substitution
@@ -278,7 +284,7 @@ environment::
$ ABHELPER_JSON="config.json /some/location/local.json"
One issue users often run into is validation of the ``config.json`` files. A
tip for minimizing issues from invalid json files is to use a Git
tip for minimizing issues from invalid JSON files is to use a Git
``pre-commit-hook.sh`` script to verify the JSON file before committing
it. Create a symbolic link as follows::

View File

@@ -29,8 +29,9 @@ contact us with other suggestions.
#. **Get to know the layer index:**
All layers can be found in the :oe_layerindex:`layer index <>`. Layers which
have applied for Yocto Project Compatible status (structure continuity
assurance and testing) can be found in the :yocto_home:`Yocto Project Compatible index
</software-over/layer/>`. Generally check the Compatible layer index first,
assurance and testing) can be found in the :yocto_home:`Yocto Project
Compatible Layers </development/yocto-project-compatible-layers/>` page.
Generally check the Compatible layer index first,
and if you don't find the necessary layer check the general layer index. The
layer index is an original artifact from the Open Embedded Project. As such,
that index doesn't have the curating and testing that the Yocto Project
@@ -212,6 +213,13 @@ contact us with other suggestions.
OpenEmbedded build system. If you are interested in using this type of
interface to create images, see the :doc:`/toaster-manual/index`.
* **Discover the VSCode extension**: The `Yocto Project BitBake
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
extension for the Visual Studio Code IDE provides language features and
commands for working with the Yocto Project. If you are interested in using
this extension, visit its `marketplace page
<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__.
* **Have Available the Yocto Project Reference Manual**: Unlike the rest of
the Yocto Project manual set, this manual is comprised of material suited
for reference rather than procedures. You can get build details, a closer

View File

@@ -1,7 +1,7 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
#DISTRO_VERSION = "3.4+snapshot-${METADATA_REVISION}"
DISTRO_VERSION = "4.0.14"
DISTRO_VERSION = "4.0.16"
DISTRO_CODENAME = "kirkstone"
SDK_VENDOR = "-pokysdk"
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"

View File

@@ -12,7 +12,7 @@ inherit logging
OE_EXTRA_IMPORTS ?= ""
OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license oe.qa oe.reproducible oe.rust ${OE_EXTRA_IMPORTS}"
OE_IMPORTS += "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license oe.qa oe.reproducible oe.rust oe.go ${OE_EXTRA_IMPORTS}"
OE_IMPORTS[type] = "list"
PACKAGECONFIG_CONFARGS ??= ""

View File

@@ -98,6 +98,8 @@ def generate_json_report(d, out_path, link_path):
cve_check_merge_jsons(summary, data)
filename = f.readline()
summary["package"].sort(key=lambda d: d['name'])
with open(out_path, "w") as f:
json.dump(summary, f, indent=2)

View File

@@ -62,6 +62,10 @@ python () {
else:
d.setVar('B', '${WORKDIR}/${BPN}-${PV}')
if d.getVar('SRCREV', "INVALID") != "INVALID":
# Ensure SRCREV has been processed before accessing SRC_URI
bb.fetch.get_srcrev(d)
local_srcuri = []
fetch = bb.fetch2.Fetch((d.getVar('SRC_URI') or '').split(), d)
for url in fetch.urls:

View File

@@ -61,31 +61,10 @@ SECURITY_NOPIE_CFLAGS ??= ""
CCACHE_DISABLE ?= "1"
def go_map_arch(a, d):
import re
if re.match('i.86', a):
return '386'
elif a == 'x86_64':
return 'amd64'
elif re.match('arm.*', a):
return 'arm'
elif re.match('aarch64.*', a):
return 'arm64'
elif re.match('mips64el.*', a):
return 'mips64le'
elif re.match('mips64.*', a):
return 'mips64'
elif a == 'mips':
return 'mips'
elif a == 'mipsel':
return 'mipsle'
elif re.match('p(pc|owerpc)(64le)', a):
return 'ppc64le'
elif re.match('p(pc|owerpc)(64)', a):
return 'ppc64'
elif a == 'riscv64':
return 'riscv64'
else:
arch = oe.go.map_arch(a)
if not arch:
raise bb.parse.SkipRecipe("Unsupported CPU architecture: %s" % a)
return arch
def go_map_arm(a, d):
if a.startswith("arm"):

View File

@@ -23,6 +23,8 @@ TARGET_CFLAGS = "${BUILD_CFLAGS}"
TARGET_CXXFLAGS = "${BUILD_CXXFLAGS}"
TARGET_LDFLAGS = "${BUILD_LDFLAGS}"
TARGET_FPU = ""
TUNE_FEATURES = ""
ABIEXTENSION = ""
HOST_ARCH = "${BUILD_ARCH}"
HOST_OS = "${BUILD_OS}"

View File

@@ -101,36 +101,12 @@ TESTIMAGE_DUMP_DIR ?= "${LOG_DIR}/runtime-hostdump/"
TESTIMAGE_UPDATE_VARS ?= "DL_DIR WORKDIR DEPLOY_DIR"
testimage_dump_target () {
top -bn1
ps
free
df
# The next command will export the default gateway IP
export DEFAULT_GATEWAY=$(ip route | awk '/default/ { print $3}')
ping -c3 $DEFAULT_GATEWAY
dmesg
netstat -an
ip address
# Next command will dump logs from /var/log/
find /var/log/ -type f 2>/dev/null -exec echo "====================" \; -exec echo {} \; -exec echo "====================" \; -exec cat {} \; -exec echo "" \;
}
testimage_dump_host () {
top -bn1
iostat -x -z -N -d -p ALL 20 2
ps -ef
free
df
memstat
dmesg
ip -s link
netstat -an
}
testimage_dump_monitor () {
query-status
query-block
dump-guest-memory {"paging":false,"protocol":"file:%s.img"}
}
python do_testimage() {

View File

@@ -89,11 +89,6 @@ def get_patched_cves(d):
for url in oe.patch.src_patches(d):
patch_file = bb.fetch.decodeurl(url)[2]
# Remote compressed patches may not be unpacked, so silently ignore them
if not os.path.isfile(patch_file):
bb.warn("%s does not exist, cannot extract CVE list" % patch_file)
continue
# Check patch file name for CVE ID
fname_match = cve_file_name_match.search(patch_file)
if fname_match:
@@ -101,6 +96,12 @@ def get_patched_cves(d):
patched_cves.add(cve)
bb.debug(2, "Found CVE %s from patch file name %s" % (cve, patch_file))
# Remote patches won't be present and compressed patches won't be
# unpacked, so say we're not scanning them
if not os.path.isfile(patch_file):
bb.note("%s is remote or compressed, not scanning content" % patch_file)
continue
with open(patch_file, "r", encoding="utf-8") as f:
try:
patch_text = f.read()
@@ -159,7 +160,7 @@ def cve_check_merge_jsons(output, data):
for product in output["package"]:
if product["name"] == data["package"][0]["name"]:
bb.error("Error adding the same package twice")
bb.error("Error adding the same package %s twice" % product["name"])
return
output["package"].append(data["package"][0])

32
meta/lib/oe/go.py Normal file
View File

@@ -0,0 +1,32 @@
#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
import re
def map_arch(a):
if re.match('i.86', a):
return '386'
elif a == 'x86_64':
return 'amd64'
elif re.match('arm.*', a):
return 'arm'
elif re.match('aarch64.*', a):
return 'arm64'
elif re.match('mips64el.*', a):
return 'mips64le'
elif re.match('mips64.*', a):
return 'mips64'
elif a == 'mips':
return 'mips'
elif a == 'mipsel':
return 'mipsle'
elif re.match('p(pc|owerpc)(64le)', a):
return 'ppc64le'
elif re.match('p(pc|owerpc)(64)', a):
return 'ppc64'
elif a == 'riscv64':
return 'riscv64'
return ''

View File

@@ -0,0 +1,97 @@
From 43651027d24e62a7a463254165e1e46e42aecdea Mon Sep 17 00:00:00 2001
From: Maxim Suhanov <dfirblog@gmail.com>
Date: Thu, 16 Nov 2023 07:21:50 +0000
Subject: [PATCH] fs/ntfs: Fix an OOB write when parsing the $ATTRIBUTE_LIST
attribute for the $MFT file
When parsing an extremely fragmented $MFT file, i.e., the file described
using the $ATTRIBUTE_LIST attribute, current NTFS code will reuse a buffer
containing bytes read from the underlying drive to store sector numbers,
which are consumed later to read data from these sectors into another buffer.
These sectors numbers, two 32-bit integers, are always stored at predefined
offsets, 0x10 and 0x14, relative to first byte of the selected entry within
the $ATTRIBUTE_LIST attribute. Usually, this won't cause any problem.
However, when parsing a specially-crafted file system image, this may cause
the NTFS code to write these integers beyond the buffer boundary, likely
causing the GRUB memory allocator to misbehave or fail. These integers contain
values which are controlled by on-disk structures of the NTFS file system.
Such modification and resulting misbehavior may touch a memory range not
assigned to the GRUB and owned by firmware or another EFI application/driver.
This fix introduces checks to ensure that these sector numbers are never
written beyond the boundary.
Fixes: CVE-2023-4692
Reported-by: Maxim Suhanov <dfirblog@gmail.com>
Signed-off-by: Maxim Suhanov <dfirblog@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
CVE: CVE-2023-4692
Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/grub.git/commit/?id=43651027d24e62a7a463254165e1e46e42aecdea]
Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
---
grub-core/fs/ntfs.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c
index 2f34f76..6009e49 100644
--- a/grub-core/fs/ntfs.c
+++ b/grub-core/fs/ntfs.c
@@ -184,7 +184,7 @@ find_attr (struct grub_ntfs_attr *at, grub_uint8_t attr)
}
if (at->attr_end)
{
- grub_uint8_t *pa;
+ grub_uint8_t *pa, *pa_end;
at->emft_buf = grub_malloc (at->mft->data->mft_size << GRUB_NTFS_BLK_SHR);
if (at->emft_buf == NULL)
@@ -209,11 +209,13 @@ find_attr (struct grub_ntfs_attr *at, grub_uint8_t attr)
}
at->attr_nxt = at->edat_buf;
at->attr_end = at->edat_buf + u32at (pa, 0x30);
+ pa_end = at->edat_buf + n;
}
else
{
at->attr_nxt = at->attr_end + u16at (pa, 0x14);
at->attr_end = at->attr_end + u32at (pa, 4);
+ pa_end = at->mft->buf + (at->mft->data->mft_size << GRUB_NTFS_BLK_SHR);
}
at->flags |= GRUB_NTFS_AF_ALST;
while (at->attr_nxt < at->attr_end)
@@ -230,6 +232,13 @@ find_attr (struct grub_ntfs_attr *at, grub_uint8_t attr)
at->flags |= GRUB_NTFS_AF_GPOS;
at->attr_cur = at->attr_nxt;
pa = at->attr_cur;
+
+ if ((pa >= pa_end) || (pa_end - pa < 0x18))
+ {
+ grub_error (GRUB_ERR_BAD_FS, "can\'t parse attribute list");
+ return NULL;
+ }
+
grub_set_unaligned32 ((char *) pa + 0x10,
grub_cpu_to_le32 (at->mft->data->mft_start));
grub_set_unaligned32 ((char *) pa + 0x14,
@@ -240,6 +249,13 @@ find_attr (struct grub_ntfs_attr *at, grub_uint8_t attr)
{
if (*pa != attr)
break;
+
+ if ((pa >= pa_end) || (pa_end - pa < 0x18))
+ {
+ grub_error (GRUB_ERR_BAD_FS, "can\'t parse attribute list");
+ return NULL;
+ }
+
if (read_attr
(at, pa + 0x10,
u32at (pa, 0x10) * (at->mft->data->mft_size << GRUB_NTFS_BLK_SHR),
--
2.40.0

View File

@@ -0,0 +1,62 @@
From 0ed2458cc4eff6d9a9199527e2a0b6d445802f94 Mon Sep 17 00:00:00 2001
From: Maxim Suhanov <dfirblog@gmail.com>
Date: Mon, 28 Aug 2023 16:32:33 +0300
Subject: [PATCH] fs/ntfs: Fix an OOB read when reading data from the resident
$DATA attribute
When reading a file containing resident data, i.e., the file data is stored in
the $DATA attribute within the NTFS file record, not in external clusters,
there are no checks that this resident data actually fits the corresponding
file record segment.
When parsing a specially-crafted file system image, the current NTFS code will
read the file data from an arbitrary, attacker-chosen memory offset and of
arbitrary, attacker-chosen length.
This allows an attacker to display arbitrary chunks of memory, which could
contain sensitive information like password hashes or even plain-text,
obfuscated passwords from BS EFI variables.
This fix implements a check to ensure that resident data is read from the
corresponding file record segment only.
Fixes: CVE-2023-4693
Reported-by: Maxim Suhanov <dfirblog@gmail.com>
Signed-off-by: Maxim Suhanov <dfirblog@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
Upstream-Status: Backport [https://git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=0ed2458cc4eff6d9a9199527e2a0b6d445802f94]
CVE: CVE-2023-4693
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
---
grub-core/fs/ntfs.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c
index 7e43fd6..8f63c83 100644
--- a/grub-core/fs/ntfs.c
+++ b/grub-core/fs/ntfs.c
@@ -401,7 +401,18 @@ read_data (struct grub_ntfs_attr *at, grub_uint8_t *pa, grub_uint8_t *dest,
{
if (ofs + len > u32at (pa, 0x10))
return grub_error (GRUB_ERR_BAD_FS, "read out of range");
- grub_memcpy (dest, pa + u32at (pa, 0x14) + ofs, len);
+
+ if (u32at (pa, 0x10) > (at->mft->data->mft_size << GRUB_NTFS_BLK_SHR))
+ return grub_error (GRUB_ERR_BAD_FS, "resident attribute too large");
+
+ if (pa >= at->mft->buf + (at->mft->data->mft_size << GRUB_NTFS_BLK_SHR))
+ return grub_error (GRUB_ERR_BAD_FS, "resident attribute out of range");
+
+ if (u16at (pa, 0x14) + u32at (pa, 0x10) >
+ (grub_addr_t) at->mft->buf + (at->mft->data->mft_size << GRUB_NTFS_BLK_SHR) - (grub_addr_t) pa)
+ return grub_error (GRUB_ERR_BAD_FS, "resident attribute out of range");
+
+ grub_memcpy (dest, pa + u16at (pa, 0x14) + ofs, len);
return 0;
}
--
2.25.1

View File

@@ -38,6 +38,8 @@ SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
file://loader-efi-chainloader-Simplify-the-loader-state.patch \
file://commands-boot-Add-API-to-pass-context-to-loader.patch \
file://CVE-2022-28736-loader-efi-chainloader-Use-grub_loader_set_ex.patch \
file://CVE-2023-4692.patch \
file://CVE-2023-4693.patch \
"
SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f"

View File

@@ -26,6 +26,15 @@ SRC_URI = "https://github.com/lathiat/avahi/releases/download/v${PV}/avahi-${PV}
file://0001-Fix-opening-etc-resolv.conf-error.patch \
file://handle-hup.patch \
file://local-ping.patch \
file://CVE-2023-1981.patch \
file://CVE-2023-38469-1.patch \
file://CVE-2023-38469-2.patch \
file://CVE-2023-38470-1.patch \
file://CVE-2023-38470-2.patch \
file://CVE-2023-38471-1.patch \
file://CVE-2023-38471-2.patch \
file://CVE-2023-38472.patch \
file://CVE-2023-38473.patch \
"
UPSTREAM_CHECK_URI = "https://github.com/lathiat/avahi/releases/"

View File

@@ -0,0 +1,58 @@
From a2696da2f2c50ac43b6c4903f72290d5c3fa9f6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
Date: Thu, 17 Nov 2022 01:51:53 +0100
Subject: [PATCH] Emit error if requested service is not found
It currently just crashes instead of replying with error. Check return
value and emit error instead of passing NULL pointer to reply.
Fixes #375
Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/avahi/tree/debian/patches/CVE-2023-1981.patch?h=ubuntu/jammy-security
Upstream commit https://github.com/lathiat/avahi/commit/a2696da2f2c50ac43b6c4903f72290d5c3fa9f6f]
CVE: CVE-2023-1981
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
---
avahi-daemon/dbus-protocol.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/avahi-daemon/dbus-protocol.c b/avahi-daemon/dbus-protocol.c
index 70d7687bc..406d0b441 100644
--- a/avahi-daemon/dbus-protocol.c
+++ b/avahi-daemon/dbus-protocol.c
@@ -375,10 +375,14 @@ static DBusHandlerResult dbus_get_alternative_host_name(DBusConnection *c, DBusM
}
t = avahi_alternative_host_name(n);
- avahi_dbus_respond_string(c, m, t);
- avahi_free(t);
+ if (t) {
+ avahi_dbus_respond_string(c, m, t);
+ avahi_free(t);
- return DBUS_HANDLER_RESULT_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
+ } else {
+ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NOT_FOUND, "Hostname not found");
+ }
}
static DBusHandlerResult dbus_get_alternative_service_name(DBusConnection *c, DBusMessage *m, DBusError *error) {
@@ -389,10 +393,14 @@ static DBusHandlerResult dbus_get_alternative_service_name(DBusConnection *c, DB
}
t = avahi_alternative_service_name(n);
- avahi_dbus_respond_string(c, m, t);
- avahi_free(t);
+ if (t) {
+ avahi_dbus_respond_string(c, m, t);
+ avahi_free(t);
- return DBUS_HANDLER_RESULT_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
+ } else {
+ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NOT_FOUND, "Service not found");
+ }
}
static DBusHandlerResult dbus_create_new_entry_group(DBusConnection *c, DBusMessage *m, DBusError *error) {

View File

@@ -0,0 +1,47 @@
From a337a1ba7d15853fb56deef1f464529af6e3a1cf Mon Sep 17 00:00:00 2001
From: Evgeny Vereshchagin <evvers@ya.ru>
Date: Mon, 23 Oct 2023 20:29:31 +0000
Subject: [PATCH]core: reject overly long TXT resource records
Closes https://github.com/lathiat/avahi/issues/455
Upstream-Status: Backport [https://github.com/lathiat/avahi/pull/500/commits/a337a1ba7d15853fb56deef1f464529af6e3a1cf]
CVE: CVE-2023-38469
Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
---
avahi-core/rr.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/avahi-core/rr.c b/avahi-core/rr.c
index 7fa0bee..b03a24c 100644
--- a/avahi-core/rr.c
+++ b/avahi-core/rr.c
@@ -32,6 +32,7 @@
#include <avahi-common/malloc.h>
#include <avahi-common/defs.h>
+#include "dns.h"
#include "rr.h"
#include "log.h"
#include "util.h"
@@ -688,11 +689,17 @@ int avahi_record_is_valid(AvahiRecord *r) {
case AVAHI_DNS_TYPE_TXT: {
AvahiStringList *strlst;
+ size_t used = 0;
- for (strlst = r->data.txt.string_list; strlst; strlst = strlst->next)
+ for (strlst = r->data.txt.string_list; strlst; strlst = strlst->next) {
if (strlst->size > 255 || strlst->size <= 0)
return 0;
+ used += 1+strlst->size;
+ if (used > AVAHI_DNS_RDATA_MAX)
+ return 0;
+ }
+
return 1;
}
}
--
2.40.0

View File

@@ -0,0 +1,65 @@
From c6cab87df290448a63323c8ca759baa516166237 Mon Sep 17 00:00:00 2001
From: Evgeny Vereshchagin <evvers@ya.ru>
Date: Wed, 25 Oct 2023 18:15:42 +0000
Subject: [PATCH] tests: pass overly long TXT resource records
to make sure they don't crash avahi any more.
It reproduces https://github.com/lathiat/avahi/issues/455
Canonical notes:
nickgalanis> removed first hunk since there is no .github dir in this release
Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/avahi/tree/debian/patches/CVE-2023-38469-2.patch?h=ubuntu/jammy-security
Upstream commit https://github.com/lathiat/avahi/commit/c6cab87df290448a63323c8ca759baa516166237]
CVE: CVE-2023-38469
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
---
avahi-client/client-test.c | 14 ++++++++++++++
1 files changed, 14 insertions(+)
Index: avahi-0.8/avahi-client/client-test.c
===================================================================
--- avahi-0.8.orig/avahi-client/client-test.c
+++ avahi-0.8/avahi-client/client-test.c
@@ -22,6 +22,7 @@
#endif
#include <stdio.h>
+#include <string.h>
#include <assert.h>
#include <avahi-client/client.h>
@@ -33,6 +34,8 @@
#include <avahi-common/malloc.h>
#include <avahi-common/timeval.h>
+#include <avahi-core/dns.h>
+
static const AvahiPoll *poll_api = NULL;
static AvahiSimplePoll *simple_poll = NULL;
@@ -222,6 +225,9 @@ int main (AVAHI_GCC_UNUSED int argc, AVA
uint32_t cookie;
struct timeval tv;
AvahiAddress a;
+ uint8_t rdata[AVAHI_DNS_RDATA_MAX+1];
+ AvahiStringList *txt = NULL;
+ int r;
simple_poll = avahi_simple_poll_new();
poll_api = avahi_simple_poll_get(simple_poll);
@@ -258,6 +264,14 @@ int main (AVAHI_GCC_UNUSED int argc, AVA
printf("%s\n", avahi_strerror(avahi_entry_group_add_service (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "Lathiat's Site", "_http._tcp", NULL, NULL, 80, "foo=bar", NULL)));
printf("add_record: %d\n", avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "\5booya", 6));
+ memset(rdata, 1, sizeof(rdata));
+ r = avahi_string_list_parse(rdata, sizeof(rdata), &txt);
+ assert(r >= 0);
+ assert(avahi_string_list_serialize(txt, NULL, 0) == sizeof(rdata));
+ error = avahi_entry_group_add_service_strlst(group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", "_qotd._tcp", NULL, NULL, 123, txt);
+ assert(error == AVAHI_ERR_INVALID_RECORD);
+ avahi_string_list_free(txt);
+
avahi_entry_group_commit (group);
domain = avahi_domain_browser_new (avahi, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, 0, avahi_domain_browser_callback, (char*) "omghai3u");

View File

@@ -0,0 +1,59 @@
From 26806dbde54c5b40a2bf108d334ba59ec9d242d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
Date: Tue, 11 Apr 2023 15:29:59 +0200
Subject: [PATCH]Ensure each label is at least one byte long
The only allowed exception is single dot, where it should return empty
string.
Fixes #454.
Upstream-Status: Backport [https://github.com/lathiat/avahi/commit/94cb6489114636940ac683515417990b55b5d66c]
CVE: CVE-2023-38470
Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
---
avahi-common/domain-test.c | 14 ++++++++++++++
avahi-common/domain.c | 2 +-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/avahi-common/domain-test.c b/avahi-common/domain-test.c
index cf763ec..3acc1c1 100644
--- a/avahi-common/domain-test.c
+++ b/avahi-common/domain-test.c
@@ -45,6 +45,20 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
printf("%s\n", s = avahi_normalize_name_strdup("fo\\\\o\\..f oo."));
avahi_free(s);
+ printf("%s\n", s = avahi_normalize_name_strdup("."));
+ avahi_free(s);
+
+ s = avahi_normalize_name_strdup(",.=.}.=.?-.}.=.?.?.}.}.?.?.?.z.?.?.}.}."
+ "}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.}.}.}"
+ ".?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.?.zM.?`"
+ "?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}??.}.}.?.?."
+ "?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.?`?.}.}.}."
+ "??.?.zM.?`?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}?"
+ "?.}.}.?.?.?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM."
+ "?`?.}.}.}.?.?.?.r.=.=.?.?`.?.?}.}.}.?.?.?.r.=.?.}.=.?.?."
+ "}.?.?.?.}.=.?.?.}");
+ assert(s == NULL);
+
printf("%i\n", avahi_domain_equal("\\065aa bbb\\.\\046cc.cc\\\\.dee.fff.", "Aaa BBB\\.\\.cc.cc\\\\.dee.fff"));
printf("%i\n", avahi_domain_equal("A", "a"));
diff --git a/avahi-common/domain.c b/avahi-common/domain.c
index 3b1ab68..e66d241 100644
--- a/avahi-common/domain.c
+++ b/avahi-common/domain.c
@@ -201,7 +201,7 @@ char *avahi_normalize_name(const char *s, char *ret_s, size_t size) {
}
if (!empty) {
- if (size < 1)
+ if (size < 2)
return NULL;
*(r++) = '.';
--
2.40.0

View File

@@ -0,0 +1,52 @@
From 20dec84b2480821704258bc908e7b2bd2e883b24 Mon Sep 17 00:00:00 2001
From: Evgeny Vereshchagin <evvers@ya.ru>
Date: Tue, 19 Sep 2023 03:21:25 +0000
Subject: [PATCH] [common] bail out when escaped labels can't fit into ret
Fixes:
```
==93410==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f9e76f14c16 at pc 0x00000047208d bp 0x7ffee90a6a00 sp 0x7ffee90a61c8
READ of size 1110 at 0x7f9e76f14c16 thread T0
#0 0x47208c in __interceptor_strlen (out/fuzz-domain+0x47208c) (BuildId: 731b20c1eef22c2104e75a6496a399b10cfc7cba)
#1 0x534eb0 in avahi_strdup avahi/avahi-common/malloc.c:167:12
#2 0x53862c in avahi_normalize_name_strdup avahi/avahi-common/domain.c:226:12
```
and
```
fuzz-domain: fuzz/fuzz-domain.c:38: int LLVMFuzzerTestOneInput(const uint8_t *, size_t): Assertion `avahi_domain_equal(s, t)' failed.
==101571== ERROR: libFuzzer: deadly signal
#0 0x501175 in __sanitizer_print_stack_trace (/home/vagrant/avahi/out/fuzz-domain+0x501175) (BuildId: 682bf6400aff9d41b64b6e2cc3ef5ad600216ea8)
#1 0x45ad2c in fuzzer::PrintStackTrace() (/home/vagrant/avahi/out/fuzz-domain+0x45ad2c) (BuildId: 682bf6400aff9d41b64b6e2cc3ef5ad600216ea8)
#2 0x43fc07 in fuzzer::Fuzzer::CrashCallback() (/home/vagrant/avahi/out/fuzz-domain+0x43fc07) (BuildId: 682bf6400aff9d41b64b6e2cc3ef5ad600216ea8)
#3 0x7f1581d7ebaf (/lib64/libc.so.6+0x3dbaf) (BuildId: c9f62793b9e886eb1b95077d4f26fe2b4aa1ac25)
#4 0x7f1581dcf883 in __pthread_kill_implementation (/lib64/libc.so.6+0x8e883) (BuildId: c9f62793b9e886eb1b95077d4f26fe2b4aa1ac25)
#5 0x7f1581d7eafd in gsignal (/lib64/libc.so.6+0x3dafd) (BuildId: c9f62793b9e886eb1b95077d4f26fe2b4aa1ac25)
#6 0x7f1581d6787e in abort (/lib64/libc.so.6+0x2687e) (BuildId: c9f62793b9e886eb1b95077d4f26fe2b4aa1ac25)
#7 0x7f1581d6779a in __assert_fail_base.cold (/lib64/libc.so.6+0x2679a) (BuildId: c9f62793b9e886eb1b95077d4f26fe2b4aa1ac25)
#8 0x7f1581d77186 in __assert_fail (/lib64/libc.so.6+0x36186) (BuildId: c9f62793b9e886eb1b95077d4f26fe2b4aa1ac25)
#9 0x5344a4 in LLVMFuzzerTestOneInput /home/vagrant/avahi/fuzz/fuzz-domain.c:38:9
```
It's a follow-up to 94cb6489114636940ac683515417990b55b5d66c
Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/avahi/tree/debian/patches/CVE-2023-38470-2.patch?h=ubuntu/jammy-security
CVE: CVE-2023-38470 #Follow-up patch
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
---
avahi-common/domain.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: avahi-0.8/avahi-common/domain.c
===================================================================
--- avahi-0.8.orig/avahi-common/domain.c
+++ avahi-0.8/avahi-common/domain.c
@@ -210,7 +210,8 @@ char *avahi_normalize_name(const char *s
} else
empty = 0;
- avahi_escape_label(label, strlen(label), &r, &size);
+ if (!(avahi_escape_label(label, strlen(label), &r, &size)))
+ return NULL;
}
return ret_s;

View File

@@ -0,0 +1,73 @@
From 9cd4ea89b3ac89b7bb0196fda1aa88cd51b106b6 Mon Sep 17 00:00:00 2001
From: Michal Sekletar <msekleta@redhat.com>
Date: Mon, 23 Oct 2023 13:38:35 +0200
Subject: [PATCH] core: extract host name using avahi_unescape_label()
Previously we could create invalid escape sequence when we split the
string on dot. For example, from valid host name "foo\\.bar" we have
created invalid name "foo\\" and tried to set that as the host name
which crashed the daemon.
Fixes #453
Upstream-Status: Backport [https://github.com/lathiat/avahi/commit/894f085f402e023a98cbb6f5a3d117bd88d93b09]
CVE: CVE-2023-38471
Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
---
avahi-core/server.c | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/avahi-core/server.c b/avahi-core/server.c
index e507750..40f1d68 100644
--- a/avahi-core/server.c
+++ b/avahi-core/server.c
@@ -1295,7 +1295,11 @@ static void update_fqdn(AvahiServer *s) {
}
int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
- char *hn = NULL;
+ char label_escaped[AVAHI_LABEL_MAX*4+1];
+ char label[AVAHI_LABEL_MAX];
+ char *hn = NULL, *h;
+ size_t len;
+
assert(s);
AVAHI_CHECK_VALIDITY(s, !host_name || avahi_is_valid_host_name(host_name), AVAHI_ERR_INVALID_HOST_NAME);
@@ -1305,17 +1309,28 @@ int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
else
hn = avahi_normalize_name_strdup(host_name);
- hn[strcspn(hn, ".")] = 0;
+ h = hn;
+ if (!avahi_unescape_label((const char **)&hn, label, sizeof(label))) {
+ avahi_free(h);
+ return AVAHI_ERR_INVALID_HOST_NAME;
+ }
+
+ avahi_free(h);
+
+ h = label_escaped;
+ len = sizeof(label_escaped);
+ if (!avahi_escape_label(label, strlen(label), &h, &len))
+ return AVAHI_ERR_INVALID_HOST_NAME;
- if (avahi_domain_equal(s->host_name, hn) && s->state != AVAHI_SERVER_COLLISION) {
- avahi_free(hn);
+ if (avahi_domain_equal(s->host_name, label_escaped) && s->state != AVAHI_SERVER_COLLISION)
return avahi_server_set_errno(s, AVAHI_ERR_NO_CHANGE);
- }
withdraw_host_rrs(s);
avahi_free(s->host_name);
- s->host_name = hn;
+ s->host_name = avahi_strdup(label_escaped);
+ if (!s->host_name)
+ return AVAHI_ERR_NO_MEMORY;
update_fqdn(s);
--
2.40.0

View File

@@ -0,0 +1,52 @@
From b675f70739f404342f7f78635d6e2dcd85a13460 Mon Sep 17 00:00:00 2001
From: Evgeny Vereshchagin <evvers@ya.ru>
Date: Tue, 24 Oct 2023 22:04:51 +0000
Subject: [PATCH] core: return errors from avahi_server_set_host_name properly
It's a follow-up to 894f085f402e023a98cbb6f5a3d117bd88d93b09
Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/avahi/tree/debian/patches/CVE-2023-38471-2.patch?h=ubuntu/jammy-security
Upstream commit https://github.com/lathiat/avahi/commit/b675f70739f404342f7f78635d6e2dcd85a13460]
CVE: CVE-2023-38471 #Follow-up Patch
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
---
avahi-core/server.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
Index: avahi-0.8/avahi-core/server.c
===================================================================
--- avahi-0.8.orig/avahi-core/server.c
+++ avahi-0.8/avahi-core/server.c
@@ -1309,10 +1309,13 @@ int avahi_server_set_host_name(AvahiServ
else
hn = avahi_normalize_name_strdup(host_name);
+ if (!hn)
+ return avahi_server_set_errno(s, AVAHI_ERR_NO_MEMORY);
+
h = hn;
if (!avahi_unescape_label((const char **)&hn, label, sizeof(label))) {
avahi_free(h);
- return AVAHI_ERR_INVALID_HOST_NAME;
+ return avahi_server_set_errno(s, AVAHI_ERR_INVALID_HOST_NAME);
}
avahi_free(h);
@@ -1320,7 +1323,7 @@ int avahi_server_set_host_name(AvahiServ
h = label_escaped;
len = sizeof(label_escaped);
if (!avahi_escape_label(label, strlen(label), &h, &len))
- return AVAHI_ERR_INVALID_HOST_NAME;
+ return avahi_server_set_errno(s, AVAHI_ERR_INVALID_HOST_NAME);
if (avahi_domain_equal(s->host_name, label_escaped) && s->state != AVAHI_SERVER_COLLISION)
return avahi_server_set_errno(s, AVAHI_ERR_NO_CHANGE);
@@ -1330,7 +1333,7 @@ int avahi_server_set_host_name(AvahiServ
avahi_free(s->host_name);
s->host_name = avahi_strdup(label_escaped);
if (!s->host_name)
- return AVAHI_ERR_NO_MEMORY;
+ return avahi_server_set_errno(s, AVAHI_ERR_NO_MEMORY);
update_fqdn(s);

View File

@@ -0,0 +1,46 @@
From b024ae5749f4aeba03478e6391687c3c9c8dee40 Mon Sep 17 00:00:00 2001
From: Michal Sekletar <msekleta@redhat.com>
Date: Thu, 19 Oct 2023 17:36:44 +0200
Subject: [PATCH] core: make sure there is rdata to process before parsing it
Fixes #452
CVE-2023-38472
Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/avahi/tree/debian/patches/CVE-2023-38472.patch?h=ubuntu/jammy-security
Upstream commit https://github.com/lathiat/avahi/commit/b024ae5749f4aeba03478e6391687c3c9c8dee40]
CVE: CVE-2023-38472
Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
---
avahi-client/client-test.c | 3 +++
avahi-daemon/dbus-entry-group.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
Index: avahi-0.8/avahi-client/client-test.c
===================================================================
--- avahi-0.8.orig/avahi-client/client-test.c
+++ avahi-0.8/avahi-client/client-test.c
@@ -272,6 +272,9 @@ int main (AVAHI_GCC_UNUSED int argc, AVA
assert(error == AVAHI_ERR_INVALID_RECORD);
avahi_string_list_free(txt);
+ error = avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "", 0);
+ assert(error != AVAHI_OK);
+
avahi_entry_group_commit (group);
domain = avahi_domain_browser_new (avahi, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, 0, avahi_domain_browser_callback, (char*) "omghai3u");
Index: avahi-0.8/avahi-daemon/dbus-entry-group.c
===================================================================
--- avahi-0.8.orig/avahi-daemon/dbus-entry-group.c
+++ avahi-0.8/avahi-daemon/dbus-entry-group.c
@@ -340,7 +340,7 @@ DBusHandlerResult avahi_dbus_msg_entry_g
if (!(r = avahi_record_new_full (name, clazz, type, ttl)))
return avahi_dbus_respond_error(c, m, AVAHI_ERR_NO_MEMORY, NULL);
- if (avahi_rdata_parse (r, rdata, size) < 0) {
+ if (!rdata || avahi_rdata_parse (r, rdata, size) < 0) {
avahi_record_unref (r);
return avahi_dbus_respond_error(c, m, AVAHI_ERR_INVALID_RDATA, NULL);
}

View File

@@ -0,0 +1,108 @@
From b448c9f771bada14ae8de175695a9729f8646797 Mon Sep 17 00:00:00 2001
From: Michal Sekletar <msekleta@redhat.com>
Date: Wed, 11 Oct 2023 17:45:44 +0200
Subject: [PATCH]common: derive alternative host name from its
unescaped version
Normalization of input makes sure we don't have to deal with special
cases like unescaped dot at the end of label.
Upstream-Status: Backport [https://github.com/lathiat/avahi/commit/b448c9f771bada14ae8de175695a9729f8646797]
CVE: CVE-2023-38473
Signed-off-by: Meenali Gupta <meenali.gupta@windriver.com>
---
avahi-common/alternative-test.c | 3 +++
avahi-common/alternative.c | 27 +++++++++++++++++++--------
2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/avahi-common/alternative-test.c b/avahi-common/alternative-test.c
index 9255435..681fc15 100644
--- a/avahi-common/alternative-test.c
+++ b/avahi-common/alternative-test.c
@@ -31,6 +31,9 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
const char* const test_strings[] = {
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXüüüüüüü",
+ ").",
+ "\\.",
+ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\\",
"gurke",
"-",
" #",
diff --git a/avahi-common/alternative.c b/avahi-common/alternative.c
index b3d39f0..a094e6d 100644
--- a/avahi-common/alternative.c
+++ b/avahi-common/alternative.c
@@ -49,15 +49,20 @@ static void drop_incomplete_utf8(char *c) {
}
char *avahi_alternative_host_name(const char *s) {
+ char label[AVAHI_LABEL_MAX], alternative[AVAHI_LABEL_MAX*4+1];
+ char *alt, *r, *ret;
const char *e;
- char *r;
+ size_t len;
assert(s);
if (!avahi_is_valid_host_name(s))
return NULL;
- if ((e = strrchr(s, '-'))) {
+ if (!avahi_unescape_label(&s, label, sizeof(label)))
+ return NULL;
+
+ if ((e = strrchr(label, '-'))) {
const char *p;
e++;
@@ -74,19 +79,18 @@ char *avahi_alternative_host_name(const char *s) {
if (e) {
char *c, *m;
- size_t l;
int n;
n = atoi(e)+1;
if (!(m = avahi_strdup_printf("%i", n)))
return NULL;
- l = e-s-1;
+ len = e-label-1;
- if (l >= AVAHI_LABEL_MAX-1-strlen(m)-1)
- l = AVAHI_LABEL_MAX-1-strlen(m)-1;
+ if (len >= AVAHI_LABEL_MAX-1-strlen(m)-1)
+ len = AVAHI_LABEL_MAX-1-strlen(m)-1;
- if (!(c = avahi_strndup(s, l))) {
+ if (!(c = avahi_strndup(label, len))) {
avahi_free(m);
return NULL;
}
@@ -100,7 +104,7 @@ char *avahi_alternative_host_name(const char *s) {
} else {
char *c;
- if (!(c = avahi_strndup(s, AVAHI_LABEL_MAX-1-2)))
+ if (!(c = avahi_strndup(label, AVAHI_LABEL_MAX-1-2)))
return NULL;
drop_incomplete_utf8(c);
@@ -109,6 +113,13 @@ char *avahi_alternative_host_name(const char *s) {
avahi_free(c);
}
+ alt = alternative;
+ len = sizeof(alternative);
+ ret = avahi_escape_label(r, strlen(r), &alt, &len);
+
+ avahi_free(r);
+ r = avahi_strdup(ret);
+
assert(avahi_is_valid_host_name(r));
return r;
--
2.40.0

View File

@@ -54,6 +54,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '', 'file://0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch', d)} \
file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
file://0001-test-gatt-Fix-hung-issue.patch \
file://CVE-2023-45866.patch \
"
S = "${WORKDIR}/bluez-${PV}"

View File

@@ -0,0 +1,56 @@
From 25a471a83e02e1effb15d5a488b3f0085eaeb675 Mon Sep 17 00:00:00 2001
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: Tue, 10 Oct 2023 13:03:12 -0700
Subject: [PATCH] input.conf: Change default of ClassicBondedOnly
This changes the default of ClassicBondedOnly since defaulting to false
is not inline with HID specification which mandates the of Security Mode
4:
BLUETOOTH SPECIFICATION Page 84 of 123
Human Interface Device (HID) Profile:
5.4.3.4.2 Security Modes
Bluetooth HID Hosts shall use Security Mode 4 when interoperating with
Bluetooth HID devices that are compliant to the Bluetooth Core
Specification v2.1+EDR[6].
Upstream-Status: Backport
[https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/profiles/input?id=25a471a83e02e1effb15d5a488b3f0085eaeb675]
CVE: CVE-2023-45866
Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
profiles/input/device.c | 2 +-
profiles/input/input.conf | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/profiles/input/device.c b/profiles/input/device.c
index 4a50ea9..4310dd1 100644
--- a/profiles/input/device.c
+++ b/profiles/input/device.c
@@ -81,7 +81,7 @@ struct input_device {
static int idle_timeout = 0;
static bool uhid_enabled = false;
-static bool classic_bonded_only = false;
+static bool classic_bonded_only = true;
void input_set_idle_timeout(int timeout)
{
diff --git a/profiles/input/input.conf b/profiles/input/input.conf
index 4c70bc5..d8645f3 100644
--- a/profiles/input/input.conf
+++ b/profiles/input/input.conf
@@ -17,7 +17,7 @@
# platforms may want to make sure that input connections only come from bonded
# device connections. Several older mice have been known for not supporting
# pairing/encryption.
-# Defaults to false to maximize device compatibility.
+# Defaults to true for security.
#ClassicBondedOnly=true
# LE upgrade security
--
2.40.0

View File

@@ -0,0 +1,476 @@
(modified to not remove ssh_packet_read_expect() and to add to
KexAlgorithms in sshd.c and sshconnect2.c as this version pre-dates
kex_proposal_populate_entries())
Backport of:
From 1edb00c58f8a6875fad6a497aa2bacf37f9e6cd5 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Mon, 18 Dec 2023 14:45:17 +0000
Subject: [PATCH] upstream: implement "strict key exchange" in ssh and sshd
This adds a protocol extension to improve the integrity of the SSH
transport protocol, particular in and around the initial key exchange
(KEX) phase.
Full details of the extension are in the PROTOCOL file.
with markus@
OpenBSD-Commit-ID: 2a66ac962f0a630d7945fee54004ed9e9c439f14
Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/openssh/tree/debian/patches/CVE-2023-48795.patch?h=ubuntu/jammy-security
Upstream commit https://github.com/openssh/openssh-portable/commit/1edb00c58f8a6875fad6a497aa2bacf37f9e6cd5]
CVE: CVE-2023-48795
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
---
PROTOCOL | 26 +++++++++++++++++
kex.c | 72 +++++++++++++++++++++++++++++++----------------
kex.h | 1 +
packet.c | 78 ++++++++++++++++++++++++++++++++++++++-------------
sshconnect2.c | 14 +++------
sshd.c | 7 +++--
6 files changed, 142 insertions(+), 56 deletions(-)
diff --git a/PROTOCOL b/PROTOCOL
index e6a7d60..971f01e 100644
--- a/PROTOCOL
+++ b/PROTOCOL
@@ -102,6 +102,32 @@ OpenSSH supports the use of ECDH in Curve25519 for key exchange as
described at:
http://git.libssh.org/users/aris/libssh.git/plain/doc/curve25519-sha256@libssh.org.txt?h=curve25519
+1.9 transport: strict key exchange extension
+
+OpenSSH supports a number of transport-layer hardening measures under
+a "strict KEX" feature. This feature is signalled similarly to the
+RFC8308 ext-info feature: by including a additional algorithm in the
+initiial SSH2_MSG_KEXINIT kex_algorithms field. The client may append
+"kex-strict-c-v00@openssh.com" to its kex_algorithms and the server
+may append "kex-strict-s-v00@openssh.com". These pseudo-algorithms
+are only valid in the initial SSH2_MSG_KEXINIT and MUST be ignored
+if they are present in subsequent SSH2_MSG_KEXINIT packets.
+
+When an endpoint that supports this extension observes this algorithm
+name in a peer's KEXINIT packet, it MUST make the following changes to
+the the protocol:
+
+a) During initial KEX, terminate the connection if any unexpected or
+ out-of-sequence packet is received. This includes terminating the
+ connection if the first packet received is not SSH2_MSG_KEXINIT.
+ Unexpected packets for the purpose of strict KEX include messages
+ that are otherwise valid at any time during the connection such as
+ SSH2_MSG_DEBUG and SSH2_MSG_IGNORE.
+b) After sending or receiving a SSH2_MSG_NEWKEYS message, reset the
+ packet sequence number to zero. This behaviour persists for the
+ duration of the connection (i.e. not just the first
+ SSH2_MSG_NEWKEYS).
+
2. Connection protocol changes
2.1. connection: Channel write close extension "eow@openssh.com"
diff --git a/kex.c b/kex.c
index 0bcd27d..e7b2d4d 100644
--- a/kex.c
+++ b/kex.c
@@ -63,7 +63,7 @@
#include "digest.h"
/* prototype */
-static int kex_choose_conf(struct ssh *);
+static int kex_choose_conf(struct ssh *, uint32_t seq);
static int kex_input_newkeys(int, u_int32_t, struct ssh *);
static const char * const proposal_names[PROPOSAL_MAX] = {
@@ -175,6 +175,18 @@ kex_names_valid(const char *names)
return 1;
}
+/* returns non-zero if proposal contains any algorithm from algs */
+static int
+has_any_alg(const char *proposal, const char *algs)
+{
+ char *cp;
+
+ if ((cp = match_list(proposal, algs, NULL)) == NULL)
+ return 0;
+ free(cp);
+ return 1;
+}
+
/*
* Concatenate algorithm names, avoiding duplicates in the process.
* Caller must free returned string.
@@ -182,7 +194,7 @@ kex_names_valid(const char *names)
char *
kex_names_cat(const char *a, const char *b)
{
- char *ret = NULL, *tmp = NULL, *cp, *p, *m;
+ char *ret = NULL, *tmp = NULL, *cp, *p;
size_t len;
if (a == NULL || *a == '\0')
@@ -199,10 +211,8 @@ kex_names_cat(const char *a, const char *b)
}
strlcpy(ret, a, len);
for ((p = strsep(&cp, ",")); p && *p != '\0'; (p = strsep(&cp, ","))) {
- if ((m = match_list(ret, p, NULL)) != NULL) {
- free(m);
+ if (has_any_alg(ret, p))
continue; /* Algorithm already present */
- }
if (strlcat(ret, ",", len) >= len ||
strlcat(ret, p, len) >= len) {
free(tmp);
@@ -410,7 +420,12 @@ kex_protocol_error(int type, u_int32_t seq, struct ssh *ssh)
{
int r;
- error("kex protocol error: type %d seq %u", type, seq);
+ /* If in strict mode, any unexpected message is an error */
+ if ((ssh->kex->flags & KEX_INITIAL) && ssh->kex->kex_strict) {
+ ssh_packet_disconnect(ssh, "strict KEX violation: "
+ "unexpected packet type %u (seqnr %u)", type, seq);
+ }
+ error_f("type %u seq %u", type, seq);
if ((r = sshpkt_start(ssh, SSH2_MSG_UNIMPLEMENTED)) != 0 ||
(r = sshpkt_put_u32(ssh, seq)) != 0 ||
(r = sshpkt_send(ssh)) != 0)
@@ -485,6 +500,11 @@ kex_input_ext_info(int type, u_int32_t seq, struct ssh *ssh)
ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &kex_protocol_error);
if ((r = sshpkt_get_u32(ssh, &ninfo)) != 0)
return r;
+ if (ninfo >= 1024) {
+ error("SSH2_MSG_EXT_INFO with too many entries, expected "
+ "<=1024, received %u", ninfo);
+ return dispatch_protocol_error(type, seq, ssh);
+ }
for (i = 0; i < ninfo; i++) {
if ((r = sshpkt_get_cstring(ssh, &name, NULL)) != 0)
return r;
@@ -600,7 +620,7 @@ kex_input_kexinit(int type, u_int32_t seq, struct ssh *ssh)
error_f("no kex");
return SSH_ERR_INTERNAL_ERROR;
}
- ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, NULL);
+ ssh_dispatch_set(ssh, SSH2_MSG_KEXINIT, &kex_protocol_error);
ptr = sshpkt_ptr(ssh, &dlen);
if ((r = sshbuf_put(kex->peer, ptr, dlen)) != 0)
return r;
@@ -636,7 +656,7 @@ kex_input_kexinit(int type, u_int32_t seq, struct ssh *ssh)
if (!(kex->flags & KEX_INIT_SENT))
if ((r = kex_send_kexinit(ssh)) != 0)
return r;
- if ((r = kex_choose_conf(ssh)) != 0)
+ if ((r = kex_choose_conf(ssh, seq)) != 0)
return r;
if (kex->kex_type < KEX_MAX && kex->kex[kex->kex_type] != NULL)
@@ -900,20 +920,14 @@ proposals_match(char *my[PROPOSAL_MAX], char *peer[PROPOSAL_MAX])
return (1);
}
-/* returns non-zero if proposal contains any algorithm from algs */
static int
-has_any_alg(const char *proposal, const char *algs)
+kexalgs_contains(char **peer, const char *ext)
{
- char *cp;
-
- if ((cp = match_list(proposal, algs, NULL)) == NULL)
- return 0;
- free(cp);
- return 1;
+ return has_any_alg(peer[PROPOSAL_KEX_ALGS], ext);
}
static int
-kex_choose_conf(struct ssh *ssh)
+kex_choose_conf(struct ssh *ssh, uint32_t seq)
{
struct kex *kex = ssh->kex;
struct newkeys *newkeys;
@@ -938,13 +952,23 @@ kex_choose_conf(struct ssh *ssh)
sprop=peer;
}
- /* Check whether client supports ext_info_c */
- if (kex->server && (kex->flags & KEX_INITIAL)) {
- char *ext;
-
- ext = match_list("ext-info-c", peer[PROPOSAL_KEX_ALGS], NULL);
- kex->ext_info_c = (ext != NULL);
- free(ext);
+ /* Check whether peer supports ext_info/kex_strict */
+ if ((kex->flags & KEX_INITIAL) != 0) {
+ if (kex->server) {
+ kex->ext_info_c = kexalgs_contains(peer, "ext-info-c");
+ kex->kex_strict = kexalgs_contains(peer,
+ "kex-strict-c-v00@openssh.com");
+ } else {
+ kex->kex_strict = kexalgs_contains(peer,
+ "kex-strict-s-v00@openssh.com");
+ }
+ if (kex->kex_strict) {
+ debug3_f("will use strict KEX ordering");
+ if (seq != 0)
+ ssh_packet_disconnect(ssh,
+ "strict KEX violation: "
+ "KEXINIT was not the first packet");
+ }
}
/* Check whether client supports rsa-sha2 algorithms */
diff --git a/kex.h b/kex.h
index c353295..d97323e 100644
--- a/kex.h
+++ b/kex.h
@@ -148,6 +148,7 @@ struct kex {
u_int kex_type;
char *server_sig_algs;
int ext_info_c;
+ int kex_strict;
struct sshbuf *my;
struct sshbuf *peer;
struct sshbuf *client_version;
diff --git a/packet.c b/packet.c
index bde6c10..28f3729 100644
--- a/packet.c
+++ b/packet.c
@@ -1205,8 +1205,13 @@ ssh_packet_send2_wrapped(struct ssh *ssh)
sshbuf_dump(state->output, stderr);
#endif
/* increment sequence number for outgoing packets */
- if (++state->p_send.seqnr == 0)
+ if (++state->p_send.seqnr == 0) {
+ if ((ssh->kex->flags & KEX_INITIAL) != 0) {
+ ssh_packet_disconnect(ssh, "outgoing sequence number "
+ "wrapped during initial key exchange");
+ }
logit("outgoing seqnr wraps around");
+ }
if (++state->p_send.packets == 0)
if (!(ssh->compat & SSH_BUG_NOREKEY))
return SSH_ERR_NEED_REKEY;
@@ -1214,6 +1219,11 @@ ssh_packet_send2_wrapped(struct ssh *ssh)
state->p_send.bytes += len;
sshbuf_reset(state->outgoing_packet);
+ if (type == SSH2_MSG_NEWKEYS && ssh->kex->kex_strict) {
+ debug_f("resetting send seqnr %u", state->p_send.seqnr);
+ state->p_send.seqnr = 0;
+ }
+
if (type == SSH2_MSG_NEWKEYS)
r = ssh_set_newkeys(ssh, MODE_OUT);
else if (type == SSH2_MSG_USERAUTH_SUCCESS && state->server_side)
@@ -1342,8 +1352,7 @@ ssh_packet_read_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p)
/* Stay in the loop until we have received a complete packet. */
for (;;) {
/* Try to read a packet from the buffer. */
- r = ssh_packet_read_poll_seqnr(ssh, typep, seqnr_p);
- if (r != 0)
+ if ((r = ssh_packet_read_poll_seqnr(ssh, typep, seqnr_p)) != 0)
break;
/* If we got a packet, return it. */
if (*typep != SSH_MSG_NONE)
@@ -1627,10 +1636,16 @@ ssh_packet_read_poll2(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p)
if ((r = sshbuf_consume(state->input, mac->mac_len)) != 0)
goto out;
}
+
if (seqnr_p != NULL)
*seqnr_p = state->p_read.seqnr;
- if (++state->p_read.seqnr == 0)
+ if (++state->p_read.seqnr == 0) {
+ if ((ssh->kex->flags & KEX_INITIAL) != 0) {
+ ssh_packet_disconnect(ssh, "incoming sequence number "
+ "wrapped during initial key exchange");
+ }
logit("incoming seqnr wraps around");
+ }
if (++state->p_read.packets == 0)
if (!(ssh->compat & SSH_BUG_NOREKEY))
return SSH_ERR_NEED_REKEY;
@@ -1696,6 +1711,10 @@ ssh_packet_read_poll2(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p)
#endif
/* reset for next packet */
state->packlen = 0;
+ if (*typep == SSH2_MSG_NEWKEYS && ssh->kex->kex_strict) {
+ debug_f("resetting read seqnr %u", state->p_read.seqnr);
+ state->p_read.seqnr = 0;
+ }
if ((r = ssh_packet_check_rekey(ssh)) != 0)
return r;
@@ -1716,10 +1735,39 @@ ssh_packet_read_poll_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p)
r = ssh_packet_read_poll2(ssh, typep, seqnr_p);
if (r != 0)
return r;
- if (*typep) {
- state->keep_alive_timeouts = 0;
- DBG(debug("received packet type %d", *typep));
+ if (*typep == 0) {
+ /* no message ready */
+ return 0;
+ }
+ state->keep_alive_timeouts = 0;
+ DBG(debug("received packet type %d", *typep));
+
+ /* Always process disconnect messages */
+ if (*typep == SSH2_MSG_DISCONNECT) {
+ if ((r = sshpkt_get_u32(ssh, &reason)) != 0 ||
+ (r = sshpkt_get_string(ssh, &msg, NULL)) != 0)
+ return r;
+ /* Ignore normal client exit notifications */
+ do_log2(ssh->state->server_side &&
+ reason == SSH2_DISCONNECT_BY_APPLICATION ?
+ SYSLOG_LEVEL_INFO : SYSLOG_LEVEL_ERROR,
+ "Received disconnect from %s port %d:"
+ "%u: %.400s", ssh_remote_ipaddr(ssh),
+ ssh_remote_port(ssh), reason, msg);
+ free(msg);
+ return SSH_ERR_DISCONNECTED;
}
+
+ /*
+ * Do not implicitly handle any messages here during initial
+ * KEX when in strict mode. They will be need to be allowed
+ * explicitly by the KEX dispatch table or they will generate
+ * protocol errors.
+ */
+ if (ssh->kex != NULL &&
+ (ssh->kex->flags & KEX_INITIAL) && ssh->kex->kex_strict)
+ return 0;
+ /* Implicitly handle transport-level messages */
switch (*typep) {
case SSH2_MSG_IGNORE:
debug3("Received SSH2_MSG_IGNORE");
@@ -1734,19 +1782,6 @@ ssh_packet_read_poll_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p)
debug("Remote: %.900s", msg);
free(msg);
break;
- case SSH2_MSG_DISCONNECT:
- if ((r = sshpkt_get_u32(ssh, &reason)) != 0 ||
- (r = sshpkt_get_string(ssh, &msg, NULL)) != 0)
- return r;
- /* Ignore normal client exit notifications */
- do_log2(ssh->state->server_side &&
- reason == SSH2_DISCONNECT_BY_APPLICATION ?
- SYSLOG_LEVEL_INFO : SYSLOG_LEVEL_ERROR,
- "Received disconnect from %s port %d:"
- "%u: %.400s", ssh_remote_ipaddr(ssh),
- ssh_remote_port(ssh), reason, msg);
- free(msg);
- return SSH_ERR_DISCONNECTED;
case SSH2_MSG_UNIMPLEMENTED:
if ((r = sshpkt_get_u32(ssh, &seqnr)) != 0)
return r;
@@ -2211,6 +2246,7 @@ kex_to_blob(struct sshbuf *m, struct kex *kex)
(r = sshbuf_put_u32(m, kex->hostkey_type)) != 0 ||
(r = sshbuf_put_u32(m, kex->hostkey_nid)) != 0 ||
(r = sshbuf_put_u32(m, kex->kex_type)) != 0 ||
+ (r = sshbuf_put_u32(m, kex->kex_strict)) != 0 ||
(r = sshbuf_put_stringb(m, kex->my)) != 0 ||
(r = sshbuf_put_stringb(m, kex->peer)) != 0 ||
(r = sshbuf_put_stringb(m, kex->client_version)) != 0 ||
@@ -2373,6 +2409,7 @@ kex_from_blob(struct sshbuf *m, struct kex **kexp)
(r = sshbuf_get_u32(m, (u_int *)&kex->hostkey_type)) != 0 ||
(r = sshbuf_get_u32(m, (u_int *)&kex->hostkey_nid)) != 0 ||
(r = sshbuf_get_u32(m, &kex->kex_type)) != 0 ||
+ (r = sshbuf_get_u32(m, &kex->kex_strict)) != 0 ||
(r = sshbuf_get_stringb(m, kex->my)) != 0 ||
(r = sshbuf_get_stringb(m, kex->peer)) != 0 ||
(r = sshbuf_get_stringb(m, kex->client_version)) != 0 ||
@@ -2701,6 +2738,7 @@ sshpkt_disconnect(struct ssh *ssh, const char *fmt,...)
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
+ debug2_f("sending SSH2_MSG_DISCONNECT: %s", buf);
if ((r = sshpkt_start(ssh, SSH2_MSG_DISCONNECT)) != 0 ||
(r = sshpkt_put_u32(ssh, SSH2_DISCONNECT_PROTOCOL_ERROR)) != 0 ||
(r = sshpkt_put_cstring(ssh, buf)) != 0 ||
diff --git a/sshconnect2.c b/sshconnect2.c
index b25225e..83ae4a4 100644
--- a/sshconnect2.c
+++ b/sshconnect2.c
@@ -241,7 +241,8 @@ ssh_kex2(struct ssh *ssh, char *host, struct sockaddr *hostaddr, u_short port,
fatal_fr(r, "kex_assemble_namelist");
free(all_key);
- if ((s = kex_names_cat(options.kex_algorithms, "ext-info-c")) == NULL)
+ if ((s = kex_names_cat(options.kex_algorithms,
+ "ext-info-c,kex-strict-c-v00@openssh.com")) == NULL)
fatal_f("kex_names_cat");
myproposal[PROPOSAL_KEX_ALGS] = compat_kex_proposal(ssh, s);
myproposal[PROPOSAL_ENC_ALGS_CTOS] =
@@ -363,7 +364,6 @@ struct cauthmethod {
};
static int input_userauth_service_accept(int, u_int32_t, struct ssh *);
-static int input_userauth_ext_info(int, u_int32_t, struct ssh *);
static int input_userauth_success(int, u_int32_t, struct ssh *);
static int input_userauth_failure(int, u_int32_t, struct ssh *);
static int input_userauth_banner(int, u_int32_t, struct ssh *);
@@ -477,7 +477,7 @@ ssh_userauth2(struct ssh *ssh, const char *local_user,
ssh->authctxt = &authctxt;
ssh_dispatch_init(ssh, &input_userauth_error);
- ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, &input_userauth_ext_info);
+ ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, kex_input_ext_info);
ssh_dispatch_set(ssh, SSH2_MSG_SERVICE_ACCEPT, &input_userauth_service_accept);
ssh_dispatch_run_fatal(ssh, DISPATCH_BLOCK, &authctxt.success); /* loop until success */
pubkey_cleanup(ssh);
@@ -529,13 +529,6 @@ input_userauth_service_accept(int type, u_int32_t seq, struct ssh *ssh)
return r;
}
-/* ARGSUSED */
-static int
-input_userauth_ext_info(int type, u_int32_t seqnr, struct ssh *ssh)
-{
- return kex_input_ext_info(type, seqnr, ssh);
-}
-
void
userauth(struct ssh *ssh, char *authlist)
{
@@ -617,6 +610,7 @@ input_userauth_success(int type, u_int32_t seq, struct ssh *ssh)
free(authctxt->methoddata);
authctxt->methoddata = NULL;
authctxt->success = 1; /* break out */
+ ssh_dispatch_set(ssh, SSH2_MSG_EXT_INFO, dispatch_protocol_error);
return 0;
}
diff --git a/sshd.c b/sshd.c
index ef18ba4..652bdc3 100644
--- a/sshd.c
+++ b/sshd.c
@@ -2354,11 +2354,13 @@ static void
do_ssh2_kex(struct ssh *ssh)
{
char *myproposal[PROPOSAL_MAX] = { KEX_SERVER };
+ char *s;
struct kex *kex;
int r;
- myproposal[PROPOSAL_KEX_ALGS] = compat_kex_proposal(ssh,
- options.kex_algorithms);
+ if ((s = kex_names_cat(options.kex_algorithms, "kex-strict-s-v00@openssh.com")) == NULL)
+ fatal_f("kex_names_cat");
+ myproposal[PROPOSAL_KEX_ALGS] = compat_kex_proposal(ssh, s);
myproposal[PROPOSAL_ENC_ALGS_CTOS] = compat_cipher_proposal(ssh,
options.ciphers);
myproposal[PROPOSAL_ENC_ALGS_STOC] = compat_cipher_proposal(ssh,
@@ -2411,6 +2413,7 @@ do_ssh2_kex(struct ssh *ssh)
(r = ssh_packet_write_wait(ssh)) != 0)
fatal_fr(r, "send test");
#endif
+ free(s);
debug("KEX done");
}
--
2.25.1

View File

@@ -0,0 +1,171 @@
From 881d9c6af9da4257c69c327c4e2f1508b2fa754b Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Mon, 18 Dec 2023 14:46:12 +0000
Subject: [PATCH] upstream: apply destination constraints to all p11 keys
Previously applied only to the first key returned from each token.
ok markus@
OpenBSD-Commit-ID: 36df3afb8eb94eec6b2541f063d0d164ef8b488d
CVE: CVE-2023-51384
Upstream-Status: Backport
https://github.com/openssh/openssh-portable/commit/881d9c6af9da4257c69c327c4e2f1508b2fa754b
Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
ssh-agent.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 98 insertions(+), 4 deletions(-)
diff --git a/ssh-agent.c b/ssh-agent.c
index 19eeaae..4dbb4f3 100644
--- a/ssh-agent.c
+++ b/ssh-agent.c
@@ -249,6 +249,90 @@ free_dest_constraints(struct dest_constraint *dcs, size_t ndcs)
free(dcs);
}
+static void
+dup_dest_constraint_hop(const struct dest_constraint_hop *dch,
+ struct dest_constraint_hop *out)
+{
+ u_int i;
+ int r;
+
+ out->user = dch->user == NULL ? NULL : xstrdup(dch->user);
+ out->hostname = dch->hostname == NULL ? NULL : xstrdup(dch->hostname);
+ out->is_ca = dch->is_ca;
+ out->nkeys = dch->nkeys;
+ out->keys = out->nkeys == 0 ? NULL :
+ xcalloc(out->nkeys, sizeof(*out->keys));
+ out->key_is_ca = out->nkeys == 0 ? NULL :
+ xcalloc(out->nkeys, sizeof(*out->key_is_ca));
+ for (i = 0; i < dch->nkeys; i++) {
+ if (dch->keys[i] != NULL &&
+ (r = sshkey_from_private(dch->keys[i],
+ &(out->keys[i]))) != 0)
+ fatal_fr(r, "copy key");
+ out->key_is_ca[i] = dch->key_is_ca[i];
+ }
+}
+
+static struct dest_constraint *
+dup_dest_constraints(const struct dest_constraint *dcs, size_t ndcs)
+{
+ size_t i;
+ struct dest_constraint *ret;
+
+ if (ndcs == 0)
+ return NULL;
+ ret = xcalloc(ndcs, sizeof(*ret));
+ for (i = 0; i < ndcs; i++) {
+ dup_dest_constraint_hop(&dcs[i].from, &ret[i].from);
+ dup_dest_constraint_hop(&dcs[i].to, &ret[i].to);
+ }
+ return ret;
+}
+
+#ifdef DEBUG_CONSTRAINTS
+static void
+dump_dest_constraint_hop(const struct dest_constraint_hop *dch)
+{
+ u_int i;
+ char *fp;
+
+ debug_f("user %s hostname %s is_ca %d nkeys %u",
+ dch->user == NULL ? "(null)" : dch->user,
+ dch->hostname == NULL ? "(null)" : dch->hostname,
+ dch->is_ca, dch->nkeys);
+ for (i = 0; i < dch->nkeys; i++) {
+ fp = NULL;
+ if (dch->keys[i] != NULL &&
+ (fp = sshkey_fingerprint(dch->keys[i],
+ SSH_FP_HASH_DEFAULT, SSH_FP_DEFAULT)) == NULL)
+ fatal_f("fingerprint failed");
+ debug_f("key %u/%u: %s%s%s key_is_ca %d", i, dch->nkeys,
+ dch->keys[i] == NULL ? "" : sshkey_ssh_name(dch->keys[i]),
+ dch->keys[i] == NULL ? "" : " ",
+ dch->keys[i] == NULL ? "none" : fp,
+ dch->key_is_ca[i]);
+ free(fp);
+ }
+}
+#endif /* DEBUG_CONSTRAINTS */
+
+static void
+dump_dest_constraints(const char *context,
+ const struct dest_constraint *dcs, size_t ndcs)
+{
+#ifdef DEBUG_CONSTRAINTS
+ size_t i;
+
+ debug_f("%s: %zu constraints", context, ndcs);
+ for (i = 0; i < ndcs; i++) {
+ debug_f("constraint %zu / %zu: from: ", i, ndcs);
+ dump_dest_constraint_hop(&dcs[i].from);
+ debug_f("constraint %zu / %zu: to: ", i, ndcs);
+ dump_dest_constraint_hop(&dcs[i].to);
+ }
+ debug_f("done for %s", context);
+#endif /* DEBUG_CONSTRAINTS */
+}
static void
free_identity(Identity *id)
{
@@ -520,13 +604,22 @@ process_request_identities(SocketEntry *e)
Identity *id;
struct sshbuf *msg, *keys;
int r;
- u_int nentries = 0;
+ u_int i = 0, nentries = 0;
+ char *fp;
debug2_f("entering");
if ((msg = sshbuf_new()) == NULL || (keys = sshbuf_new()) == NULL)
fatal_f("sshbuf_new failed");
TAILQ_FOREACH(id, &idtab->idlist, next) {
+ if ((fp = sshkey_fingerprint(id->key, SSH_FP_HASH_DEFAULT,
+ SSH_FP_DEFAULT)) == NULL)
+ fatal_f("fingerprint failed");
+ debug_f("key %u / %u: %s %s", i++, idtab->nentries,
+ sshkey_ssh_name(id->key), fp);
+ dump_dest_constraints(__func__,
+ id->dest_constraints, id->ndest_constraints);
+ free(fp);
/* identity not visible, don't include in response */
if (identity_permitted(id, e, NULL, NULL, NULL) != 0)
continue;
@@ -1235,6 +1328,7 @@ process_add_identity(SocketEntry *e)
sshbuf_reset(e->request);
goto out;
}
+ dump_dest_constraints(__func__, dest_constraints, ndest_constraints);
if (sk_provider != NULL) {
if (!sshkey_is_sk(k)) {
@@ -1414,6 +1508,7 @@ process_add_smartcard_key(SocketEntry *e)
error_f("failed to parse constraints");
goto send;
}
+ dump_dest_constraints(__func__, dest_constraints, ndest_constraints);
if (e->nsession_ids != 0 && !remote_add_provider) {
verbose("failed PKCS#11 add of \"%.100s\": remote addition of "
"providers is disabled", provider);
@@ -1449,10 +1544,9 @@ process_add_smartcard_key(SocketEntry *e)
}
id->death = death;
id->confirm = confirm;
- id->dest_constraints = dest_constraints;
+ id->dest_constraints = dup_dest_constraints(
+ dest_constraints, ndest_constraints);
id->ndest_constraints = ndest_constraints;
- dest_constraints = NULL; /* transferred */
- ndest_constraints = 0;
TAILQ_INSERT_TAIL(&idtab->idlist, id, next);
idtab->nentries++;
success = 1;
--
2.40.0

View File

@@ -0,0 +1,97 @@
From 7ef3787c84b6b524501211b11a26c742f829af1a Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Mon, 18 Dec 2023 14:47:44 +0000
Subject: [PATCH] upstream: ban user/hostnames with most shell metacharacters
This makes ssh(1) refuse user or host names provided on the commandline that
contain most shell metacharacters.
Some programs that invoke ssh(1) using untrusted data do not filter
metacharacters in arguments they supply. This could create
interactions with user-specified ProxyCommand and other directives
that allow shell injection attacks to occur.
It's a mistake to invoke ssh(1) with arbitrary untrusted arguments,
but getting this stuff right can be tricky, so this should prevent
most obvious ways of creating risky situations. It however is not
and cannot be perfect: ssh(1) has no practical way of interpreting
what shell quoting rules are in use and how they interact with the
user's specified ProxyCommand.
To allow configurations that use strange user or hostnames to
continue to work, this strictness is applied only to names coming
from the commandline. Names specified using User or Hostname
directives in ssh_config(5) are not affected.
feedback/ok millert@ markus@ dtucker@ deraadt@
OpenBSD-Commit-ID: 3b487348b5964f3e77b6b4d3da4c3b439e94b2d9
CVE: CVE-2023-51385
Upstream-Status: Backport
[https://github.com/openssh/openssh-portable/commit/7ef3787c84b6b524501211b11a26c742f829af1a]
Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
ssh.c | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/ssh.c b/ssh.c
index 8ff9788..82ed15f 100644
--- a/ssh.c
+++ b/ssh.c
@@ -611,6 +611,41 @@ ssh_conn_info_free(struct ssh_conn_info *cinfo)
free(cinfo);
}
+static int
+valid_hostname(const char *s)
+{
+ size_t i;
+
+ if (*s == '-')
+ return 0;
+ for (i = 0; s[i] != 0; i++) {
+ if (strchr("'`\"$\\;&<>|(){}", s[i]) != NULL ||
+ isspace((u_char)s[i]) || iscntrl((u_char)s[i]))
+ return 0;
+ }
+ return 1;
+}
+
+static int
+valid_ruser(const char *s)
+{
+ size_t i;
+
+ if (*s == '-')
+ return 0;
+ for (i = 0; s[i] != 0; i++) {
+ if (strchr("'`\";&<>|(){}", s[i]) != NULL)
+ return 0;
+ /* Disallow '-' after whitespace */
+ if (isspace((u_char)s[i]) && s[i + 1] == '-')
+ return 0;
+ /* Disallow \ in last position */
+ if (s[i] == '\\' && s[i + 1] == '\0')
+ return 0;
+ }
+ return 1;
+}
+
/*
* Main program for the ssh client.
*/
@@ -1097,6 +1132,10 @@ main(int ac, char **av)
if (!host)
usage();
+ if (!valid_hostname(host))
+ fatal("hostname contains invalid characters");
+ if (options.user != NULL && !valid_ruser(options.user))
+ fatal("remote username contains invalid characters");
host_arg = xstrdup(host);
/* Initialize the command to execute on remote host. */
--
2.40.0

View File

@@ -0,0 +1,30 @@
From fcd78e31cdd45a7e69ccfe6d8a3b1037dc1de290 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Wed, 24 May 2023 23:01:06 +0000
Subject: [PATCH] upstream: fix AuthorizedPrincipalsCommand when
AuthorizedKeysCommand
Description: Fix the wrong code as the Subject suggests
I added that description to mention, that the file header change was
incompatible with the proposed code below and failed to apply,
therefore I dropped that chunk of the code.
Origin: backport, https://github.com/openssh/openssh-portable/commit/fcd78e31cdd45a7e69ccfe6d8a3b1037dc1de290
Bug: https://bugzilla.mindrot.org/show_bug.cgi?id=3574
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/2031942
Last-Update: 2023-09-01
Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/openssh/tree/debian/patches/fix-authorized-principals-command.patch?h=ubuntu/jammy-security
Upstream commit https://github.com/openssh/openssh-portable/commit/fcd78e31cdd45a7e69ccfe6d8a3b1037dc1de290]
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/servconf.c
+++ b/servconf.c
@@ -2372,7 +2372,7 @@ process_server_config_line_depth(ServerO
fatal("%.200s line %d: %s must be an absolute path",
filename, linenum, keyword);
}
- if (*activep && options->authorized_keys_command == NULL)
+ if (*activep && *charptr == NULL)
*charptr = xstrdup(str + len);
argv_consume(&ac);
break;

View File

@@ -5,7 +5,7 @@ export SKIP_UNIT=1
cd regress
sed -i "/\t\tagent-ptrace /d" Makefile
make -k BUILDDIR=`pwd`/.. .OBJDIR=`pwd` .CURDIR=`pwd` SUDO="sudo" tests \
make -k BUILDDIR=`pwd`/.. .OBJDIR=`pwd` .CURDIR=`pwd` SUDO="" tests \
| sed -u -e 's/^skipped/SKIP: /g' -e 's/^ok /PASS: /g' -e 's/^failed/FAIL: /g'
SSHAGENT=`which ssh-agent`

View File

@@ -32,6 +32,10 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar
file://CVE-2023-38408-0002.patch \
file://CVE-2023-38408-0003.patch \
file://CVE-2023-38408-0004.patch \
file://fix-authorized-principals-command.patch \
file://CVE-2023-48795.patch \
file://CVE-2023-51384.patch \
file://CVE-2023-51385.patch \
"
SRC_URI[sha256sum] = "fd497654b7ab1686dac672fb83dfb4ba4096e8b5ffcdaccd262380ae58bec5e7"
@@ -170,7 +174,7 @@ RDEPENDS:${PN}-sshd += "${PN}-keygen ${@bb.utils.contains('DISTRO_FEATURES', 'pa
# conflict with each other
RDEPENDS:${PN}-dev = ""
# gdb would make attach-ptrace test pass rather than skip but not worth the build dependencies
RDEPENDS:${PN}-ptest += "${PN}-sftp ${PN}-misc ${PN}-sftp-server make sed sudo coreutils"
RDEPENDS:${PN}-ptest += "${PN}-sftp ${PN}-misc ${PN}-sftp-server make sed coreutils"
RPROVIDES:${PN}-ssh = "ssh"
RPROVIDES:${PN}-sshd = "sshd"

View File

@@ -0,0 +1,180 @@
From db925ae2e65d0d925adef429afc37f75bd1c2017 Mon Sep 17 00:00:00 2001
From: Richard Levitte <levitte@openssl.org>
Date: Fri, 20 Oct 2023 09:18:19 +0200
Subject: [PATCH] Make DH_check_pub_key() and DH_generate_key() safer yet
We already check for an excessively large P in DH_generate_key(), but not in
DH_check_pub_key(), and none of them check for an excessively large Q.
This change adds all the missing excessive size checks of P and Q.
It's to be noted that behaviours surrounding excessively sized P and Q
differ. DH_check() raises an error on the excessively sized P, but only
sets a flag for the excessively sized Q. This behaviour is mimicked in
DH_check_pub_key().
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22518)
(cherry picked from commit ddeb4b6c6d527e54ce9a99cba785c0f7776e54b6)
Upstream-Status: Backport [https://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=db925ae2e65d0d925adef429afc37f75bd1c2017]
CVE: CVE-2023-5678
Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
---
crypto/dh/dh_check.c | 12 ++++++++++++
crypto/dh/dh_err.c | 3 ++-
crypto/dh/dh_key.c | 12 ++++++++++++
crypto/err/openssl.txt | 1 +
include/crypto/dherr.h | 2 +-
include/openssl/dh.h | 6 +++---
include/openssl/dherr.h | 3 ++-
7 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/crypto/dh/dh_check.c b/crypto/dh/dh_check.c
index 7ba2bea..e20eb62 100644
--- a/crypto/dh/dh_check.c
+++ b/crypto/dh/dh_check.c
@@ -249,6 +249,18 @@ int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key)
*/
int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *ret)
{
+ /* Don't do any checks at all with an excessively large modulus */
+ if (BN_num_bits(dh->params.p) > OPENSSL_DH_CHECK_MAX_MODULUS_BITS) {
+ ERR_raise(ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE);
+ *ret = DH_MODULUS_TOO_LARGE | DH_CHECK_PUBKEY_INVALID;
+ return 0;
+ }
+
+ if (dh->params.q != NULL && BN_ucmp(dh->params.p, dh->params.q) < 0) {
+ *ret |= DH_CHECK_INVALID_Q_VALUE | DH_CHECK_PUBKEY_INVALID;
+ return 1;
+ }
+
return ossl_ffc_validate_public_key(&dh->params, pub_key, ret);
}
diff --git a/crypto/dh/dh_err.c b/crypto/dh/dh_err.c
index 4152397..f76ac0d 100644
--- a/crypto/dh/dh_err.c
+++ b/crypto/dh/dh_err.c
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -54,6 +54,7 @@ static const ERR_STRING_DATA DH_str_reasons[] = {
{ERR_PACK(ERR_LIB_DH, 0, DH_R_PARAMETER_ENCODING_ERROR),
"parameter encoding error"},
{ERR_PACK(ERR_LIB_DH, 0, DH_R_PEER_KEY_ERROR), "peer key error"},
+ {ERR_PACK(ERR_LIB_DH, 0, DH_R_Q_TOO_LARGE), "q too large"},
{ERR_PACK(ERR_LIB_DH, 0, DH_R_SHARED_INFO_ERROR), "shared info error"},
{ERR_PACK(ERR_LIB_DH, 0, DH_R_UNABLE_TO_CHECK_GENERATOR),
"unable to check generator"},
diff --git a/crypto/dh/dh_key.c b/crypto/dh/dh_key.c
index d84ea99..afc49f5 100644
--- a/crypto/dh/dh_key.c
+++ b/crypto/dh/dh_key.c
@@ -49,6 +49,12 @@ int ossl_dh_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh)
goto err;
}
+ if (dh->params.q != NULL
+ && BN_num_bits(dh->params.q) > OPENSSL_DH_MAX_MODULUS_BITS) {
+ ERR_raise(ERR_LIB_DH, DH_R_Q_TOO_LARGE);
+ goto err;
+ }
+
if (BN_num_bits(dh->params.p) < DH_MIN_MODULUS_BITS) {
ERR_raise(ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL);
return 0;
@@ -267,6 +273,12 @@ static int generate_key(DH *dh)
return 0;
}
+ if (dh->params.q != NULL
+ && BN_num_bits(dh->params.q) > OPENSSL_DH_MAX_MODULUS_BITS) {
+ ERR_raise(ERR_LIB_DH, DH_R_Q_TOO_LARGE);
+ return 0;
+ }
+
if (BN_num_bits(dh->params.p) < DH_MIN_MODULUS_BITS) {
ERR_raise(ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL);
return 0;
diff --git a/crypto/err/openssl.txt b/crypto/err/openssl.txt
index e51504b..36de321 100644
--- a/crypto/err/openssl.txt
+++ b/crypto/err/openssl.txt
@@ -500,6 +500,7 @@ DH_R_NO_PARAMETERS_SET:107:no parameters set
DH_R_NO_PRIVATE_VALUE:100:no private value
DH_R_PARAMETER_ENCODING_ERROR:105:parameter encoding error
DH_R_PEER_KEY_ERROR:111:peer key error
+DH_R_Q_TOO_LARGE:130:q too large
DH_R_SHARED_INFO_ERROR:113:shared info error
DH_R_UNABLE_TO_CHECK_GENERATOR:121:unable to check generator
DSA_R_BAD_FFC_PARAMETERS:114:bad ffc parameters
diff --git a/include/crypto/dherr.h b/include/crypto/dherr.h
index bb24d13..519327f 100644
--- a/include/crypto/dherr.h
+++ b/include/crypto/dherr.h
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2020-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
diff --git a/include/openssl/dh.h b/include/openssl/dh.h
index 6533260..50e0cf5 100644
--- a/include/openssl/dh.h
+++ b/include/openssl/dh.h
@@ -141,7 +141,7 @@ DECLARE_ASN1_ITEM(DHparams)
# define DH_GENERATOR_3 3
# define DH_GENERATOR_5 5
-/* DH_check error codes */
+/* DH_check error codes, some of them shared with DH_check_pub_key */
/*
* NB: These values must align with the equivalently named macros in
* internal/ffc.h.
@@ -151,10 +151,10 @@ DECLARE_ASN1_ITEM(DHparams)
# define DH_UNABLE_TO_CHECK_GENERATOR 0x04
# define DH_NOT_SUITABLE_GENERATOR 0x08
# define DH_CHECK_Q_NOT_PRIME 0x10
-# define DH_CHECK_INVALID_Q_VALUE 0x20
+# define DH_CHECK_INVALID_Q_VALUE 0x20 /* +DH_check_pub_key */
# define DH_CHECK_INVALID_J_VALUE 0x40
# define DH_MODULUS_TOO_SMALL 0x80
-# define DH_MODULUS_TOO_LARGE 0x100
+# define DH_MODULUS_TOO_LARGE 0x100 /* +DH_check_pub_key */
/* DH_check_pub_key error codes */
# define DH_CHECK_PUBKEY_TOO_SMALL 0x01
diff --git a/include/openssl/dherr.h b/include/openssl/dherr.h
index 5d2a762..074a701 100644
--- a/include/openssl/dherr.h
+++ b/include/openssl/dherr.h
@@ -1,6 +1,6 @@
/*
* Generated by util/mkerr.pl DO NOT EDIT
- * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 1995-2023 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
@@ -50,6 +50,7 @@
# define DH_R_NO_PRIVATE_VALUE 100
# define DH_R_PARAMETER_ENCODING_ERROR 105
# define DH_R_PEER_KEY_ERROR 111
+# define DH_R_Q_TOO_LARGE 130
# define DH_R_SHARED_INFO_ERROR 113
# define DH_R_UNABLE_TO_CHECK_GENERATOR 121
--
2.40.1

View File

@@ -0,0 +1,113 @@
From 8d847a3ffd4f0b17ee33962cf69c36224925b34f Mon Sep 17 00:00:00 2001
From: Rohan McLure <rmclure@linux.ibm.com>
Date: Thu, 4 Jan 2024 10:25:50 +0100
Subject: [PATCH] poly1305-ppc.pl: Fix vector register clobbering
Fixes CVE-2023-6129
The POLY1305 MAC (message authentication code) implementation in OpenSSL for
PowerPC CPUs saves the the contents of vector registers in different order
than they are restored. Thus the contents of some of these vector registers
is corrupted when returning to the caller. The vulnerable code is used only
on newer PowerPC processors supporting the PowerISA 2.07 instructions.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23200)
Upstream-Status: Backport [https://github.com/openssl/openssl/commit/8d847a3ffd4f0b17ee33962cf69c36224925b34f]
CVE: CVE-2023-6129
Signed-off-by: Vivek Kumbhar <vkumbhar@mvista.com>
---
crypto/poly1305/asm/poly1305-ppc.pl | 42 ++++++++++++++---------------
1 file changed, 21 insertions(+), 21 deletions(-)
diff --git a/crypto/poly1305/asm/poly1305-ppc.pl b/crypto/poly1305/asm/poly1305-ppc.pl
index 9f86134..2e601bb 100755
--- a/crypto/poly1305/asm/poly1305-ppc.pl
+++ b/crypto/poly1305/asm/poly1305-ppc.pl
@@ -744,7 +744,7 @@ ___
my $LOCALS= 6*$SIZE_T;
my $VSXFRAME = $LOCALS + 6*$SIZE_T;
$VSXFRAME += 128; # local variables
- $VSXFRAME += 13*16; # v20-v31 offload
+ $VSXFRAME += 12*16; # v20-v31 offload
my $BIG_ENDIAN = ($flavour !~ /le/) ? 4 : 0;
@@ -919,12 +919,12 @@ __poly1305_blocks_vsx:
addi r11,r11,32
stvx v22,r10,$sp
addi r10,r10,32
- stvx v23,r10,$sp
- addi r10,r10,32
- stvx v24,r11,$sp
+ stvx v23,r11,$sp
addi r11,r11,32
- stvx v25,r10,$sp
+ stvx v24,r10,$sp
addi r10,r10,32
+ stvx v25,r11,$sp
+ addi r11,r11,32
stvx v26,r10,$sp
addi r10,r10,32
stvx v27,r11,$sp
@@ -1153,12 +1153,12 @@ __poly1305_blocks_vsx:
addi r11,r11,32
stvx v22,r10,$sp
addi r10,r10,32
- stvx v23,r10,$sp
- addi r10,r10,32
- stvx v24,r11,$sp
+ stvx v23,r11,$sp
addi r11,r11,32
- stvx v25,r10,$sp
+ stvx v24,r10,$sp
addi r10,r10,32
+ stvx v25,r11,$sp
+ addi r11,r11,32
stvx v26,r10,$sp
addi r10,r10,32
stvx v27,r11,$sp
@@ -1899,26 +1899,26 @@ Ldone_vsx:
mtspr 256,r12 # restore vrsave
lvx v20,r10,$sp
addi r10,r10,32
- lvx v21,r10,$sp
- addi r10,r10,32
- lvx v22,r11,$sp
+ lvx v21,r11,$sp
addi r11,r11,32
- lvx v23,r10,$sp
+ lvx v22,r10,$sp
addi r10,r10,32
- lvx v24,r11,$sp
+ lvx v23,r11,$sp
addi r11,r11,32
- lvx v25,r10,$sp
+ lvx v24,r10,$sp
addi r10,r10,32
- lvx v26,r11,$sp
+ lvx v25,r11,$sp
addi r11,r11,32
- lvx v27,r10,$sp
+ lvx v26,r10,$sp
addi r10,r10,32
- lvx v28,r11,$sp
+ lvx v27,r11,$sp
addi r11,r11,32
- lvx v29,r10,$sp
+ lvx v28,r10,$sp
addi r10,r10,32
- lvx v30,r11,$sp
- lvx v31,r10,$sp
+ lvx v29,r11,$sp
+ addi r11,r11,32
+ lvx v30,r10,$sp
+ lvx v31,r11,$sp
$POP r27,`$VSXFRAME-$SIZE_T*5`($sp)
$POP r28,`$VSXFRAME-$SIZE_T*4`($sp)
$POP r29,`$VSXFRAME-$SIZE_T*3`($sp)
--
2.39.3

View File

@@ -0,0 +1,127 @@
rom e09fc1d746a4fd15bb5c3d7bbbab950aadd005db Mon Sep 17 00:00:00 2001
From: Tomas Mraz <tomas@openssl.org>
Date: Fri, 22 Dec 2023 16:25:56 +0100
Subject: [PATCH] Limit the execution time of RSA public key check
Fixes CVE-2023-6237
If a large and incorrect RSA public key is checked with
EVP_PKEY_public_check() the computation could take very long time
due to no limit being applied to the RSA public key size and
unnecessarily high number of Miller-Rabin algorithm rounds
used for non-primality check of the modulus.
Now the keys larger than 16384 bits (OPENSSL_RSA_MAX_MODULUS_BITS)
will fail the check with RSA_R_MODULUS_TOO_LARGE error reason.
Also the number of Miller-Rabin rounds was set to 5.
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23243)
Upstream-Status: Backport [https://github.com/openssl/openssl/commit/e09fc1d746a4fd15bb5c3d7bbbab950aadd005db]
CVE: CVE-2023-6237
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
---
crypto/rsa/rsa_sp800_56b_check.c | 8 +++-
test/recipes/91-test_pkey_check.t | 2 +-
.../91-test_pkey_check_data/rsapub_17k.pem | 48 +++++++++++++++++++
3 files changed, 56 insertions(+), 2 deletions(-)
create mode 100644 test/recipes/91-test_pkey_check_data/rsapub_17k.pem
diff --git a/crypto/rsa/rsa_sp800_56b_check.c b/crypto/rsa/rsa_sp800_56b_check.c
index fc8f19b..bcbdd24 100644
--- a/crypto/rsa/rsa_sp800_56b_check.c
+++ b/crypto/rsa/rsa_sp800_56b_check.c
@@ -289,6 +289,11 @@ int ossl_rsa_sp800_56b_check_public(const RSA *rsa)
return 0;
nbits = BN_num_bits(rsa->n);
+ if (nbits > OPENSSL_RSA_MAX_MODULUS_BITS) {
+ ERR_raise(ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE);
+ return 0;
+ }
+
#ifdef FIPS_MODULE
/*
* (Step a): modulus must be 2048 or 3072 (caveat from SP800-56Br1)
@@ -324,7 +329,8 @@ int ossl_rsa_sp800_56b_check_public(const RSA *rsa)
goto err;
}
- ret = ossl_bn_miller_rabin_is_prime(rsa->n, 0, ctx, NULL, 1, &status);
+ /* Highest number of MR rounds from FIPS 186-5 Section B.3 Table B.1 */
+ ret = ossl_bn_miller_rabin_is_prime(rsa->n, 5, ctx, NULL, 1, &status);
#ifdef FIPS_MODULE
if (ret != 1 || status != BN_PRIMETEST_COMPOSITE_NOT_POWER_OF_PRIME) {
#else
diff --git a/test/recipes/91-test_pkey_check.t b/test/recipes/91-test_pkey_check.t
index dc7cc64..f8088df 100644
--- a/test/recipes/91-test_pkey_check.t
+++ b/test/recipes/91-test_pkey_check.t
@@ -70,7 +70,7 @@ push(@positive_tests, (
"dhpkey.pem"
)) unless disabled("dh");
-my @negative_pubtests = ();
+my @negative_pubtests = ("rsapub_17k.pem"); # Too big RSA public key
push(@negative_pubtests, (
"dsapub_noparam.der"
diff --git a/test/recipes/91-test_pkey_check_data/rsapub_17k.pem b/test/recipes/91-test_pkey_check_data/rsapub_17k.pem
new file mode 100644
index 0000000..9a2eaed
--- /dev/null
+++ b/test/recipes/91-test_pkey_check_data/rsapub_17k.pem
@@ -0,0 +1,48 @@
+-----BEGIN PUBLIC KEY-----
+MIIIbzANBgkqhkiG9w0BAQEFAAOCCFwAMIIIVwKCCE4Ang+cE5H+hg3RbapDAHqR
+B9lUnp2MlAwsZxQ/FhYepaR60bFQeumbu7817Eo5YLMObVI99hF1C4u/qcpD4Jph
+gZt87/JAYDbP+DIh/5gUXCL9m5Fp4u7mvZaZdnlcftBvR1uKUTCAwc9pZ/Cfr8W2
+GzrRODzsNYnk2DcZMfe2vRDuDZRopE+Y+I72rom2SZLxoN547N1daM/M/CL9KVQ/
+XMI/YOpJrBI0jI3brMRhLkvLckwies9joufydlGbJkeil9H7/grj3fQZtFkZ2Pkj
+b87XDzRVX7wsEpAgPJxskL3jApokCp1kQYKG+Uc3dKM9Ade6IAPK7VKcmbAQTYw2
+gZxsc28dtstazmfGz0ACCTSMrmbgWAM3oPL7RRzhrXDWgmYQ0jHefGh8SNTIgtPq
+TuHxPYkDMQNaf0LmDGCxqlnf4b5ld3YaU8zZ/RqIRx5v/+w0rJUvU53qY1bYSnL1
+vbqKSnN2mip0GYyQ4AUgkS1NBV4rGYU/VTvzEjLfkg02KOtHKandvEoUjmZPzCT0
+V2ZhGc8K1UJNGYlIiHqCdwCBoghvly/pYajTkDXyd6BsukzA5H3IkZB1xDgl035j
+/0Cr7QeZLEOdi9fPdSSaBT6OmD0WFuZfJF0wMr7ucRhWzPXvSensD9v7MBE7tNfH
+SLeTSx8tLt8UeWriiM+0CnkPR1IOqMOxubOyf1eV8NQqEWm5wEQG/0IskbOKnaHa
+PqLFJZn/bvyL3XK5OxVIJG3z6bnRDOMS9SzkjqgPdIO8tkySEHVSi/6iuGUltx3Y
+Fmq6ye/r34ekyHPbfn6UuTON7joM6SIXb5bHM64x4iMVWx4hMvDjfy0UqfywAUyu
+C1o7BExSMxxFG8GJcqR0K8akpPp7EM588PC+YuItoxzXgfUJnP3BQ1Beev2Ve7/J
+xeGZH0N4ntfr+cuaLAakAER9zDglwChWflw3NNFgIdAgSxXv3XXx5xDXpdP4lxUo
+F5zAN4Mero3yV90FaJl7Vhq/UFVidbwFc15jUDwaE0mKRcsBeVd3GOhoECAgE0id
+aIPT20z8oVY0FyTJlRk7QSjo8WjJSrHY/Fn14gctX07ZdfkufyL6w+NijBdYluvB
+nIrgHEvpkDEWoIa8qcx0EppoIcmqgMV2mTShfFYSybsO33Pm8WXec2FXjwhzs1Pi
+R/BuIW8rHPI67xqWm0h8dEw11vtfi9a/BBBikFHe59KBjMTG+lW/gADNvRoTzGh7
+kN4+UVDS3jlSisRZZOn1XoeQtpubNYWgUsecjKy45IwIj8h1SHgn3wkmUesY0woN
+mOdoNtq+NezN4RFtbCOHhxFVpKKDi/HQP2ro0ykkXMDjwEIVf2Lii1Mg9UP8m+Ux
+AOqkTrIkdogkRx+70h7/wUOfDIFUq2JbKzqxJYamyEphcdAko7/B8efQKc61Z93O
+f2SHa4++4WI7wIIx18v5KV4M/cRmrfc8w9WRkQN3gBT5AJMuqwcSHVXBWvNQeGmi
+ScMh7X6cCZ0daEujqb8svq4WgsJ8UT4GaGBRIYtt7QUKEh+JQwNJzneRYZ3pzpaH
+UJeeoYobMlkp3rM9cYzdq90nBQiI9Jsbim9m9ggb2dMOS5CsI9S/IuG2O5uTjfxx
+wkwsd5nLDFtNXHYZ7W6XlVJ1Rc6zShnEmdCn3mmibb6OaMUmun2yl9ryEjVSoXLP
+fSA8W9K9yNhKTRkzdXJfqlC+s/ovX2xBGxsuOoUDaXhRVz0qmpKIHeSFjIP4iXq4
+y8gDiwvM3HbZfvVonbg6siPwpn4uvw3hesojk1DKAENS52i6U3uK2fs1ALVxsFNS
+Yh914rDu0Q3e4RXVhURaYzoEbLCot6WGYeCCfQOK0rkETMv+sTYYscC8/THuW7SL
+HG5zy9Ed95N1Xmf8J+My7gM7ZFodGdHsWvdzEmqsdOFh6IVx/VfHFX0MDBq0t6lZ
+eRvVgVCfu3gkYLwPScn/04E02vOom51ISKHsF/I11erC66jjNYV9BSpH8O7sAHxZ
+EmPT2ZVVRSgivOHdQW/FZ3UZQQhVaVSympo2Eb4yWEMFn84Q8T+9Honj6gnB5PXz
+chmeCsOMlcg1mwWwhn0k+OAWEZy7VRUk5Ahp0fBAGJgwBdqrZ3kM356DjUkVBiYq
+4eHyvafNKmjf2mnFsI3g2NKRNyl1Lh63wyCFx60yYvBUfXF/W9PFJbD9CiP83kEW
+gV36gxTsbOSfhpO1OXR90ODy0kx06XzWmJCUugK8u9bx4F/CjV+LIHExuNJiethC
+A8sIup/MT0fWp4RO/SsVblGqfoqJTaPnhptQzeH2N07pbWkxeMuL6ppPuwFmfVjK
+FJndqCVrAukcPEOQ16iVURuloJMudqYRc9QKkJFsnv0W/iMNbqQGmXe8Q/5qFiys
+26NIQBiE2ad9hNLnoccEnmYSRgnW3ZPSKuq5TDdYyDqTZH2r8cam65pr3beKw2XC
+xw4cc7VaxiwGC2Mg2wRmwwPaTjrcEt6sMa3RjwFEVBxBFyM26wnTEZsTBquCxV0J
+pgERaeplkixP2Q0m7XAdlDaob973SM2vOoUgypzDchWmpx7u775bnOfU5CihwXl+
+k0i09WZuT8bPmhEAiGCw5sNzMkz1BC2cCZFfJIkE2vc/wXYOrGxBTJo0EKaUFswa
+2dnP/u0bn+VksBUM7ywW9LJSXh4mN+tpzdeJtxEObKwX1I0dQxSPWmjd2++wMr9q
+Unre5fCrDToy2H7C2VKSpuOCT2/Kv4JDQRWwI4KxQOpn0UknAGNmfBoTtpIZ3LEb
+77oBUJdMQD7tQBBLL0a6f1TdK0dHVprWWawJ+gGFMiMQXqAqblHcxFKWuHv9bQID
+AQAB
+-----END PUBLIC KEY-----
--
2.25.1

View File

@@ -12,6 +12,9 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \
file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
file://afalg.patch \
file://0001-Configure-do-not-tweak-mips-cflags.patch \
file://CVE-2023-5678.patch \
file://CVE-2023-6129.patch \
file://CVE-2023-6237.patch \
"
SRC_URI:append:class-nativesdk = " \

View File

@@ -30,6 +30,7 @@ SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \
${@bb.utils.contains('PACKAGECONFIG', 'disable-weak-ciphers', 'file://dropbear-disable-weak-ciphers.patch', '', d)} \
file://CVE-2021-36369.patch \
file://CVE-2023-36328.patch \
file://CVE-2023-48795.patch \
"
PAM_SRC_URI = "file://0005-dropbear-enable-pam.patch \

View File

@@ -0,0 +1,234 @@
From 6e43be5c7b99dbee49dc72b6f989f29fdd7e9356 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Mon, 20 Nov 2023 14:02:47 +0800
Subject: [PATCH] Implement Strict KEX mode
As specified by OpenSSH with kex-strict-c-v00@openssh.com and
kex-strict-s-v00@openssh.com.
CVE: CVE-2023-48795
Upstream-Status: Backport [https://github.com/mkj/dropbear/commit/6e43be5c7b99dbee49dc72b6f989f29fdd7e9356]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
cli-session.c | 11 +++++++++++
common-algo.c | 6 ++++++
common-kex.c | 26 +++++++++++++++++++++++++-
kex.h | 3 +++
process-packet.c | 34 +++++++++++++++++++---------------
ssh.h | 4 ++++
svr-session.c | 3 +++
7 files changed, 71 insertions(+), 16 deletions(-)
diff --git a/cli-session.c b/src/cli-session.c
index 5981b2470..d261c8f82 100644
--- a/cli-session.c
+++ b/cli-session.c
@@ -46,6 +46,7 @@ static void cli_finished(void) ATTRIB_NORETURN;
static void recv_msg_service_accept(void);
static void cli_session_cleanup(void);
static void recv_msg_global_request_cli(void);
+static void cli_algos_initialise(void);
struct clientsession cli_ses; /* GLOBAL */
@@ -114,6 +115,7 @@ void cli_session(int sock_in, int sock_out, struct dropbear_progress_connection
}
chaninitialise(cli_chantypes);
+ cli_algos_initialise();
/* Set up cli_ses vars */
cli_session_init(proxy_cmd_pid);
@@ -473,3 +475,12 @@ void cli_dropbear_log(int priority, const char* format, va_list param) {
fflush(stderr);
}
+static void cli_algos_initialise(void) {
+ algo_type *algo;
+ for (algo = sshkex; algo->name; algo++) {
+ if (strcmp(algo->name, SSH_STRICT_KEX_S) == 0) {
+ algo->usable = 0;
+ }
+ }
+}
+
diff --git a/common-algo.c b/src/common-algo.c
index 378f0ca8e..f9d46ebb6 100644
--- a/common-algo.c
+++ b/common-algo.c
@@ -332,6 +332,12 @@ algo_type sshkex[] = {
/* Set unusable by svr_algos_initialise() */
{SSH_EXT_INFO_C, 0, NULL, 1, NULL},
#endif
+#endif
+#if DROPBEAR_CLIENT
+ {SSH_STRICT_KEX_C, 0, NULL, 1, NULL},
+#endif
+#if DROPBEAR_SERVER
+ {SSH_STRICT_KEX_S, 0, NULL, 1, NULL},
#endif
{NULL, 0, NULL, 0, NULL}
};
diff --git a/common-kex.c b/src/common-kex.c
index ac8844246..8e33b12a6 100644
--- a/common-kex.c
+++ b/common-kex.c
@@ -183,6 +183,10 @@ void send_msg_newkeys() {
gen_new_keys();
switch_keys();
+ if (ses.kexstate.strict_kex) {
+ ses.transseq = 0;
+ }
+
TRACE(("leave send_msg_newkeys"))
}
@@ -193,7 +197,11 @@ void recv_msg_newkeys() {
ses.kexstate.recvnewkeys = 1;
switch_keys();
-
+
+ if (ses.kexstate.strict_kex) {
+ ses.recvseq = 0;
+ }
+
TRACE(("leave recv_msg_newkeys"))
}
@@ -551,6 +559,10 @@ void recv_msg_kexinit() {
ses.kexstate.recvkexinit = 1;
+ if (ses.kexstate.strict_kex && !ses.kexstate.donefirstkex && ses.recvseq != 1) {
+ dropbear_exit("First packet wasn't kexinit");
+ }
+
TRACE(("leave recv_msg_kexinit"))
}
@@ -861,6 +873,18 @@ static void read_kex_algos() {
}
#endif
+ if (!ses.kexstate.donefirstkex) {
+ const char* strict_name;
+ if (IS_DROPBEAR_CLIENT) {
+ strict_name = SSH_STRICT_KEX_S;
+ } else {
+ strict_name = SSH_STRICT_KEX_C;
+ }
+ if (buf_has_algo(ses.payload, strict_name) == DROPBEAR_SUCCESS) {
+ ses.kexstate.strict_kex = 1;
+ }
+ }
+
algo = buf_match_algo(ses.payload, sshkex, kexguess2, &goodguess);
allgood &= goodguess;
if (algo == NULL || algo->data == NULL) {
diff --git a/kex.h b/src/kex.h
index 77cf21a37..7fcc3c252 100644
--- a/kex.h
+++ b/kex.h
@@ -83,6 +83,9 @@ struct KEXState {
unsigned our_first_follows_matches : 1;
+ /* Boolean indicating that strict kex mode is in use */
+ unsigned int strict_kex;
+
time_t lastkextime; /* time of the last kex */
unsigned int datatrans; /* data transmitted since last kex */
unsigned int datarecv; /* data received since last kex */
diff --git a/process-packet.c b/src/process-packet.c
index 945416023..133a152d0 100644
--- a/process-packet.c
+++ b/process-packet.c
@@ -44,6 +44,7 @@ void process_packet() {
unsigned char type;
unsigned int i;
+ unsigned int first_strict_kex = ses.kexstate.strict_kex && !ses.kexstate.donefirstkex;
time_t now;
TRACE2(("enter process_packet"))
@@ -54,22 +55,24 @@ void process_packet() {
now = monotonic_now();
ses.last_packet_time_keepalive_recv = now;
- /* These packets we can receive at any time */
- switch(type) {
- case SSH_MSG_IGNORE:
- goto out;
- case SSH_MSG_DEBUG:
- goto out;
+ if (type == SSH_MSG_DISCONNECT) {
+ /* Allowed at any time */
+ dropbear_close("Disconnect received");
+ }
- case SSH_MSG_UNIMPLEMENTED:
- /* debugging XXX */
- TRACE(("SSH_MSG_UNIMPLEMENTED"))
- goto out;
-
- case SSH_MSG_DISCONNECT:
- /* TODO cleanup? */
- dropbear_close("Disconnect received");
+ /* These packets may be received at any time,
+ except during first kex with strict kex */
+ if (!first_strict_kex) {
+ switch(type) {
+ case SSH_MSG_IGNORE:
+ goto out;
+ case SSH_MSG_DEBUG:
+ goto out;
+ case SSH_MSG_UNIMPLEMENTED:
+ TRACE(("SSH_MSG_UNIMPLEMENTED"))
+ goto out;
+ }
}
/* Ignore these packet types so that keepalives don't interfere with
@@ -98,7 +101,8 @@ void process_packet() {
if (type >= 1 && type <= 49
&& type != SSH_MSG_SERVICE_REQUEST
&& type != SSH_MSG_SERVICE_ACCEPT
- && type != SSH_MSG_KEXINIT)
+ && type != SSH_MSG_KEXINIT
+ && !first_strict_kex)
{
TRACE(("unknown allowed packet during kexinit"))
recv_unimplemented();
diff --git a/ssh.h b/src/ssh.h
index 1b4fec65f..ef3efdca0 100644
--- a/ssh.h
+++ b/ssh.h
@@ -100,6 +100,10 @@
#define SSH_EXT_INFO_C "ext-info-c"
#define SSH_SERVER_SIG_ALGS "server-sig-algs"
+/* OpenSSH strict KEX feature */
+#define SSH_STRICT_KEX_S "kex-strict-s-v00@openssh.com"
+#define SSH_STRICT_KEX_C "kex-strict-c-v00@openssh.com"
+
/* service types */
#define SSH_SERVICE_USERAUTH "ssh-userauth"
#define SSH_SERVICE_USERAUTH_LEN 12
diff --git a/svr-session.c b/src/svr-session.c
index 769f0731d..a538e2c5c 100644
--- a/svr-session.c
+++ b/svr-session.c
@@ -342,6 +342,9 @@ static void svr_algos_initialise(void) {
algo->usable = 0;
}
#endif
+ if (strcmp(algo->name, SSH_STRICT_KEX_C) == 0) {
+ algo->usable = 0;
+ }
}
}

View File

@@ -24,7 +24,7 @@ IMAGE_FSTYPES = "wic.vmdk wic.vhd wic.vhdx"
inherit core-image setuptools3
SRCREV ?= "73e3b5481bc88b332a198a8ec51a3c43c5f08e7e"
SRCREV ?= "f91fefe108568a1587c804c9ebc857a6fe7d8a33"
SRC_URI = "git://git.yoctoproject.org/poky;branch=kirkstone \
file://Yocto_Build_Appliance.vmx \
file://Yocto_Build_Appliance.vmxf \

View File

@@ -26,8 +26,8 @@ NVDCVE_API_KEY ?= ""
# Use a negative value to skip the update
CVE_DB_UPDATE_INTERVAL ?= "86400"
# Timeout for blocking socket operations, such as the connection attempt.
CVE_SOCKET_TIMEOUT ?= "60"
# Number of attmepts for each http query to nvd server before giving up
CVE_DB_UPDATE_ATTEMPTS ?= "5"
CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DIR}/temp_nvdcve_2.db"
@@ -114,7 +114,10 @@ def cleanup_db_download(db_file, db_tmp_file):
if os.path.exists(db_tmp_file):
os.remove(db_tmp_file)
def nvd_request_next(url, api_key, args):
def nvd_request_wait(attempt, min_wait):
return min ( ( (2 * attempt) + min_wait ) , 30)
def nvd_request_next(url, attempts, api_key, args, min_wait):
"""
Request next part of the NVD dabase
"""
@@ -130,7 +133,7 @@ def nvd_request_next(url, api_key, args):
request.add_header("apiKey", api_key)
bb.note("Requesting %s" % request.full_url)
for attempt in range(5):
for attempt in range(attempts):
try:
r = urllib.request.urlopen(request)
@@ -143,8 +146,10 @@ def nvd_request_next(url, api_key, args):
r.close()
except Exception as e:
bb.note("CVE database: received error (%s), retrying" % (e))
time.sleep(6)
wait_time = nvd_request_wait(attempt, min_wait)
bb.note("CVE database: received error (%s)" % (e))
bb.note("CVE database: retrying download after %d seconds. attempted (%d/%d)" % (wait_time, attempt+1, attempts))
time.sleep(wait_time)
pass
else:
return raw_data
@@ -186,10 +191,16 @@ def update_db_file(db_tmp_file, d, database_time):
index = 0
url = d.getVar("NVDCVE_URL")
api_key = d.getVar("NVDCVE_API_KEY") or None
attempts = int(d.getVar("CVE_DB_UPDATE_ATTEMPTS"))
# Recommended by NVD
wait_time = 6
if api_key:
wait_time = 2
while True:
req_args['startIndex'] = index
raw_data = nvd_request_next(url, api_key, req_args)
raw_data = nvd_request_next(url, attempts, api_key, req_args, wait_time)
if raw_data is None:
# We haven't managed to download data
return False
@@ -209,7 +220,7 @@ def update_db_file(db_tmp_file, d, database_time):
break
# Recommended by NVD
time.sleep(6)
time.sleep(wait_time)
# Update success, set the date to cve_check file.
cve_f.write('CVE database update : %s\n\n' % datetime.date.today())

View File

@@ -0,0 +1,40 @@
From 3b4cc1437b51fcc0b08da8cc3f5d1175eed25eb1 Mon Sep 17 00:00:00 2001
From: Michal Sekletar <msekleta@redhat.com>
Date: Wed, 20 Dec 2023 16:44:14 +0100
Subject: [PATCH] resolved: actually check authenticated flag of SOA
transaction
Fixes #25676
Upstream-Status: Backport [https://github.com/systemd/systemd/commit/3b4cc1437b51fcc0b08da8cc3f5d1175eed25eb1]
CVE: CVE-2023-7008
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
---
src/resolve/resolved-dns-transaction.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c
index f937f9f7b5..7deb598400 100644
--- a/src/resolve/resolved-dns-transaction.c
+++ b/src/resolve/resolved-dns-transaction.c
@@ -2761,7 +2761,7 @@ static int dns_transaction_requires_rrsig(DnsTransaction *t, DnsResourceRecord *
if (r == 0)
continue;
- return FLAGS_SET(t->answer_query_flags, SD_RESOLVED_AUTHENTICATED);
+ return FLAGS_SET(dt->answer_query_flags, SD_RESOLVED_AUTHENTICATED);
}
return true;
@@ -2788,7 +2788,7 @@ static int dns_transaction_requires_rrsig(DnsTransaction *t, DnsResourceRecord *
/* We found the transaction that was supposed to find the SOA RR for us. It was
* successful, but found no RR for us. This means we are not at a zone cut. In this
* case, we require authentication if the SOA lookup was authenticated too. */
- return FLAGS_SET(t->answer_query_flags, SD_RESOLVED_AUTHENTICATED);
+ return FLAGS_SET(dt->answer_query_flags, SD_RESOLVED_AUTHENTICATED);
}
return true;
--
2.25.1

View File

@@ -32,6 +32,7 @@ SRC_URI += "file://touchscreen.rules \
file://CVE-2022-4415-2.patch \
file://0001-network-remove-only-managed-configs-on-reconfigure-o.patch \
file://0001-nspawn-make-sure-host-root-can-write-to-the-uidmappe.patch \
file://CVE-2023-7008.patch \
"
# patches needed by musl

View File

@@ -54,3 +54,6 @@ do_install:append:class-target() {
}
BBCLASSEXTEND = "native nativesdk"
# this CVE is for cloudflare zlib
CVE_CHECK_IGNORE += "CVE-2023-6992"

View File

@@ -66,5 +66,8 @@ SRC_URI = "\
file://0031-CVE-2022-45703-2.patch \
file://0031-CVE-2022-47695.patch \
file://CVE-2022-48063.patch \
file://0032-CVE-2022-47010.patch \
file://0033-CVE-2022-47007.patch \
file://0034-CVE-2022-48064.patch \
"
S = "${WORKDIR}/git"

View File

@@ -0,0 +1,38 @@
From: Alan Modra <amodra@gmail.com>
Date: Mon, 20 Jun 2022 01:09:31 +0000 (+0930)
Subject: PR29262, memory leak in pr_function_type
X-Git-Tag: binutils-2_39~224
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=0d02e70b197c786f26175b9a73f94e01d14abdab
PR29262, memory leak in pr_function_type
PR 29262
* prdbg.c (pr_function_type): Free "s" on failure path.
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=0d02e70b197c786f26175b9a73f94e01d14abdab]
CVE: CVE-2022-47010
Signed-off-by: Sanjana Venkatesh <Sanjana.Venkatesh@windriver.com>
---
diff --git a/binutils/prdbg.c b/binutils/prdbg.c
index c1e41628d26..bb42a5b6c2d 100644
--- a/binutils/prdbg.c
+++ b/binutils/prdbg.c
@@ -742,12 +742,9 @@ pr_function_type (void *p, int argcount, bool varargs)
strcat (s, ")");
- if (! substitute_type (info, s))
- return false;
-
+ bool ret = substitute_type (info, s);
free (s);
-
- return true;
+ return ret;
}
/* Turn the top type on the stack into a reference to that type. */

View File

@@ -0,0 +1,34 @@
From: Alan Modra <amodra@gmail.com>
Date: Thu, 16 Jun 2022 23:30:41 +0000 (+0930)
Subject: PR29254, memory leak in stab_demangle_v3_arg
X-Git-Tag: binutils-2_39~237
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=0ebc886149c22aceaf8ed74267821a59ca9d03eb
PR29254, memory leak in stab_demangle_v3_arg
PR 29254
* stabs.c (stab_demangle_v3_arg): Free dt on failure path.
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=0ebc886149c22aceaf8ed74267821a59ca9d03eb]
CVE: CVE-2022-47007
Signed-off-by: Deepthi Hemraj <Deepthi.Hemraj@windriver.com>
---
diff --git a/binutils/stabs.c b/binutils/stabs.c
index 2b5241637c1..796ff85b86a 100644
--- a/binutils/stabs.c
+++ b/binutils/stabs.c
@@ -5467,7 +5467,10 @@ stab_demangle_v3_arg (void *dhandle, struct stab_handle *info,
dc->u.s_binary.right,
&varargs);
if (pargs == NULL)
- return NULL;
+ {
+ free (dt);
+ return NULL;
+ }
return debug_make_function_type (dhandle, dt, pargs, varargs);
}

View File

@@ -0,0 +1,57 @@
From: Alan Modra <amodra@gmail.com>
Date: Tue, 20 Dec 2022 13:17:03 +0000 (+1030)
Subject: PR29922, SHT_NOBITS section avoids section size sanity check
X-Git-Tag: binutils-2_40~202
X-Git-Url: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=8f2c64de86bc3d7556121fe296dd679000283931
PR29922, SHT_NOBITS section avoids section size sanity check
PR 29922
* dwarf2.c (find_debug_info): Ignore sections without
SEC_HAS_CONTENTS.
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff_plain;h=8f2c64de86bc3d7556121fe296dd679000283931]
CVE: CVE-2022-48064
Signed-off-by: Deepthi Hemraj <Deepthi.Hemraj@windriver.com>
---
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 95f45708e9d..0cd8152ee6e 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -4831,16 +4831,19 @@ find_debug_info (bfd *abfd, const struct dwarf_debug_section *debug_sections,
{
look = debug_sections[debug_info].uncompressed_name;
msec = bfd_get_section_by_name (abfd, look);
- if (msec != NULL)
+ /* Testing SEC_HAS_CONTENTS is an anti-fuzzer measure. Of
+ course debug sections always have contents. */
+ if (msec != NULL && (msec->flags & SEC_HAS_CONTENTS) != 0)
return msec;
look = debug_sections[debug_info].compressed_name;
msec = bfd_get_section_by_name (abfd, look);
- if (msec != NULL)
+ if (msec != NULL && (msec->flags & SEC_HAS_CONTENTS) != 0)
return msec;
for (msec = abfd->sections; msec != NULL; msec = msec->next)
- if (startswith (msec->name, GNU_LINKONCE_INFO))
+ if ((msec->flags & SEC_HAS_CONTENTS) != 0
+ && startswith (msec->name, GNU_LINKONCE_INFO))
return msec;
return NULL;
@@ -4848,6 +4851,9 @@ find_debug_info (bfd *abfd, const struct dwarf_debug_section *debug_sections,
for (msec = after_sec->next; msec != NULL; msec = msec->next)
{
+ if ((msec->flags & SEC_HAS_CONTENTS) == 0)
+ continue;
+
look = debug_sections[debug_info].uncompressed_name;
if (strcmp (msec->name, look) == 0)
return msec;

View File

@@ -35,6 +35,8 @@ PTEST_ENABLED:libc-musl = "0"
EXTRA_OECONF = "--program-prefix=eu-"
BUILD_CFLAGS += "-Wno-error=stringop-overflow"
DEPENDS_BZIP2 = "bzip2-replacement-native"
DEPENDS_BZIP2:class-target = "bzip2"

View File

@@ -16,6 +16,7 @@ SRC_URI += "\
file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \
file://0001-exec.go-do-not-write-linker-flags-into-buildids.patch \
file://0001-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
file://0010-net-Fix-issue-with-DNS-not-being-updated.patch \
file://CVE-2022-27664.patch \
file://0001-net-http-httputil-avoid-query-parameter-smuggling.patch \
file://CVE-2022-41715.patch \
@@ -46,6 +47,7 @@ SRC_URI += "\
file://CVE-2023-29409.patch \
file://CVE-2023-39319.patch \
file://CVE-2023-39318.patch \
file://CVE-2023-39326.patch \
"
SRC_URI[main.sha256sum] = "a1a48b23afb206f95e7bbaa9b898d965f90826f6f1d1fc0c1d784ada0cd300fd"
@@ -54,5 +56,5 @@ SRC_URI[main.sha256sum] = "a1a48b23afb206f95e7bbaa9b898d965f90826f6f1d1fc0c1d784
# https://github.com/golang/go/issues/30999#issuecomment-910470358
CVE_CHECK_IGNORE += "CVE-2021-29923"
# This is specific to Microsoft Windows
CVE_CHECK_IGNORE += "CVE-2022-41716"
# This are specific to Microsoft Windows
CVE_CHECK_IGNORE += "CVE-2022-41716 CVE-2023-45283 CVE-2023-45284"

View File

@@ -0,0 +1,51 @@
From 20176b390e28daa86b4552965cb7bd9181983c4d Mon Sep 17 00:00:00 2001
From: Chaitanya Vadrevu <chaitanya.vadrevu@ni.com>
Date: Mon, 6 Nov 2023 20:11:19 -0600
Subject: [PATCH] net: Fix issue with DNS not being updated
When dns requests are made, go's native DNS resolver only reads
/etc/resolv.conf if the previous request is older than 5 seconds.
On first network call, an initialization code runs that is
supposed to initialize DNS data and set lastChecked time. There is a bug
in this code that causes /etc/resolv.conf to not be read during
initialization and the DNS data from program startup ends up being used
until the next 5 seconds. This means that if /etc/resolv.conf changed
between program startup and the first network call, old DNS data is
still used until the next 5 seconds.
This causes "docker pull" to fail the first time if docker daemon is
started before networking is up.
Upstream commit d52883f443e1d564b0300acdd382af1769bf0477 made lot of
improvements to DNS resolver to fix some issues which also fixes this
issue.
This patch picks the relevant changes from it to fix this particular
issue.
Upstream-Status: Backport [https://github.com/golang/go/commit/d52883f443e1d564b0300acdd382af1769bf0477]
Signed-off-by: Chaitanya Vadrevu <chaitanya.vadrevu@ni.com>
---
src/net/dnsclient_unix.go | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/net/dnsclient_unix.go b/src/net/dnsclient_unix.go
index 6dfd4af..520ffe6 100644
--- a/src/net/dnsclient_unix.go
+++ b/src/net/dnsclient_unix.go
@@ -337,10 +337,7 @@ var resolvConf resolverConfig
func (conf *resolverConfig) init() {
// Set dnsConfig and lastChecked so we don't parse
// resolv.conf twice the first time.
- conf.dnsConfig = systemConf().resolv
- if conf.dnsConfig == nil {
- conf.dnsConfig = dnsReadConfig("/etc/resolv.conf")
- }
+ conf.dnsConfig = dnsReadConfig("/etc/resolv.conf")
conf.lastChecked = time.Now()
// Prepare ch so that only one update of resolverConfig may
--
2.34.1

View File

@@ -0,0 +1,182 @@
From 6446af942e2e2b161c4ec1b60d9703a2b55dc4dd Mon Sep 17 00:00:00 2001
From: Damien Neil <dneil@google.com>
Date: Tue, 7 Nov 2023 10:47:56 -0800
Subject: [PATCH] net/http: limit chunked data overhead
The chunked transfer encoding adds some overhead to
the content transferred. When writing one byte per
chunk, for example, there are five bytes of overhead
per byte of data transferred: "1\r\nX\r\n" to send "X".
Chunks may include "chunk extensions",
which we skip over and do not use.
For example: "1;chunk extension here\r\nX\r\n".
A malicious sender can use chunk extensions to add
about 4k of overhead per byte of data.
(The maximum chunk header line size we will accept.)
Track the amount of overhead read in chunked data,
and produce an error if it seems excessive.
Updates #64433
Fixes #64434
Fixes CVE-2023-39326
Change-Id: I40f8d70eb6f9575fb43f506eb19132ccedafcf39
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2076135
Reviewed-by: Tatiana Bradley <tatianabradley@google.com>
Reviewed-by: Roland Shoemaker <bracewell@google.com>
(cherry picked from commit 3473ae72ee66c60744665a24b2fde143e8964d4f)
Reviewed-on: https://team-review.git.corp.google.com/c/golang/go-private/+/2095407
Run-TryBot: Roland Shoemaker <bracewell@google.com>
TryBot-Result: Security TryBots <security-trybots@go-security-trybots.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/547355
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
CVE: CVE-2023-39326
Upstream-Status: Backport [https://github.com/golang/go/commit/6446af942e2e2b161c4ec1b60d9703a2b55dc4dd]
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
---
src/net/http/internal/chunked.go | 36 +++++++++++++---
src/net/http/internal/chunked_test.go | 59 +++++++++++++++++++++++++++
2 files changed, 89 insertions(+), 6 deletions(-)
diff --git a/src/net/http/internal/chunked.go b/src/net/http/internal/chunked.go
index f06e572..ddbaacb 100644
--- a/src/net/http/internal/chunked.go
+++ b/src/net/http/internal/chunked.go
@@ -39,7 +39,8 @@ type chunkedReader struct {
n uint64 // unread bytes in chunk
err error
buf [2]byte
- checkEnd bool // whether need to check for \r\n chunk footer
+ checkEnd bool // whether need to check for \r\n chunk footer
+ excess int64 // "excessive" chunk overhead, for malicious sender detection
}
func (cr *chunkedReader) beginChunk() {
@@ -49,10 +50,38 @@ func (cr *chunkedReader) beginChunk() {
if cr.err != nil {
return
}
+ cr.excess += int64(len(line)) + 2 // header, plus \r\n after the chunk data
+ line = trimTrailingWhitespace(line)
+ line, cr.err = removeChunkExtension(line)
+ if cr.err != nil {
+ return
+ }
cr.n, cr.err = parseHexUint(line)
if cr.err != nil {
return
}
+ // A sender who sends one byte per chunk will send 5 bytes of overhead
+ // for every byte of data. ("1\r\nX\r\n" to send "X".)
+ // We want to allow this, since streaming a byte at a time can be legitimate.
+ //
+ // A sender can use chunk extensions to add arbitrary amounts of additional
+ // data per byte read. ("1;very long extension\r\nX\r\n" to send "X".)
+ // We don't want to disallow extensions (although we discard them),
+ // but we also don't want to allow a sender to reduce the signal/noise ratio
+ // arbitrarily.
+ //
+ // We track the amount of excess overhead read,
+ // and produce an error if it grows too large.
+ //
+ // Currently, we say that we're willing to accept 16 bytes of overhead per chunk,
+ // plus twice the amount of real data in the chunk.
+ cr.excess -= 16 + (2 * int64(cr.n))
+ if cr.excess < 0 {
+ cr.excess = 0
+ }
+ if cr.excess > 16*1024 {
+ cr.err = errors.New("chunked encoding contains too much non-data")
+ }
if cr.n == 0 {
cr.err = io.EOF
}
@@ -133,11 +162,6 @@ func readChunkLine(b *bufio.Reader) ([]byte, error) {
if len(p) >= maxLineLength {
return nil, ErrLineTooLong
}
- p = trimTrailingWhitespace(p)
- p, err = removeChunkExtension(p)
- if err != nil {
- return nil, err
- }
return p, nil
}
diff --git a/src/net/http/internal/chunked_test.go b/src/net/http/internal/chunked_test.go
index 08152ed..5fbeb08 100644
--- a/src/net/http/internal/chunked_test.go
+++ b/src/net/http/internal/chunked_test.go
@@ -211,3 +211,62 @@ func TestChunkReadPartial(t *testing.T) {
}
}
+
+func TestChunkReaderTooMuchOverhead(t *testing.T) {
+ // If the sender is sending 100x as many chunk header bytes as chunk data,
+ // we should reject the stream at some point.
+ chunk := []byte("1;")
+ for i := 0; i < 100; i++ {
+ chunk = append(chunk, 'a') // chunk extension
+ }
+ chunk = append(chunk, "\r\nX\r\n"...)
+ const bodylen = 1 << 20
+ r := NewChunkedReader(&funcReader{f: func(i int) ([]byte, error) {
+ if i < bodylen {
+ return chunk, nil
+ }
+ return []byte("0\r\n"), nil
+ }})
+ _, err := io.ReadAll(r)
+ if err == nil {
+ t.Fatalf("successfully read body with excessive overhead; want error")
+ }
+}
+
+func TestChunkReaderByteAtATime(t *testing.T) {
+ // Sending one byte per chunk should not trip the excess-overhead detection.
+ const bodylen = 1 << 20
+ r := NewChunkedReader(&funcReader{f: func(i int) ([]byte, error) {
+ if i < bodylen {
+ return []byte("1\r\nX\r\n"), nil
+ }
+ return []byte("0\r\n"), nil
+ }})
+ got, err := io.ReadAll(r)
+ if err != nil {
+ t.Errorf("unexpected error: %v", err)
+ }
+ if len(got) != bodylen {
+ t.Errorf("read %v bytes, want %v", len(got), bodylen)
+ }
+}
+
+type funcReader struct {
+ f func(iteration int) ([]byte, error)
+ i int
+ b []byte
+ err error
+}
+
+func (r *funcReader) Read(p []byte) (n int, err error) {
+ if len(r.b) == 0 && r.err == nil {
+ r.b, r.err = r.f(r.i)
+ r.i++
+ }
+ n = copy(p, r.b)
+ r.b = r.b[n:]
+ if len(r.b) > 0 {
+ return n, nil
+ }
+ return n, r.err
+}
--
2.40.0

View File

@@ -21,8 +21,8 @@ index f4a26f5..7bc748e 100644
# Original versions are not saved anymore; patch generally takes care of this,
# and if that fails, reaching for the source tarball is the safest option.
$(CROSSPATCHED): %.applied: %.patch
- patch -p1 -i $< && touch $@
+ test ! -f $@ && (patch -p1 -i $< && touch $@) || echo "$@ exist"
- $(cpatch) -p1 -i $< && touch $@
+ test ! -f $@ && ($(cpatch) -p1 -i $< && touch $@) || echo "$@ exist"
# ---[ common ]-----------------------------------------------------------------

View File

@@ -18,7 +18,7 @@ SRC_URI = "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross
"
UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/"
SRC_URI[perl-cross.sha256sum] = "77f13ca84a63025053852331b72d4046c1f90ded98bd45ccedea738621907335"
SRC_URI[perl-cross.sha256sum] = "584dc54c48dca25e032b676a15bef377c1fed9de318b4fc140292a5dbf326e90"
S = "${WORKDIR}/perl-cross-${PV}"

View File

@@ -29,7 +29,7 @@ SRC_URI:append:class-target = " \
file://encodefix.patch \
"
SRC_URI[perl.sha256sum] = "357951a491b0ba1ce3611263922feec78ccd581dddc24a446b033e25acf242a1"
SRC_URI[perl.sha256sum] = "5b12f62863332b2a5f54102af9cdf8c010877e4bf3294911edbd594b2a1e8ede"
S = "${WORKDIR}/perl-${PV}"

View File

@@ -0,0 +1,53 @@
From 627ac5e314303acc00a19d58f09eb1eabd029fd1 Mon Sep 17 00:00:00 2001
From: Alex Gaynor <alex.gaynor@gmail.com>
Date: Wed, 6 Dec 2023 08:04:53 +0000
Subject: [PATCH] Fixed crash when loading a PKCS#7 bundle with no certificates
(#9926)
CVE: CVE-2023-49083
Upstream-Status: Backport [https://github.com/pyca/cryptography/commit/1e7b4d074e14c4e694d3ce69ad6754a6039fd6ff]
Signed-off-by: Narpat Mali <narpat.mali@windriver.com>
---
src/cryptography/hazmat/backends/openssl/backend.py | 5 ++++-
tests/hazmat/primitives/test_pkcs7.py | 6 ++++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 5606fe6..c43fea0 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -2189,9 +2189,12 @@ class Backend(BackendInterface):
_Reasons.UNSUPPORTED_SERIALIZATION,
)
+ certs: list[x509.Certificate] = []
+ if p7.d.sign == self._ffi.NULL:
+ return certs
+
sk_x509 = p7.d.sign.cert
num = self._lib.sk_X509_num(sk_x509)
- certs = []
for i in range(num):
x509 = self._lib.sk_X509_value(sk_x509, i)
self.openssl_assert(x509 != self._ffi.NULL)
diff --git a/tests/hazmat/primitives/test_pkcs7.py b/tests/hazmat/primitives/test_pkcs7.py
index 91ac842..b98a9f1 100644
--- a/tests/hazmat/primitives/test_pkcs7.py
+++ b/tests/hazmat/primitives/test_pkcs7.py
@@ -81,6 +81,12 @@ class TestPKCS7Loading(object):
mode="rb",
)
+ def test_load_pkcs7_empty_certificates(self):
+ der = b"\x30\x0B\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x07\x02"
+
+ certificates = pkcs7.load_der_pkcs7_certificates(der)
+ assert certificates == []
+
# We have no public verification API and won't be adding one until we get
# some requirements from users so this function exists to give us basic
--
2.40.0

View File

@@ -18,6 +18,7 @@ SRC_URI += " \
file://0002-Cargo.toml-edition-2018-2021.patch \
file://fix-leak-metric.patch \
file://CVE-2023-23931.patch \
file://CVE-2023-49083.patch \
"
inherit pypi python_setuptools3_rust

View File

@@ -1,3 +1,3 @@
#!/bin/sh
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'| sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s : %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
pytest -o log_cli=true -o log_cli_level=INFO | sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'| sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'

Some files were not shown because too many files have changed in this diff Show More