Compare commits

...

205 Commits

Author SHA1 Message Date
Lee Chee Yang
58f9b898da migration-guides: add release notes for 4.0.32
(From yocto-docs rev: 398a2a080361eb22b9c447dbde31fca58bf4e0bb)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 095981c08b9d63905472df5d1d60c07af96f0250)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-02-12 17:00:21 +00:00
Antonin Godard
e60019c6eb dev-manual/packages.rst: fix example recipe version
The example recipe taken above is hello-world on version 1.0 (because
PV equals "1.0+git". Fix this issue.

(From yocto-docs rev: a48ab61034d50be1026b939112f4a5c58bed7b88)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 411122812ced4ec32127a823896a73aacf6eb97c)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-02-12 17:00:21 +00:00
Antonin Godard
7794952de8 dev-manual/packages.rst: rename r0.0 to r0 when PR server is not enabled
When we don't have a PR server enabled, we don't have leading ".0" to
the PKGR variable, as this is added by the PR server.

(From yocto-docs rev: 4c64db73fa68b6dbc11fe4b64452b0d6b7ee0280)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 7a0324b6a10e64ee250945747db10ca88040b1ce)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-02-12 17:00:21 +00:00
Antonin Godard
7bb35f44d9 dev-manual/packages.rst: pr server: fix and explain why r0.X increments on SRCREV change
The current example of the SRCREV change triggering a gitX bump is
wrong, as both gitX and r0.X get incremented.

Why this is happening is explained in bug 15729, which I copy here:

> +gitX+ is indeed related to changes in the source code.
>
> r0.X is bumped each time the checksum of the do_package task of the
> simple-hello-world-git recipe changes. This happens here:
> https://git.openembedded.org/openembedded-core/tree/meta/classes-global/package.bbclass?id=235e6d49e5888ad04416219e10b6df91a738661a#n306
>
> This line sets the value of PRAUTO and represents the number X found in
> r0.X. It will in the end make it into EXTENDPRAUTO, which itself makes
> to PKGR == r0.X.
>
> This line calls getPR(version, pkgarch, checksum). Between test case 5
> and 6, only the checksum changes. This checksum is the checksum of the
> do_package task (gotten from get_do_package_hash() above).
>
> Now, let's dump what changed with regards to this task between two
> consecutive runs, using the sigdata file in build/tmp/stamps/:
>
> ```
> [...]
> Variable fetcher_hashes_dummyfunc value changed from '2650ad6714c3f3248abfe9d3daf1196f307ed494' to '4af682a50174f5deb0397847da97d7cdba4ad067'
> ```
>
> The last line shows that the value of fetcher_hashes_dummyfunc changed
> from '2650ad6714c3f3248abfe9d3daf1196f307ed494' to
> '4af682a50174f5deb0397847da97d7cdba4ad067'. Those are the commit hashes
> in the git history of the simple-hello-world-git repository.
>
> Now you can see why this 0.X gets bumped, is because of the SRCREV change.

Fix the example, and detail what gets changed and why.

[YOCTO #15729]

Cc: Robert Berger <pokylinux@reliableembeddedsystems.com>
(From yocto-docs rev: 8d7b549d095c2ca04d4c7ff5a92f6de9fceb8496)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 09f0430bc69024b9854c31ba6783ddd807aa4f19)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-02-12 17:00:21 +00:00
Richard Purdie
c3b734f0a7 build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: e2994ca0076ec99038790e7a40936236a5078135)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-02-12 17:00:21 +00:00
Antonin Godard
ff118ede82 contributor-guide/recipe-style-guide.rst: explain difference between layer and recipe license(s)
Explain that the LICENSE set in a recipe does not apply to the recipe
file itself, but to the underlying software. The license of the recipe
file is the license provided in the layer itself. Give OpenEmbedded-Core
as an example for this.

Fixes [YOCTO #14410]

(From yocto-docs rev: 6799b1be5d48f4bf5dcd0b16c2dbc2e297d4ecd9)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit b8a56b8b2e8c0417b2f7204f80c79b05d95e9ce4)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
d5bcc413d0 ref-manual/variables.rst: document the CCACHE_TOP_DIR variable
Added by commit 35d7fe73bba1 ("ccache.bbclass: Make it can be shared
between different builds") in OE-Core.

Fixes [YOCTO #16052]

(From yocto-docs rev: e4f5ba7bb34586cd7bee7f0fe69c39b36dabb357)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 550ef8340b550f8d4e9c3d0672190dc09592c621)
Fix conflicts: CCLD variable in master not on kirkstone.
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
72eb266009 overview-manual: convert YP-flow-diagram.png to SVG
Based on diagrams/poky-buildprocess/Pokyarch_diag.svg, replace the PNG
graphic for the YP flow to an SVG graphic.

(From yocto-docs rev: 2983418bec7a2faeaae4e831b8f642ff0cd95980)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit d2aaf54bee49295bdf81021648cb27499930edc6)
Fix conflicts (different alignment on master, keep one from kirkstone)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
d66f9ee0ef overview-manual/yp-intro.rst: fix SDK type in bullet list
The YP generates an SDK by default, which can be meta-toolchain, an
image-specific one, or an extensible SDK (eSDK). Don't be specific in
this bullet list.

(From yocto-docs rev: 3c455c5a2892611d2323610170f9600ceb953f6c)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit f02c64286504353e97c7e5fe5c0d193776469ad1)
Fix conflict (#. on master, 7. on kirkstone)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
5489d2b5b6 ref-manual/release-process.rst: add a "Development Cycle" section
Add a new section to release-process.rst to document the development
cycle of each release and namely the milestones and feature freeze
occuring after M3.

Fixes [YOCTO #15979]

(From yocto-docs rev: f7888e3c3267ec7c39374f694f86088598bea649)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 77c04cc5944acda7575546a7434e014e4a75ba58)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
e3fdce60c0 test-manual/ptest.rst: detail the exit code and output requirements
A ptest must emit at least one test result on the console, as this is
required by the testimage class (which ignores the exit code).
ptest-runner on the other hand, ignore the output and only cares about
the exit code.

Add these two items as requirements for a ptest to be valid.

Fixes [YOCTO #15832]

Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
(From yocto-docs rev: 916be11467d87d39e4ad5ea218237258523f3953)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 9292f61d7ba89598c89033ea7ee3b11a20d873f3)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
a4aa1bc237 ref-manual/classes.rst: document the image-container class
Add documentation for the image-container class, which is a simple class
to generate an image suitable for creating a container.

This answers in part to questions asked in [YOCTO #14368].

It also adds documentation for IMAGE_CONTAINER_NO_DUMMY, which was added
in OE-Core with commit f0645e172bb8 ("image-container.bbclass: Error if
not using linux-dummy").

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: cebe8ff0508e0fc2de8378a1cf93eb8054e12699)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 6ce00e5875eb3469fefd55cc22acaaeaf620053a)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
cb99d0b1c5 Add a new "Security" section
The current security-related documentation is a bit hard to find and
hidden within the development manual. However these are processes that
are not part of a development task but is rather a vulnerability
reporting process.

Create a new "Security" section in the documentation to gather this
information. This will be directly visible in the sidebar when opening
the documentation.

Split the previous security-subjects.rst document into 2 documents:

- security-team.rst: defines the roles of the security teams and its
  members.

- reporting-vulnerabilities.rst: guide to report vulnerabilities to the
  security team.

The plan is to backport these documents to active releases. As a
consequence, this section should be free of instructions and information
that only make sense for a specific release. It should _not_ contain
documents on how to enable security features with Yocto on target
devices, this is unrelated and can be left in the development manual
(for example: dev-manual/vulnerabilities.rst to deal with CVEs).

(From yocto-docs rev: 3fd0f37d708d88534dd6dbb51dc264911c349352)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 81e14ca2d5cff9e2104c556655144b069633790c)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
e1c9a5d58f ref-manual/svg/releases.svg: mark whinlatter as current release
Whinlatter is the new current Yocto Project release, mark it as an
active one. Move it as released in December 2025.

(From yocto-docs rev: 7f6dff5c3d549cbd5040c15261bdb38a54dbd69e)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 6f8e97c6e529f3c47f45f34d9e04e3ad7bddd587)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
0071164ce8 ref-manual/svg/releases.svg: mark styhead and walnascar EOL
Walnascar has stopped being updated a while ago, and Styhead is EOL
since May 2025.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: 2425f0cf64c35b9f7d0676dd31c2ea94fcdb3a31)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 834de77b543de43ee3c1c12ca1d6277e67e126de)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
10233e97f7 overview-manual/yp-intro.rst: link to YP members and participants
Instead of a fixed list of commercial vendors, link to existing lists on
the YP website.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: 69ad32040baf8ca7c79265fd83041b3241353e2d)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 9d394db4f88b66500e4d5a2a518d25f08a0c9472)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Antonin Godard
941d1d47c1 overview-manual/yp-intro.rst: change removed ECOSYSTEM to ABOUT
The ABOUT tab is where the members/participants are listed now.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: 8e216cd6e17fe4bc367c11d2ad3e3d7a29701af8)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit a8a8d810f0505529aaaa90678e03152c8ac0c00b)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 18:54:18 +00:00
Richard Purdie
5abd143cb5 build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: 036f76ea35c49a78d612093dcd8eb1fac7ded8d7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:50:42 +00:00
Paul Barker
71ae82a596 poky.conf: Bump version for 4.0.33 release
(From meta-yocto rev: 677379f21941363d50f9d946963542b4ccb7e27c)

Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:50:26 +00:00
Khem Raj
6f2c1098a6 oeqa: Use 2.14 release of cpio instead of 2.13
2.13 may not be buildable with latest compilers without patching

(From OE-Core rev: 64d56cf416b31ae92438deefe4028402120ed998)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

(cherry picked from commit 406a33f896accc35a9cb6ab156f1e0f42dda67d8)
Backport: Fix [YOCTO #16137] by using the same archive as the cpio
recipe, ensuring the archive is in DL_DIR and so, avoiding reaching
unreliable upstream server.
This upgrade is safe to do because this archive is only use to test that
it compiles.

Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Richard Purdie
74924f0891 pseudo: Update to pull in 'makewrappers: Fix EFAULT implementation'
The pseudo update was causing hangs in builds, pull in the fix.

(From OE-Core rev: e514b1ac74ae8a69b15e3459cb3b327a35cabff8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8acdbefd0a148c8b7713f46066ae8489984c5d2d)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Richard Purdie
d087748248 pseudo: Update to pull in openat2 and efault return code changes
Pulls in the following fixes:

 * makewrappers: Enable a new efault option
 * ports/linux/openat2: Add dummy wrapper
 * test-syscall: Add a syscall test
 * ports/linux/pseudo_wrappers: Avoid openat2 usage via syscall

which should fix issues with the tar CVE fix on Centos/Alma/Rocky 9 distros
that uses openat2 as well as the efault issue breaking rust based uutils.

(From OE-Core rev: edc8c8e0ae511b03cb9d0501d472bb42fbea2c8b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

(cherry picked from commit 51f1388dd1679a28ec3ca468cf16aa0ea32bccf9)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Paul Barker
401a9cdd7d pseudo: Add hard sstate dependencies for pseudo-native
Where a task (such as do_package) runs under fakeroot, the corresponding
setscene task (do_package_setscene) will also run under fakeroot when
restoring from sstate. Assuming pseudo is used as the fakeroot
implementation, we need pseudo-native and all its runtime dependencies
to be available in the sysroot before running any setscene tasks under
fakeroot.

We already add a hard dependency from all do_package_setscene tasks to
virtual/fakeroot-native:do_populate_sysroot in base.bbclass, but this
does not cover transitive dependencies. So, extend the dependencies of
pseudo-native:do_populate_sysroot_setscene to ensure that the sqlite3
library is also available in the sysroot before running fakeroot
setscene tasks.

[YOCTO #15963]

(From OE-Core rev: e3c07672d22343cd7ac68cb84716b05ec7cd438b)

Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2c146ca657440550e00bc5e53d13502ef7aa945b)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Richard Purdie
42eb45b3a0 pseudo: Update to pull in memleak fix
(From OE-Core rev: d789b03d33d9a0fce335080f667c29ed45515726)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 42137b6f97da0672af365cd841678f39ce5907d2)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Robert Yang
3a3b526edb pseudo: 1.9.0 -> 1.9.2
(From OE-Core rev: 2093a9c80e391795abbac8766569583a3547e43b)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 48a42747fd280ce68283e1491971d22273e3bdf2)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Richard Purdie
8a6b3d82f6 pseudo: Upgrade to version 1.9.1
This brings in:
 * nftw, nftw64: add wrapper
 * ftw, nftw, ftw64, nftw64: add tests
 * Move ftw and ftw64 to calling ntfw and nftw64
 * makewrappers: Introduce 'array' support
 * pseudo_util.c: Avoid warning when we intentionally discard const
 * pseudo_client.c: Fix warning
 * yocto-older-glibc-symbols.path: Add as a reference patch
 * pseudo/pseudo_client: Add wrapper functions to operate correctly with glibc 2.38 onwards
 * configure: Prune PIE flags
 * test/test-parallel-rename.sh: Add parallel rename test
 * test/test-parallel-symlinks.sh: Add parallel symlink test
 * ports/linux/guts: Add .gitignore to ignore generated files

(From OE-Core rev: b3140c624504b19a2b2faec8df89f57a99cefce1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 994e508b2a0ede8b5cc4fe39444cf25dc9a53faf)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Vijay Anusuri
2c23fc4f0e binutils: Fix CVE-2025-1181
import patch from ubuntu to fix
 CVE-2025-1181

Upstream-Status: Backport [import from ubuntu https://git.launchpad.net/ubuntu/+source/binutils/tree/debian/patches?h=ubuntu/jammy-security
Upstream commit
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=931494c9a89558acb36a03a340c01726545eef24
&
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=18cc11a2771d9e40180485da9a4fb660c03efac3]

(From OE-Core rev: 55d4b81b15b6eb2e221ff69dc791d2e319fad234)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>

[Yoann Congal: Corrected the second patch SHA1 in URLs "18cc11a..."]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
71966f1bad gnupg: patch CVE-2025-68973
Pick patch from 2.4 branch per [1].

[1] https://security-tracker.debian.org/tracker/CVE-2025-68973

(From OE-Core rev: 403a9bc3da3574d828cfbce805df48d0181eafed)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
cd8f4444b2 curl: patch CVE-2025-15224
Pick patch per [1].

[1] https://curl.se/docs/CVE-2025-15224.html

(From OE-Core rev: db87200a8ae19d40e7a8f038d9fe4e426f159ad3)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
2bf97e4e41 curl: patch CVE-2025-15079
Pick patch per [1].

[1] https://curl.se/docs/CVE-2025-15079.html

(From OE-Core rev: 8ce2a761c2f00e9c7782654cf6d6384ccd3f6e16)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
fd21399bac curl: patch CVE-2025-14017
Pick patch per [1].

[1] https://curl.se/docs/CVE-2025-14017.html

(From OE-Core rev: ae23e163f7399e957a100dc13d9cd0b829eef2f4)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
2654f4f66c libarchive: fix CVE-2025-60753 regression
Pick patch from PR mentioned in v3.8.5 release notes.

(From OE-Core rev: dc3d99c419a913e66cb73bf098291c21985b0432)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Hitendra Prajapati
cfb6825c35 python3: fix CVE-2025-13836
Upstream-Status: Backport from 289f29b0fe

(From OE-Core rev: d3bcb5ded27003612ad591764f648e83e91c27ca)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
51201f6c54 libpcap: patch CVE-2025-11964
Pick patch per [1].

[1] https://nvd.nist.gov/vuln/detail/CVE-2025-11964

(From OE-Core rev: 026c6e7ee386ae09b9a2ef22d69730fc838ddf4f)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
a12f120831 libpcap: patch CVE-2025-11961
Pick patch per [1].
Also pick additional preparation patch to apply it cleanly.

[1] https://nvd.nist.gov/vuln/detail/CVE-2025-11961

(From OE-Core rev: 714fb7c711b414407598e3a94b0600fe7f857e38)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
4c8419bebe python3-urllib3: patch CVE-2025-66418
Pick patch per [1].

[1] https://nvd.nist.gov/vuln/detail/CVE-2025-66418

(From OE-Core rev: 469fcdd5f07635fa9e308c968126807c1ca09647)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
842275784a dropbear: patch CVE-2019-6111
Pick patch mentioning this CVE number.

(From OE-Core rev: 3a8effd37b83cab3421ee1fe59da232cdf338743)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
46bfac5bd7 cups: allow unknown directives in conf files
Patch for CVE-2025-61915 by mistake causes fatal error on unknown
directives in configuration files.
The default configuration already contains unknown directive in
non-systemd setups:
Unknown directive IdleExitTimeout on line 32 of /etc/cups/cupsd.conf

Backport fix for this from 2.4.x branch which reverts this behavior.

(From OE-Core rev: 6faf1266813efa21503511834cbb12f0d63c82fe)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
17f7dd686d cups: patch CVE-2025-61915
Pick patch per [1].

[1] https://nvd.nist.gov/vuln/detail/CVE-2025-61915

(From OE-Core rev: 522d8a64335bb3faa7a2ed492fca1bdd665fb236)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
3f703ca1c4 cups: patch CVE-2025-58436
Pick patch from branch 2.4.x corresponding to patch mentioned in [1].

[1] https://nvd.nist.gov/vuln/detail/CVE-2025-58436

(From OE-Core rev: f1014ff6d886312afd55473497934590bc9c78ac)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
15ea9a3dcb qemu: ignore CVE-2025-54566 and CVE-2025-54567
These CVEs are not applicable to version 6.2.x as the vulnerable code
was introduced inly in 10.0.0.

Debian made the analysis, reuse their work.
* https://security-tracker.debian.org/tracker/CVE-2025-54566
* https://security-tracker.debian.org/tracker/CVE-2025-54567

(From OE-Core rev: 616e6c793bd025337aa8b66450408829fdfe59d5)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
b06df1f496 glib-2.0: patch CVE-2025-14512
Pick patch from [1] linked from [2].

[1] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4935
[2] https://gitlab.gnome.org/GNOME/glib/-/issues/3845

(From OE-Core rev: 2fb84f36c77e0d049a71dcfa597a67d297cbfd0a)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
32417b8ef7 glib-2.0: patch CVE-2025-14087
Pick commits from [1] linked from [2].

[1] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4933
[2] https://gitlab.gnome.org/GNOME/glib/-/issues/3834

(From OE-Core rev: 6e1ce2de818d647d69f652ab67c0c2d13860e77b)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
0092f97678 glib-2.0: patch CVE-2025-13601
Pick commits from [1] per [2].

[1] https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4914
[2] https://nvd.nist.gov/vuln/detail/CVE-2025-13601

(From OE-Core rev: eb0e4e0fce9378100e4482fc91d6886d84ef7ec2)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Peter Marko
0736fb2025 util-linux: patch CVE-2025-14104
Pick patches per [1].

[1] https://security-tracker.debian.org/tracker/CVE-2025-14104

(From OE-Core rev: 8f7f1562f6cba3b67cc4301702c03ab31551a155)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2026-01-26 09:49:25 +00:00
Vijay Anusuri
c942cdb057 go: Fix CVE-2025-61729
Upstream-Status: Backport from 3a842bd5c6

(From OE-Core rev: 0057fc49725db8637656fac10631d8f89799bad3)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2026-01-02 07:21:42 -08:00
Vijay Anusuri
690dcd2621 go: Fix CVE-2025-61727
Upstream-Status: Backport from 04db77a423

(From OE-Core rev: dc1d95e3edfeaa5458fc564910ae5c9445a6f942)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2026-01-02 07:21:42 -08:00
Vijay Anusuri
084488d13f go: Update CVE-2025-58187
Upstream-Status: Backport from ca6a5545ba

(From OE-Core rev: 43b3d2b2ef77c97b323b86bd6ee54996c38e46ed)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2026-01-02 07:21:42 -08:00
Jiaying Song
5e7ac0aa43 grub: fix CVE-2025-61661 CVE-2025-61662 CVE-2025-61663 CVE-2025-61664
References:
https://nvd.nist.gov/vuln/detail/CVE-2025-61661
https://nvd.nist.gov/vuln/detail/CVE-2025-61662
https://nvd.nist.gov/vuln/detail/CVE-2025-61663
https://nvd.nist.gov/vuln/detail/CVE-2025-61664

(From OE-Core rev: f2031f39e423b764ccf4003bdee05f30d66fb7ce)

Signed-off-by: Jiaying Song <jiaying.song.cn@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2026-01-02 07:21:42 -08:00
Martin Jansa
37dc9a476a cross.bbclass: Propagate dependencies to outhash
Similar to what native and staging is doing since:
https://git.openembedded.org/openembedded-core/commit/meta/classes/native.bbclass?id=d6c7b9f4f0e61fa6546d3644e27abe3e96f597e2
https://git.openembedded.org/openembedded-core/commit/meta/classes/staging.bbclass?id=1cf62882bbac543960e4815d117ffce0e53bda07

Cross task outputs can call native dependencies and even when cross
recipe output doesn't change it might produce different results when
the called native dependency is changed, e.g. clang-cross-${TARGET_ARCH}
contains symlink to clang binary from clang-native, but when clang-native
outhash is changed, clang-cross-${TARGET_ARCH} will still be considered
equivalent and target recipes aren't rebuilt with new clang binary, see
work around in https://github.com/kraj/meta-clang/pull/1140 to make target
recipes to depend directly not only on clang-cross-${TARGET_ARCH} but
clang-native as well.

I have added a small testcase in meta-selftest which demostrates this issue.
Not included in this change, but will send it if useful.

openembedded-core $ ls -1 meta-selftest/recipes-devtools/hashequiv-test/
print-datetime-link-cross.bb
print-datetime-link-native.bb
print-datetime-native.bb
print-datetime-usecross.bb
print-datetime-usenative.bb

print-datetime-native provides script which prints defined PRINT_DATETIME variable.

print-datetime-link-native and print-datetime-link-cross both provide a symlink to
the script from print-datetime-native.

print-datetime-usenative and print-datetime-usecross are target recipes using the
native and cross versions of print-datetime-link-* recipe.

  # clean build all is rebuilt:
  $ bitbake -k print-datetime-usenative print-datetime-usecross
  WARNING: print-datetime-native-1.0-r0 do_install: print-datetime-native current DATETIME in script is 2025-11-13_20_05
  WARNING: print-datetime-link-native-1.0-r0 do_install: print-datetime-link-native current DATETIME in symlink is 2025-11-13_20_05
  WARNING: print-datetime-link-cross-x86_64-1.0-r0 do_install: print-datetime-link-cross-x86_64 current DATETIME in symlink is 2025-11-13_20_05
  WARNING: print-datetime-usenative-1.0-r0 do_install: print-datetime-usenative current DATETIME from print-datetime-link is 2025-11-13_20_05
  WARNING: print-datetime-usecross-1.0-r0 do_install: print-datetime-usecross current DATETIME from print-datetime-link is 2025-11-13_20_05

  # keep sstate-cache and hashserv.db:
  # print-datetime-usenative is correctly rebuilt, because print-datetime-link-native has different hash (because print-datetime-native hash changed)
  # print-datetime-usecross wasn't rebuilt, because print-datetime-link-cross-x86_64 doesn't include the changed hash of print-datetime-native
  $ bitbake -k print-datetime-usenative print-datetime-usecross
  WARNING: print-datetime-native-1.0-r0 do_install: print-datetime-native current DATETIME in script is 2025-11-13_20_07
  WARNING: print-datetime-link-native-1.0-r0 do_install: print-datetime-link-native current DATETIME in symlink is 2025-11-13_20_07
  WARNING: print-datetime-link-cross-x86_64-1.0-r0 do_install: print-datetime-link-cross-x86_64 current DATETIME in symlink is 2025-11-13_20_07
  WARNING: print-datetime-usenative-1.0-r0 do_install: print-datetime-usenative current DATETIME from print-datetime-link is 2025-11-13_20_07

It's because print-datetime-link-cross-x86_64 depsig doesn't include print-datetime-native signature:

$ cat tmp/work/x86_64-linux/print-datetime-link-cross-x86_64/1.0/temp/depsig.do_populate_sysroot
OEOuthashBasic
18
SSTATE_PKGSPEC=sstate:print-datetime-link-cross-x86_64:x86_64-oe-linux:1.0:r0:x86_64:14:
task=populate_sysroot
drwx                                                                                       .
drwx                                                                                       ./recipe-sysroot-native
drwx                                                                                       ./recipe-sysroot-native/sysroot-providers
-rw-                   32 19fbeb373f781c2504453c1ca04dab018a7bc8388c87f4bbc59589df31523d07 ./recipe-sysroot-native/sysroot-providers/print-datetime-link-cross-x86_64
drwx                                                                                       ./recipe-sysroot-native/usr
drwx                                                                                       ./recipe-sysroot-native/usr/bin
drwx                                                                                       ./recipe-sysroot-native/usr/bin/x86_64-oe-linux
lrwx                                                                                       ./recipe-sysroot-native/usr/bin/x86_64-oe-linux/print-datetime-link -> ../print-datetime

While print-datetime-link-native doesn't have this issue, because print-datetime-native signature is there:

$ cat tmp/work/x86_64-linux/print-datetime-link-native/1.0/temp/depsig.do_populate_sysroot
OEOuthashBasic
18
print-datetime-native: 60f2734a63d708489570ca719413b4662f8368abc9f4760a279a0a5481e4a17b
quilt-native: 65d78a7a5b5cbbf0969798efe558ca28e7ef058f4232fcff266912d16f67a8b8
SSTATE_PKGSPEC=sstate:print-datetime-link-native:x86_64-linux:1.0:r0:x86_64:14:
task=populate_sysroot
drwx                                                                                       .
drwx                                                                                       ./recipe-sysroot-native
drwx                                                                                       ./recipe-sysroot-native/sysroot-providers
-rw-                   26 3d5458be834b2d0e4c65466b9b877d6028ae2210a56399284a23144818666f10 ./recipe-sysroot-native/sysroot-providers/print-datetime-link-native
drwx                                                                                       ./recipe-sysroot-native/usr
drwx                                                                                       ./recipe-sysroot-native/usr/bin
lrwx                                                                                       ./recipe-sysroot-native/usr/bin/print-datetime-link -> print-datetime

With the cross.bbclass fix the link-cross recipe has a checksum from native recipe as well:

$ cat tmp/work/x86_64-linux/print-datetime-link-cross-x86_64/1.0/temp/depsig.do_populate_sysroot
OEOuthashBasic
18
print-datetime-native: 9ceb6c27342eae6b8da86c84685af38fb8927ccc19979aae75b8b1e444b11c5c
quilt-native: 65d78a7a5b5cbbf0969798efe558ca28e7ef058f4232fcff266912d16f67a8b8
SSTATE_PKGSPEC=sstate:print-datetime-link-cross-x86_64:x86_64-oe-linux:1.0:r0:x86_64:14:
task=populate_sysroot
drwx                                                                                       .
drwx                                                                                       ./recipe-sysroot-native
drwx                                                                                       ./recipe-sysroot-native/sysroot-providers
-rw-                   32 19fbeb373f781c2504453c1ca04dab018a7bc8388c87f4bbc59589df31523d07 ./recipe-sysroot-native/sysroot-providers/print-datetime-link-cross-x86_64
drwx                                                                                       ./recipe-sysroot-native/usr
drwx                                                                                       ./recipe-sysroot-native/usr/bin
drwx                                                                                       ./recipe-sysroot-native/usr/bin/x86_64-oe-linux
lrwx                                                                                       ./recipe-sysroot-native/usr/bin/x86_64-oe-linux/print-datetime-link -> ../print-datetime

And print-datetime-usecross is correctly rebuilt whenever print-datetime-native output is different.

(From OE-Core rev: c15faee8854e85e02693a041d88326f30b24ee92)

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Aleksandar Nikolic
1e47a3035c scripts/install-buildtools: Update to 4.0.31
Update to the 4.0.31 release of the 4.0 series for buildtools

(From OE-Core rev: c0dacba480b02ea591915f8afbe0b48c10b8be43)

Signed-off-by: Aleksandar Nikolic <aleksandar.nikolic@zeiss.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Changqing Li
d35837e3cd libsoup: fix CVE-2025-12105
Refer:
https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/481

(From OE-Core rev: caa6f192df558d5f46c8a0968f72f08c6e59df1d)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Mingli Yu
33cffc4716 libxslt: Fix CVE-2025-11731
Backport patch [1] to fix CVE-2025-11731.

[1] fe508f201e

(From OE-Core rev: 7196077d84cc8d49652b0d6b54963df579ab1a0b)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Yash Shinde
df858d86ed binutils: fix CVE-2025-11840
CVE-2025-11840

PR 33455
[BUG] A SEGV in vfinfo at ldmisc.c:527
A reloc howto set up with EMPTY_HOWTO has a NULL name.  More than one
place emitting diagnostics assumes a reloc howto won't have a NULL
name.

https://sourceware.org/bugzilla/show_bug.cgi?id=33455

Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=f6b0f53a36820da91eadfa9f466c22f92e4256e0]

(From OE-Core rev: 85e62aad46eb096cf92907288a3eb1b6f76072c4)

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Yash Shinde
c1f7fcc84f binutils: fix CVE-2025-11839
CVE-2025-11839

PR 33448
[BUG] Aborted in tg_tag_type at prdbg.c:2452
Remove call to abort in the DGB debug format printing code, thus allowing
the display of a fuzzed input file to complete without triggering an abort.

https://sourceware.org/bugzilla/show_bug.cgi?id=33448

Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=12ef7d5b7b02d0023db645d86eb9d0797bc747fe]

(From OE-Core rev: d99979ea5fa475a59d3c21859d3bbbd81e0cdba4)

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Libo Chen
9af12b047e go: Fix CVE-2023-39323
Line directives ("//line") can be used to bypass the restrictions on
"//go:cgo_" directives, allowing blocked linker and compiler flags to
be passed during compilation. This can result in unexpected execution
of arbitrary code when running "go build". The line directive requires
the absolute path of the file in which the directive lives, which makes
exploiting this issue significantly more complex.

Made below changes for Go 1.17 backport:
- drop the modifications of test codes

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

Upstream-patch:
e7c142a19d

(From OE-Core rev: 62f4c3aec8f80a259472ce19104596d08741c101)

Signed-off-by: Libo Chen <libo.chen.cn@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Liyin Zhang
652e8fc3b9 rsync: fix CVE-2025-10158
CVE-2025-10158:
A malicious client acting as the receiver of an rsync file transfer can trigger an out of bounds read of a heap based buffer, via a negative array index. The malicious rsync client requires at least read access to the remote rsync module in order to trigger the issue.

Reference:
[https://nvd.nist.gov/vuln/detail/CVE-2025-10158]

Upstream patch:
[797e17fc4a]

(From OE-Core rev: fe4bea86b27551edbe7440ff47041b6d45b2f4e1)

Signed-off-by: Liyin Zhang <liyin.zhang.cn@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Kai Kang
cde4ddcfd1 qemu: fix CVE-2025-12464
Backport patch to fix CVE-2025-12464.

Reference: https://gitlab.com/qemu-project/qemu/-/commit/a01344d9d7

(From OE-Core rev: 7ef40090719cab3fb9bda3f87a9d700d9b503e3e)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:54 -08:00
Deepesh Varatharajan
0183740845 binutils: Fix CVE-2025-11494
Since x86 .eh_frame section may reference _GLOBAL_OFFSET_TABLE_, keep
_GLOBAL_OFFSET_TABLE_ if there is dynamic section and the output
.eh_frame section is non-empty.

Backport a patch from upstream to fix CVE-2025-11494
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=b6ac5a8a5b82f0ae6a4642c8d7149b325f4cc60a]

(From OE-Core rev: aa67c21a07dc180a0582be46e239dafd40017ba0)

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-31 07:24:53 -08:00
Steve Sakoman
2c05660b21 build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: 2ed3f8b938579dbbb804e04c45a968cc57761db7)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-12 08:54:41 -08:00
Steve Sakoman
cb1206dd84 poky.conf: bump version for 4.0.32
(From meta-yocto rev: 77b40877c179ea3ce5c37c7ba1831e9c0e289266)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-12 08:49:37 -08:00
Peter Marko
33d90091be libmicrohttpd: disable experimental code by default
Introduce new packageconfig to explicitly avoid compilation of
experimental code. Note that the code was not compiled by default also
before this patch, this now makes it explicit and makes it possible to
check for the flags in cve-check code.

This is less intrusive change than a patch removing the code which was
rejected in patch review.

This will solve CVE-2025-59777 and CVE-2025-62689 as the vulnerable code
is not compiled by default.
Set appropriate CVE status for these CVEs based on new packageconfig.

(From OE-Core rev: 1d8e646aebe75b8ede51d4de9e0003a822992a33)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-12 08:49:37 -08:00
Hitendra Prajapati
9f461395a8 openssh: fix CVE-2025-61984
ssh in OpenSSH before 10.1 allows control characters in usernames that
originate from certain possibly untrusted sources, potentially leading
to code execution when a ProxyCommand is used. The untrusted sources
are the command line and %-sequence expansion of a configuration file.

Note:
openssh does not support variable expansion until 10.0, so backport
adapts for this.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-61984

Upstream-Status: Backport from 35d5917652

(From OE-Core rev: 7ca0c7a4d17c707658669e255689ecd4183c7e9b)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-12 08:49:37 -08:00
Peter Marko
0002d5d082 libpng: patch CVE-2025-66293
Pick patches per nvd report [1] and github advisory [2].

[1] https://nvd.nist.gov/vuln/detail/CVE-2025-66293
[2] https://github.com/pnggroup/libpng/security/advisories/GHSA-9mpm-9pxh-mg4f

(From OE-Core rev: c33ebd0882288a962c089b423cc2468a7c84c2e7)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-12 08:49:37 -08:00
Hitendra Prajapati
db73f23fc2 libxml2: Security fix for CVE-2025-7425
CVE-2025-7425
libxslt: heap-use-after-free in xmlFreeID caused by `atype` corruption

Origin: https://launchpad.net/ubuntu/+source/libxml2/2.9.14+dfsg-1.3ubuntu3.6
Ref : https://security-tracker.debian.org/tracker/CVE-2025-7425

Upstream-Status: Backport from https://gitlab.gnome.org/GNOME/libxslt/-/issues/140
(From OE-Core rev: cf260bef4495186662b74b8324d01efcfc2121fd)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-12 08:49:36 -08:00
Gyorgy Sarvari
40701465df systemd-bootchart: update SRC_URI branch
The branch was renamed from master to main.

(From OE-Core rev: 80c7fd87fd95a79c6eb5f41b95cf70ccc70d9615)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Archana Polampalli
ba9338d810 go: fix CVE-2025-61724
The Reader.ReadResponse function constructs a response string through repeated
string concatenation of lines. When the number of lines in a response is large,
this can cause excessive CPU consumption.

(From OE-Core rev: 188dbac037809d6e8f0e1667f563fea997ea04b8)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Archana Polampalli
46c836aefa go: fix CVE-2025-61723
The processing time for parsing some invalid inputs scales non-linearly with
respect to the size of the input. This affects programs which parse untrusted PEM inputs.

(From OE-Core rev: cfafebef95330e531ab7bb590e5fb566dd5a3dce)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Archana Polampalli
5f8155aefa go: fix CVE-2025-58189
When Conn.Handshake fails during ALPN negotiation the error contains attacker controlled
information (the ALPN protocols sent by the client) which is not escaped.

(From OE-Core rev: b3f055df67cf345c9a17c5c1c874c778d538ba9e)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Archana Polampalli
dd0a2c2470 go: fix CVE-2025-58187
Due to the design of the name constraint checking algorithm, the processing time
of some inputs scale non-linearly with respect to the size of the certificate.
This affects programs which validate arbitrary certificate chains.

(From OE-Core rev: cea9fcf1b21b1b35b88986b676d712ab8ffa9d67)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Peter Marko
c5794d82b0 libpng: patch CVE-2025-65018
Pick commits per NVD report.

(From OE-Core rev: c46f841cdc8f7c1b0cce7da8fb587f65320a2163)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Peter Marko
169ca8debf libpng: patch CVE-2025-64720
Pick commit per NVD report.

(From OE-Core rev: 9694df176a13eeac174c7da2bcf8243969dbcda6)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Peter Marko
5d27e8f05d libpng: patch CVE-2025-64506
Pick commit per NVD report.

(From OE-Core rev: eb4af9b4cea963b650be217d33bc12f560ed84a6)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Peter Marko
d492537188 libpng: patch CVE-2025-64505
Pick commit per NVD report.
Add two patches to apply it cleanly.

(From OE-Core rev: 1470546924765d134c83b50e62974f048614b121)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Peter Marko
052e4214aa gnutls: patch CVE-2025-9820
This CVE is announced under [1].
Pick commit which mentions this CVE per [2].

[1] https://www.gnutls.org/security-new.html#GNUTLS-SA-2025-11-18
[2] https://security-tracker.debian.org/tracker/CVE-2025-9820

(From OE-Core rev: 946f776b6f7ceacf76a643c5776b0efedb000efd)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-05 06:56:34 -08:00
Gyorgy Sarvari
c76f44b1da flac: patch seeking bug
While working on audiofile recipe from meta-oe, a test that is using flac
to convert a flac file failed with this particular version of the recipe.

Bisecting the issue pointed to a code snippet that later was modifed with the
patch that is introduced here: in version 1.3.4 there is a bug with seeking
in flac files, returning incorrect pointers.

This backported patch fixes this (and fixes the ptest also, that triggered this).

(From OE-Core rev: ceef3cde9b761b7b5de6f7b6b1fb8e99663af9ca)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Peter Marko
088d1497d5 libarchive: patch CVE-2025-60753
Pick patch from [3] marked in [2] mentioned in [1].

[1] https://nvd.nist.gov/vuln/detail/CVE-2025-60753
[2] https://github.com/libarchive/libarchive/issues/2725
[3] https://github.com/libarchive/libarchive/pull/2787

(From OE-Core rev: e3e9dd59a32541b36d6c1036b8f83af52bef92cd)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Peter Marko
22f8da4818 libarchive: patch 3.8.3 security issue 2
Pick patch [2] as listed in [1].

[1] https://github.com/libarchive/libarchive/releases/tag/v3.8.3
[2] https://github.com/libarchive/libarchive/pull/2768

(From OE-Core rev: 332f07635ccb4965a001f6536620c9d0b1a9c056)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Peter Marko
4030876db9 libarchive: patch 3.8.3 security issue 1
Pick patch [2] as listed in [1].
To apply it cleanly, add three additional patches from branch patch/3.8.

[1] https://github.com/libarchive/libarchive/releases/tag/v3.8.3
[2] https://github.com/libarchive/libarchive/pull/2753

(From OE-Core rev: 201eed780c73335c9278db17fe39fb453e16af08)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Praveen Kumar
c6234dce63 python3: fix CVE-2025-6075
If the value passed to os.path.expandvars() is user-controlled a
performance degradation is possible when expanding environment variables.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-6075

Upstream-patch:
892747b4cf

(From OE-Core rev: 9a7f33d85355ffbe382aa175c04c64541e77b441)

Signed-off-by: Praveen Kumar <praveen.kumar@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Divya Chellam
6639c7b295 ruby: fix CVE-2024-41123
REXML is an XML toolkit for Ruby. The REXML gem before 3.3.2 has some DoS
vulnerabilities when it parses an XML that has many specific characters
such as whitespace character, `>]` and `]>`. The REXML gem 3.3.3 or later
include the patches to fix these vulnerabilities.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2024-41123

Upstream-patches:
2c39c91a65
4444a04ece
ebc3e85bfa
6cac15d458
e2546e6eca

(From OE-Core rev: 6b2a2e689a69deef6098f6c266542234e46fb24b)

Signed-off-by: Divya Chellam <divya.chellam@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Divya Chellam
7c4bd642e4 ruby: fix CVE-2024-39908
REXML is an XML toolkit for Ruby. The REXML gem before 3.3.1 has some
DoS vulnerabilities when it parses an XML that has many specific characters
such as `<`, `0` and `%>`. If you need to parse untrusted XMLs, you many be
impacted to these vulnerabilities. The REXML gem 3.3.2 or later include the
patches to fix these vulnerabilities. Users are advised to upgrade. Users
unable to upgrade should avoid parsing untrusted XML strings.

Reference:
https://security-tracker.debian.org/tracker/CVE-2024-39908

Upstream-patches:
f1df7d13b3
d146162e9a
b5bf109a59
b8a5f4cd5c
0af55fa49d
c1b64c174e
9f1415a261
c33ea49810
a79ac8b4b4
67efb5951e
1f1e6e9b40
910e5a2b48

(From OE-Core rev: 6e0b70843422cd7cdb25a9e1520dd64bf701fea6)

Signed-off-by: Divya Chellam <divya.chellam@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Divya Chellam
f58483837c ruby: fix CVE-2024-35176
REXML is an XML toolkit for Ruby. The REXML gem before 3.2.6 has a
denial of service vulnerability when it parses an XML that has many
`<`s in an attribute value. Those who need to parse untrusted XMLs
may be impacted to this vulnerability. The REXML gem 3.2.7 or later
include the patch to fix this vulnerability. As a workaround, don't
parse untrusted XMLs.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2024-35176

Upstream-patch:
4325835f92

(From OE-Core rev: a89fcaf0c3ac2afd95e836bc1356832296135696)

Signed-off-by: Divya Chellam <divya.chellam@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Vijay Anusuri
cdc78fd36f python3-idna: Fix CVE-2024-3651
import patch from debian to fix
  CVE-2024-3651

Upstream-Status: Backport [import from debian 3.3-1+deb12u1
Upstream commit
5beb28b9dd]

(From OE-Core rev: 7359d3cdf2210e81a26d8712769f7e23bfbc1bb7)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-12-01 06:50:49 -08:00
Richard Purdie
36165cce68 oe-build-perf-report: relax metadata matching rules
As the poky repository is no longer used, measurements are indexed using
the oe-core commit. But as bitbake, oe-core and meta-yocto are now
retrieved from separate gits, while measuring performances for a given branch
at some time interval, we can get the same commit for oe-core but
different ones for bitbake or meta-yocto. As a consequence, metadata
associated with the same index (oe-core commit) might differ.

To work around this, relax the equality checks for commit, commit_time
and commit_count since they might no longer match.

Ideally we'd group them into separate results but for now, treat them
as being the same.

[Based on work from Mathieu Dubois-Briand but fixed differently]
(From OE-Core rev: ff72b41a3f0bf1820405b8782f0d125cd10e3406)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e7dc42e30c76bf0fbb4d3cc019bbec675bac55fa)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-24 06:57:39 -08:00
Gyorgy Sarvari
9734a91472 musl: patch CVE-2025-26519
Details: https://nvd.nist.gov/vuln/detail/CVE-2025-26519

Pick the patches that are attached to the musl advisory:
https://www.openwall.com/lists/musl/2025/02/13/1

(From OE-Core rev: e1c1b4b5100e08b63a2e6e5ff608f79e7b202649)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-24 06:57:39 -08:00
Vijay Anusuri
42d2a2e8cd xwayland: Fix for CVE-2025-62231
Upstream-Status: Backport from 3baad99f9c

(From OE-Core rev: 24a1574d6f61a45ce104ab6ee01697df2575fd51)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-24 06:57:39 -08:00
Vijay Anusuri
940e5e75b9 xwayland: Fix for CVE-2025-62230
Upstream-Status: Backport from
865089ca70
& 87fe255393

(From OE-Core rev: a481fe0dcca8213eca845d5f1fdde3f0d15c8aed)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-24 06:57:39 -08:00
Vijay Anusuri
3d559d269a xwayland: Fix for CVE-2025-62229
Upstream-Status: Backport from 5a4286b13f

(From OE-Core rev: 5c6a07f215e00392b1831ed89ac0f8180823e124)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-24 06:57:39 -08:00
Soumya Sambu
36037789d2 elfutils: Fix CVE-2025-1377
A vulnerability, which was classified as problematic, has been found in GNU elfutils
0.192. This issue affects the function gelf_getsymshndx of the file strip.c of the
component eu-strip. The manipulation leads to denial of service. The attack needs to
be approached locally. The exploit has been disclosed to the public and may be used.
The identifier of the patch is fbf1df9ca286de3323ae541973b08449f8d03aba. It is
recommended to apply a patch to fix this issue.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-1377

Upstream patch:
https://sourceware.org/git/?p=elfutils.git;a=commit;h=fbf1df9ca286de3323ae541973b08449f8d03aba

(From OE-Core rev: e4e8392e688ceb0d8e68fe48118383c031178b5e)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-24 06:57:39 -08:00
Soumya Sambu
7dd51aea98 elfutils: Fix CVE-2025-1376
A vulnerability classified as problematic was found in GNU elfutils 0.192. This
vulnerability affects the function elf_strptr in the library /libelf/elf_strptr.c
of the component eu-strip. The manipulation leads to denial of service. It is
possible to launch the attack on the local host. The complexity of an attack is
rather high. The exploitation appears to be difficult. The exploit has been
disclosed to the public and may be used. The name of the patch is
b16f441cca0a4841050e3215a9f120a6d8aea918. It is recommended to apply a patch to
fix this issue.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-1376

Upstream patch:
https://sourceware.org/git/?p=elfutils.git;a=commit;h=b16f441cca0a4841050e3215a9f120a6d8aea918

(From OE-Core rev: 1126e5c1e63b876499c78ac403d1327645edf1c7)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-24 06:57:39 -08:00
Lee Chee Yang
851a3f0c55 migration-guides: add release notes for 4.0.31
(From yocto-docs rev: 4b9df539fa06fb19ed8b51ef2d46e5c56779de81)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 992d0725e8b4fdcdc2e9a101ce51ebef94a00112)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Ross Burton
dacb67f70f documentation: link to the Releases page on yoctoproject.org instead of wiki
We have a machine-generated Releases page[1] which is preferable to the
wiki.

[1] https://www.yoctoproject.org/development/releases/

(From yocto-docs rev: 492619059cbbe2d1ebc347c3e86072f32d7d064a)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 46a9172fd17aa518028e35b8c874e74889079094)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Quentin Schulz
232e8ebe3c overview-manual: migrate to SVG + fix typo
The original PNG had a typo (YP-Comptible instead of YP-Compatible).

Instead of patching a PNG, let's migrate to an SVG with the typo already
fixed.

[AG: fix conflicts]

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: bb9887a98bb64ebaa23b772fd0f3c22f13e996e7)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 9f3c2a9113b329f7efdd22d3b3fbe272a44bc654)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Quentin Schulz
41c16e82e9 dev-manual: debugging: use bitbake-getvar in Viewing Variable Values section
We should recommend using bitbake-getvar command wherever possible as
its output is much less confusing and overwhelming than bitbake -e.

Unfortunately, bitbake-getvar currently doesn't list Python tasks or
functions, unlike bitbake -e, so keep the latter for some corner cases.

[AG: Moroever -> Moreover typo fix]

(From yocto-docs rev: 382c8eee275eb4773d4e2183f5fe19837a6a3b0b)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 41e4e05369c4e028c679749b7b62434327927a09)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Quentin Schulz
cab0ee97d8 ref-manual: variables: migrate the OVERRIDES note to bitbake-getvar
Wherever possible, we should use bitbake-getvar as it's the recommended
tool so let's do that.

(From yocto-docs rev: 7981bc2bd09b2d618563710474525febabaf6103)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 2293a3f2767895e9fb5c3e8f3ec11bb4951a7127)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Quentin Schulz
d54b15eba1 kernel-dev: common: migrate bitbake -e to bitbake-getvar
It's recommended to use bitbake-getvar for a few releases now so let's
use that instead of bitbake -e.

While at it, use a cross-reference for "OpenEmbedded Build System".

(From yocto-docs rev: 7f6dc007a888784a678859690dbfddd5a1fe28a0)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 54585646d8220f8de1ba2c7246cb3f2fcbc59583)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Walter Werner SCHNEIDER
2943f88d88 kernel-dev: add disable config example
Makes it more clear that the configuration fragment can also be used to
disable a configuration.

(From yocto-docs rev: c4bfc16b2e13444547342204a6f75fd1cf343533)

Signed-off-by: Walter Werner SCHNEIDER <contact@schnwalter.eu>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit d38ef467081ee73bf23f240ace54b849a3a87612)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Robert P. J. Day
9479971ef9 dev-manual/new-recipe.rst: typo, "whith" -> "which"
Fix typo "whith", should be "which".

(From yocto-docs rev: 1a54d05d8bd5484e17cbc060fc57fd2f7afb683f)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit f98b25f7f7522cf223beb001cabef870d6dd8c10)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Robert P. J. Day
2cf2a95adb dev-manual/new-recipe.rst: replace 'bitbake -e' with 'bitbake-getvar'
Replace the legacy call to 'bitbake -e' to get the value of a recipe's
variable with the newer call to 'bitbake-getvar'.

(From yocto-docs rev: d7ef362307daf2e8d9b62ec895e080654abfef8b)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit ed7c0766ef5f13b90943a69e64f8e8713d05e864)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Robert P. J. Day
bababfb854 dev-manual/layers.rst: document "bitbake-layers show-machines"
The "show-machines" subcommand is not mentioned in the docs; add it.

[AG: fix conflicts]

(From yocto-docs rev: 09bbdc6bc5f9ae77f120185d1324f1166ac1f9d5)

Signed-off-by: Robert P. J. Day <Crpjday@crashcourse.ca>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit b4320cdc4df08c59a24d5247b3895dd602554fa0)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Robert P. J. Day
6f01aae51d dev-manual/new-recipe.rst: update "recipetool -h" output
Update the output of "recipetool -h" to include the missing "edit"
subcommand.

(From yocto-docs rev: 2a85eab0c51a78ab00168e23274d479cf3aedb24)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 092d688349b0b6bb10ae6fbbab7d82801964daf5)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Alexander Kanavin
33d61e50c1 goarch.bbclass: do not leak TUNE_FEATURES into crosssdk task signatures
The default assignments look like this:
TARGET_GO386 = "${@go_map_386(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'), d)}"

TUNE_FEATURES is a target-specific variable, and so should be used
only for target builds. The change is similar to what is already done
for native packages.

(From OE-Core rev: cfff8e968257c44880caa3605e158764ed5c6a2a)

(From OE-Core rev: 8aad87c12a809d790175b9848f5802d0a28eecac)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Gyorgy Sarvari
9cc35e0f6d babeltrace2: fetch with https protocol
The source doesn't support the default "git" protocol anymore for
anonymous download, causing fetching failures.

(From OE-Core rev: 4351a427b2ec270ea5e4c698fe4c213036c1241b)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Alexander Kanavin
a916d3a38a xf86-video-intel: correct SRC_URI as freedesktop anongit is down
(From OE-Core rev: 04037a14e1431c4a51f5d51885974732a6108368)

(From OE-Core rev: e2c288a92f06af82559cf33db6c988b9dbc8b7ea)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9649bec517)
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Gyorgy Sarvari
b0c11efc8f efibootmgr: update SRC_URI branch
master branch was renamed to main

(From OE-Core rev: 2c5b195e974ac54610d7b50c014752875004b0b9)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Soumya Sambu
478f5eaa61 python3-urllib3: Upgrade 1.26.18 -> 1.26.20
Includes fix for CVE-2024-37891

Changelog:
----------
https://github.com/urllib3/urllib3/blob/1.26.20/CHANGES.rst

(From OE-Core rev: 2e805113fe0488224f05524360eeff729dd12d91)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Vijay Anusuri
748f958fd3 xserver-xorg: Fix for CVE-2025-62231
Upstream-Status: Backport from 3baad99f9c

(From OE-Core rev: 05fe08caa0d4bd30510b496a300731a9754f24b8)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Vijay Anusuri
73e3da5d44 xserver-xorg: Fix for CVE-2025-62230
Upstream-Status: Backport from
865089ca70
& 87fe255393

(From OE-Core rev: 215d63fd22b40148625215aac5c4e7f2629f5814)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Vijay Anusuri
6b397fb207 xserver-xorg: Fix for CVE-2025-62229
Upstream-Status: Backport from 5a4286b13f

(From OE-Core rev: d1d0955ad41827f9c75ae726e7c725d2f82b6d18)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Saquib Iltaf
6ab506f474 rust-cross-canadian: Ignore CVE-2024-43402
Ignore CVE-2024-43402 as its not applicable.

CVEs are specific to Microsoft Windows.

(From OE-Core rev: 3044ae9e6e84faada8c1425238e9e9c3060b1a3a)

Signed-off-by: Saquib Iltaf <saquib.iltaf@kpit.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Peter Marko
809b3e9113 curl: ignore CVE-2025-10966
Per [1] this CVE applies only when wolfssl backed is used.
8.17.0 removed WolfSSL support completely.

[1] https://curl.se/docs/CVE-2025-10966.html

(From OE-Core rev: 41c4735658e9ba5322bd06ef50aa3a1edb1f7fd8)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-19 08:21:24 -08:00
Jason Schonberg
e2d947b1cc Don't use ftp.gnome.org
http://ftp.gnome.org/pub/gnome redirects to https://download.gnome.org

 bitbake.conf defines ${GNOME_MIRROR} to be https://download.gnome.org/sources/

(From OE-Core rev: 1e1993b72f2b6109ce3d0ef950553b74b2b37b27)

Signed-off-by: Jason Schonberg <schonm@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-06 07:14:05 -08:00
Praveen Kumar
1dd6d90744 bind: upgrade 9.18.33 -> 9.18.41
This upgrade fixes
CVE-2025-8677,CVE-2025-40778 and CVE-2025-40780.

Changelog
==========
https://downloads.isc.org/isc/bind9/9.18.41/doc/arm/html/changelog.html

(From OE-Core rev: deca51264991a2f6c6e450f8fa8b4a233280b700)

Signed-off-by: Praveen Kumar <praveen.kumar@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-06 07:14:05 -08:00
Hitendra Prajapati
8641f0fec9 go: fix CVE-2024-24783
Upstream-Status: Backport be5b52bea6

(From OE-Core rev: b7d89fae22b317199b8f72978712075078a17005)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-06 07:14:05 -08:00
Peter Marko
484d31c23d binutils: patch CVE-2025-11413
Pick commit per NVD CVE report.

Note that there were two patches for this, first [1] and then [2].
The second patch moved the original patch to different location.
Cherry-pick of second patch is successful leaving out the code removing
the code from first location, so the patch attached here is not
identical to the upstream commit but is identical to applying both and
merging them to a single patch.

[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=1108620d7a521f1c85d2f629031ce0fbae14e331
[2] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=72efdf166aa0ed72ecc69fc2349af6591a7a19c0

(From OE-Core rev: 98df728e6136d04af0f4922b7ffbeffb704de395)

(From OE-Core rev: 8d1a830c713a299f67fc512ed8bc0be21be4b9f0)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-06 07:14:05 -08:00
Peter Marko
aaf9219788 binutils: patch CVE-2025-11412
Pick commit per NVD CVE report.

(From OE-Core rev: 6b94ff6c584a31d2b1e06d1e1dc19392d759b4b7)

(From OE-Core rev: 9130f3471f4814979cfdfa66ca118929f240cb30)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-06 07:14:05 -08:00
Peter Marko
d152607f64 wpa-supplicant: patch CVE-2025-24912
Pick patches as listed in NVD CVE report.

Note that Debian lists one of the patches as introducing the
vulnerability. This is against what the original report [1] says.
Also the commit messages provide hints that the first patch fixes this
issue and second is fixing problem with the first patch.

[1] https://jvn.jp/en/jp/JVN19358384/

(From OE-Core rev: d0907754e0b44c5e41242bc1603278f86101fa31)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-06 07:14:05 -08:00
Archana Polampalli
0de012f0f6 openssh: fix CVE-2025-61985
ssh in OpenSSH before 10.1 allows the '\0' character in an ssh:// URI, potentially
leading to code execution when a ProxyCommand is used.

(From OE-Core rev: 5170bd2f8a63bcc310667a327ea2ab96c783c4f6)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-06 07:14:05 -08:00
Hongxu Jia
c4200e606c u-boot: fix CVE-2024-42040
Backport a patch [1] from upstrem to fix CVE-2024-42040 [2]

[1] 81e5708cc2
[2] https://nvd.nist.gov/vuln/detail/CVE-2024-42040

(From OE-Core rev: f5b980ade1e952a181cb51d60268942095627c0d)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-11-06 07:14:05 -08:00
Steve Sakoman
04b39e5b7e build-appliance-image: Update to kirkstone head revision
(From OE-Core rev: 99204008786f659ab03538cd2ae2fd23ed4164c5)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:32:40 -07:00
Steve Sakoman
8d5cd4a310 poky.conf: bump version for 4.0.31
(From meta-yocto rev: 3b2df00345b46479237fe0218675a818249f891c)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:29:24 -07:00
Antonin Godard
59579acac7 ref-manual/classes.rst: document the relative_symlinks class
Added by commit e478550c8cd8 ("openssl/fontconfig/bzip2: Use relative
symlinks instead of absolute ones (using a new class)") in OE-Core.

(From yocto-docs rev: 073f3bca4c374b03398317e7f445d2440a287741)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit c0dc554eba7d421023ecc68a70b7a19df38628b0)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Antonin Godard
56aa9e3241 ref-manual/classes.rst: gettext: extend the documentation of the class
Mention the use of USE_NLS, INHIBIT_DEFAULT_DEPS and the cross-canadian
class.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: 0bbb3eb02881b6ba41d3e77a21345e3520bbedea)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit d877e54f1c85cefc00dd674d60f2db81446bd95a)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Antonin Godard
ea90d0a5b1 ref-manual/variables.rst: document the USE_NLS variable
Part of bitbake.conf, this variable allowing to enable or disable
translation was undocumented. Add a entry to the glossary.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: 380018c93b0aa4832985bf083620fabee96dda72)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 92a55345a56b5038c0344669daaa7a3a99dd0fc0)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Antonin Godard
9e1c28514a ref-manual/variables.rst: document the REQUIRED_IMAGE_FEATURES variable
Added by commit 96a9702a24a7 ("distro_features_check: expand with
IMAGE_FEATURES") in OE-Core.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: 7aeeefafb27fd1eae4388d6445a28951f4d79a02)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 860ddbd491ee9db291868bd939392538a2c64a4b)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Antonin Godard
24772dd301 ref-manual/variables.rst: document the REQUIRED_COMBINED_FEATURES variable
Added in OE-Core commit: 5f4875b950ce ("distro_features_check: expand
with MACHINE_FEATURES and COMBINED_FEATURES, rename").

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: db007c4b59514d0fa4fb63c8d6c2543e5d54e38f)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit bbc7f26240c2db5cd4179f297ae49c778789514e)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Antonin Godard
5f0dcc1dc6 ref-manual/variables.rst: document the REQUIRED_MACHINE_FEATURES variable
Added in OE-Core commit: 5f4875b950ce ("distro_features_check: expand
with MACHINE_FEATURES and COMBINED_FEATURES, rename").

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: 02d5f9664a71a4f1b72b28d7093c19cc03ec08f6)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit c0551456cba6016d5014c2be8d6906e58a324cc4)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Antonin Godard
8d8972d1b4 ref-manual/classes,variables: document the CCACHE_DISABLE variable
Can be used in recipes that want to explicitly skip Ccache support when
the ccache class is enabled.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: cc6e7a2d80ca03ee49a94af2eda74e83b1a33552)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit b1b4adc8d4d9d23ff6fd91bca632bb0f5277e72b)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
João Marcos Costa
9626809dce variables.rst: fix LAYERDEPENDS description
This variable does not apply to the scope of a single recipe, but rather
to the scope of the entire layer.

(From yocto-docs rev: 7ff462805eb45bd29e361017dfb5041cce448e4d)

Signed-off-by: João Marcos Costa <joaomarcos.costa@bootlin.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit eec26e11adb6e3a9c4f53f825b9a1730c9ddee12)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Paul Barker
3fe029171f dev-manual, test-manual: Update autobuilder output links
The current autobuilder cluster is at valkyrie.yocto.io, published files
on autobuilder.yocto.io will be missing or out-of-date.

(From yocto-docs rev: 5cccf2e65b85c52cb9b9fd22d46ebde6d624fbe5)

Signed-off-by: Paul Barker <paul@pbarker.dev>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 9ed06c070e309b52f1dbf8877867dcede79f4cb6)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Antonin Godard
9a4c708aa5 ref-manual/classes.rst: extend the uninative class documentation
Extend the documentation of the uninative class based on [1].

[1]: https://lore.kernel.org/r/061e6150ce177221f7b6ee8754b03a20347a92c3.camel@linuxfoundation.org

Co-developed-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From yocto-docs rev: 7efaf626a9313cd0835391c06d3e3af6bdbd0d71)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 68996f0f3bf882714e8d96a0aa7b2492fe16d0c3)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Antonin Godard
2442316a1e ref-manual/variables.rst: document UNINATIVE_URL/CHECKSUM
Document the UNINATIVE_URL and UNINATIVE_CHECKSUM variables.

(From yocto-docs rev: e94c46499255f087ccb43c5fa45bf7a3f51b12c6)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 974fe4e1c5db65b462a382e089e016326e7b3f26)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Peter Marko
48ab50b55c lz4: patch CVE-2025-62813
Pick commit mentioned in NVD report.

(From OE-Core rev: 612d09f6b9e262640ed3ee0ee81ac4b6d7c29f4d)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Hitendra Prajapati
bee2fe9cc5 git: fix CVE-2025-48386
Upstream-Status: Backport from 9de345cb27

(From OE-Core rev: 3f2fce1ababbf6c94a9e4995d133d5338913b2ce)

Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Yash Shinde
d0f445a1e2 binutils: fix CVE-2025-8225
CVE: CVE-2025-8225

It is possible with fuzzed files to have num_debug_info_entries zero
after allocating space for debug_information, leading to multiple
allocations.

* dwarf.c (process_debug_info): Don't test num_debug_info_entries
to determine whether debug_information has been allocated,
test alloc_num_debug_info_entries.

Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=e51fdff7d2e538c0e5accdd65649ac68e6e0ddd4]

(From OE-Core rev: 9b5bb098b542a43a7aa97cc376c358f0a38778e3)

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Yash Shinde
0118bd1e10 binutils: fix CVE-2025-11081
CVE: CVE-2025-11081

Trying to dump .sframe in a PE file results in a segfault accessing
elf_section_data.

	* objdump (dump_sframe_section, dump_dwarf_section): Don't access
	elf_section_type without first checking the file is ELF.

PR 33406 SEGV in dump_dwarf_section
[https://sourceware.org/bugzilla/show_bug.cgi?id=33406]

Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=f87a66db645caf8cc0e6fc87b0c28c78a38af59b]

(From OE-Core rev: a7d39d40ec867bbcc36d71cf98858a34c619c9fe)

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-31 06:23:13 -07:00
Peter Marko
7ca21c761a python3: upgrade 3.10.18 -> 3.10.19
Drop upstreamed patch and refresh remaining patches.

Release information:
* https://www.python.org/downloads/release/python-31019/
* The release you're looking at is Python 3.10.19, a security bugfix
  release for the legacy 3.10 series.

Handles CVE-2025-59375, CVE-2025-47273 and CVE-2024-6345.

(From OE-Core rev: 9b3dbd691f6ebdbdfe88cef3d3a676ddd1399c63)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-24 06:47:20 -07:00
Bruce Ashfield
4e75dd0f5f linux-yocto/5.15: update to v5.15.194
Updating linux-yocto/5.15 to the latest korg -stable release that comprises
the following commits:

    29e53a5b1c4f1 Linux 5.15.194
    1c532dd246bf2 drm/i915/backlight: Return immediately when scale() finds invalid parameters
    45a7527cd7da4 i40e: add validation for ring_len param
    8043ca4882e77 i40e: increase max descriptors for XL710
    1fa0aadade344 i40e: fix idx validation in config queues msg
    8e35c80f85704 i40e: fix validation of VF state in get resources
    3e851448078f5 mm/hugetlb: fix folio is still mapped when deleted
    4f52f7c50f5b6 mm/migrate_device: don't add folio to be freed to LRU in migrate_device_finalize()
    523edfed4f68b af_unix: Don't leave consecutive consumed OOB skbs.
    ecbfd9ef5cf3e fbcon: Fix OOB access in font allocation
    b8a6e85328aeb fbcon: fix integer overflow in fbcon_do_set_font
    0d41604d2d53c tracing: dynevent: Add a missing lockdown check on dynevent
    1b1c3bdb8ab3f i40e: add mask to apply valid bits for itr_idx
    77a35be582dff i40e: add max boundary check for VF filters
    f8c8e11825b24 i40e: fix input validation logic for action_meta
    34dfac0c90482 i40e: fix idx validation in i40e_validate_queue_map
    d382d6daf0184 crypto: af_alg - Fix incorrect boolean values in af_alg_ctx
    e4c1ec11132ec crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg
    e15de80737d44 drm/gma500: Fix null dereference in hdmi teardown
    37821b843e4e5 net: dsa: lantiq_gswip: suppress -EINVAL errors for bridge FDB entries added to the CPU port
    e8687ab9c8a11 net: dsa: lantiq_gswip: move gswip_add_single_port_br() call to port_setup()
    b9010dba5f36b net: dsa: lantiq_gswip: do also enable or disable cpu port
    cf2d597fb6f04 selftests: fib_nexthops: Fix creation of non-FDB nexthops
    0e7bfe7a268cc nexthop: Forbid FDB status change while nexthop is in a group
    5d4856a3717d6 bnxt_en: correct offset handling for IPv6 destination address
    d646358255b69 ethernet: rvu-af: Remove slash from the driver name
    48822a59ecc47 can: peak_usb: fix shift-out-of-bounds issue
    6eec67bfb2563 can: mcba_usb: populate ndo_change_mtu() to prevent buffer overflow
    60463a1c13890 can: sun4i_can: populate ndo_change_mtu() to prevent buffer overflow
    7ab85762274c0 can: hi311x: populate ndo_change_mtu() to prevent buffer overflow
    72de0facc50af can: etas_es58x: populate ndo_change_mtu() to prevent buffer overflow
    256b64f7a9ba0 can: etas_es58x: sort the includes by alphabetic order
    f44124f407a39 can: etas_es58x: advertise timestamping capabilities and add ioctl support
    0a6e1bd2d2500 can: dev: add generic function can_eth_ioctl_hwts()
    b9a0e6f3b043a can: dev: add generic function can_ethtool_op_get_ts_info_hwts()
    533e3220bac26 can: bittiming: replace CAN units with the generic ones from linux/units.h
    33b83a90b65e4 can: bittiming: allow TDC{V,O} to be zero and add can_tdc_const::tdc{v,o,f}_min
    d51c6b51981fa bpf: Reject bpf_timer for PREEMPT_RT
    9ebf862184569 can: rcar_can: rcar_can_resume(): fix s2ram with PSCI
    b32c64db4370c cpufreq: Initialize cpufreq-based invariance before subsys
    db28f975ed7f3 arm64: dts: imx8mp: Correct thermal sensor index
    bb3eeb3a7c749 IB/mlx5: Fix obj_type mismatch for SRQ event subscriptions
    825c17c54cfb2 usb: core: Add 0x prefix to quirks debug output
    9ba349a33f50e ALSA: usb-audio: Fix build with CONFIG_INPUT=n
    1746e7a74ca0b ALSA: usb-audio: Convert comma to semicolon
    b4b94f092f193 ALSA: usb-audio: Add mixer quirk for Sony DualSense PS5
    4f9294613bb39 ALSA: usb-audio: Remove unneeded wmb() in mixer_quirks
    790b167e58570 ALSA: usb-audio: Simplify NULL comparison in mixer_quirks
    e4f6ae98ebd94 ALSA: usb-audio: Avoid multiple assignments in mixer_quirks
    a4bb77c1bab94 ALSA: usb-audio: Drop unnecessary parentheses in mixer_quirks
    2f56442a417d5 ALSA: usb-audio: Fix block comments in mixer_quirks
    ada2282259243 net: rfkill: gpio: Fix crash due to dereferencering uninitialized pointer
    98c2894580f42 net: rfkill: gpio: add DT support
    2f58e6d3e7a71 mptcp: propagate shutdown to subflows when possible
    773fddf976d28 ksmbd: smbdirect: validate data_offset and data_length field of smb_direct_data_transfer
    dde28a51b8c3a mptcp: set remote_deny_join_id0 on SYN recv
    ca9e4e6a87376 phy: ti: omap-usb2: fix device leak at unbind
    f5648527d2e88 phy: Use device_get_match_data()
    0df0f4bcc7a25 phy: broadcom: ns-usb3: fix Wvoid-pointer-to-enum-cast warning
    662b75f7d1bfb USB: gadget: dummy-hcd: Fix locking bug in RT-enabled kernels
    94fac8987bea7 usb: gadget: dummy_hcd: remove usage of list iterator past the loop body
    dbf216ae5aea8 xhci: dbc: Fix full DbC transfer ring after several reconnects
    503ba5026801b xhci: dbc: decouple endpoint allocation from initialization
    84870a62c48f7 serial: sc16is7xx: fix bug in flow control levels init
    dfca6fa9d174c drm: bridge: cdns-mhdp8546: Fix missing mutex unlock on error path
    51a501e990a35 drm: bridge: anx7625: Fix NULL pointer dereference with early IRQ
    79a06d96e73e4 ASoC: SOF: Intel: hda-stream: Fix incorrect variable used in error message
    e07847f44a0e0 ASoC: wm8974: Correct PLL rate rounding
    0235a5787e87b ASoC: wm8940: Correct typo in control name
    2e94bc6451cb6 rds: ib: Increment i_fastreg_wrs before bailing out
    9697890763328 KVM: SVM: Sync TPR from LAPIC into VMCB::V_TPR even if AVIC is active
    8a29726633978 mmc: mvsdio: Fix dma_unmap_sg() nents value
    4f935a1297080 btrfs: tree-checker: fix the incorrect inode ref size check
    29d9125d6c07f power: supply: bq27xxx: restrict no-battery detection to bq27000
    fe0f602a75cc9 power: supply: bq27xxx: fix error return in case of no bq27000 hdq battery
    40fb833c64cab nilfs2: fix CFI failure when accessing /sys/fs/nilfs2/features/*
    0405055930264 cnic: Fix use-after-free bugs in cnic_delete_task
    428c1dd78ef66 net: liquidio: fix overflow in octeon_init_instr_queue()
    3cae94808b2ff Revert "net/mlx5e: Update and set Xon/Xoff upon port speed set"
    33a4fdf0b4a25 tcp: Clear tcp_sk(sk)->fastopen_rsk in tcp_disconnect().
    17cb9b4017be7 i40e: remove redundant memory barrier when cleaning Tx descs
    95235d29cd8b0 net: natsemi: fix `rx_dropped` double accounting on `netif_rx()` failure
    e0e24571a7b2f qed: Don't collect too many protection override GRC elements
    e4343d400761c dpaa2-switch: fix buffer pool seeding for control traffic
    5e94e44c9cb30 um: virtio_uml: Fix use-after-free after put_device in probe
    f2795d1b92506 cgroup: split cgroup_destroy_wq into 3 workqueues
    f2ede1f9070cc pcmcia: omap_cf: Mark driver struct with __refdata to prevent section mismatch
    0f9cf94656d08 wifi: mac80211: fix incorrect type for ret
    d2587970f0887 ALSA: firewire-motu: drop EPOLLOUT from poll return values as write is not supported
    5f2f50aa44de7 net: hsr: hsr_slave: Fix the promiscuous mode in offload mode
    99f7048957f5a mm/memory-failure: fix VM_BUG_ON_PAGE(PagePoisoned(page)) when unpoison memory
    a8b0032687c74 drm/i915/power: fix size for for_each_set_bit() in abox iteration
    f1b349706538c drm/amdgpu: fix a memory leak in fence cleanup when unloading
    91b2c8ee68219 soc: qcom: mdt_loader: Deal with zero e_shentsize
    e3d490ff8d12e phy: ti-pipe3: fix device leak at unbind
    4de4344ed4164 phy: tegra: xusb: fix device and OF node leak at probe
    6ac1599d0e780 dmaengine: qcom: bam_dma: Fix DT error handling for num-channels/ees
    24a65b46cd663 hrtimers: Unconditionally update target CPU base after offline timer migration
    e90b685c5f2a8 hrtimer: Rename __hrtimer_hres_active() to hrtimer_hres_active()
    95b76ebeb0f14 hrtimer: Remove unused function
    5d5385feef357 regulator: sy7636a: fix lifecycle of power good gpio
    301a96cc4dc00 dmaengine: ti: edma: Fix memory allocation size for queue_priority_map
    810167fa6f34a hsr: use hsr_for_each_port_rtnl in hsr_port_get_hsr
    cedfcd09a338e hsr: use rtnl lock when iterating over ports
    1100242709d56 net: hsr: Add VLAN CTAG filter support
    7e0ef989aa6d4 net: hsr: Add support for MC filtering at the slave device
    d981b9680be2b net: hsr: Disable promiscuous mode in offload mode
    e202ffd9e5453 can: xilinx_can: xcan_write_frame(): fix use-after-free of transmitted SKB
    5cf37a6fcb61c can: j1939: j1939_local_ecu_get(): undo increment when j1939_local_ecu_get() fails
    3245eb9c25e94 can: j1939: j1939_sk_bind(): call j1939_priv_put() immediately when j1939_local_ecu_get() failed
    b9721a023df38 i40e: fix IRQ freeing in i40e_vsi_request_irq_msix error path
    7d9bd1c2bf4a7 i40e: Use irq_update_affinity_hint()
    e7ddb59a63cb8 genirq: Provide new interfaces for affinity hints
    582f5ce29adce igb: fix link test skipping when interface is admin down
    f39a12660ea88 tunnels: reset the GSO metadata before reusing the skb
    93a699d6e92cf net: fec: Fix possible NPD in fec_enet_phy_reset_after_clk_enable()
    e818c35296a4f USB: serial: option: add Telit Cinterion LE910C4-WWX new compositions
    93e4404990206 USB: serial: option: add Telit Cinterion FN990A w/audio compositions
    28d20ff4e3886 dt-bindings: serial: brcm,bcm7271-uart: Constrain clocks
    d91604c39b74c tty: hvc_console: Call hvc_kick in hvc_write unconditionally
    9cf2429fe6cbb Input: i8042 - add TUXEDO InfinityBook Pro Gen10 AMD to i8042 quirk table
    e32a2ea52b513 mtd: rawnand: stm32_fmc2: avoid overlapping mappings on ECC buffer
    6e2859c6aa466 mtd: rawnand: stm32_fmc2: Fix dma_map_sg error check
    e0bca4dd48fc5 mtd: nand: raw: atmel: Respect tAR, tCLR in read setup timing
    c3f1ea856e147 mtd: nand: raw: atmel: Fix comment in timings preparation
    123e31a54d51b mm/khugepaged: fix the address passed to notifier on testing young
    ea12ab684f8ae libceph: fix invalid accesses to ceph_connection_v1_info
    1e1bcbc548777 fuse: prevent overflow in copy_file_range return value
    5d41589fa0699 fuse: check if copy_file_range() returns larger than requested size
    b8af2e74e49db mtd: rawnand: stm32_fmc2: fix ECC overwrite
    ef30404980e4c ocfs2: fix recursive semaphore deadlock in fiemap call
    23092f6723bc1 mptcp: sockopt: make sync_socket_options propagate SOCK_KEEPOPEN
    5d7267abcd65e compiler-clang.h: define __SANITIZE_*__ macros only when undefined
    8178ccf5671e6 EDAC/altera: Delete an inappropriate dma_free_coherent() call
    34b87ac4bb903 KVM: SVM: Set synthesized TSA CPUID flags
    54270c1b29f2a KVM: SVM: Return TSA_SQ_NO and TSA_L1_NO bits in __do_cpuid_func()
    2fab1e2af6c59 KVM: x86: Move open-coded CPUID leaf 0x80000021 EAX bit propagation code
    7429b8b9bfbc2 tcp_bpf: Call sk_msg_free() when tcp_bpf_send_verdict() fails to allocate psock->cork.
    5f756d1866ebb NFSv4/flexfiles: Fix layout merge mirror check.
    9a38cd92493c2 tracing: Fix tracing_marker may trigger page fault during preempt_disable
    c10744fd7fec8 NFSv4: Clear the NFS_CAP_XATTR flag if not supported by the server
    89f40500c09aa NFSv4: Clear the NFS_CAP_FS_LOCATIONS flag if it is not set
    91902607106c0 NFSv4: Don't clear capabilities that won't be reset
    929de8cc2f66c flexfiles/pNFS: fix NULL checks on result of ff_layout_choose_ds_for_read
    76b1a7c29ef3b mm/rmap: reject hugetlb folios in folio_make_device_exclusive()
    1cdb41d4f08a6 tracing: Do not add length to print format in synthetic events
    d51e47e2ab6ef net: Fix null-ptr-deref by sock_lock_init_class_and_name() and rmmod.
    85d1c5d416c6a media: i2c: imx214: Fix link frequency validation
    6e31585286b97 media: mtk-vcodec: venc: avoid -Wenum-compare-conditional warning
    10d8884e1869f mm: introduce and use {pgd,p4d}_populate_kernel()
    adb2f26b875b9 kunit: kasan_test: disable fortify string checker on kasan_strings() test
    69944b3cd7ec5 xfs: short circuit xfs_growfs_data_private() if delta is zero
    c0950ee2c3cc8 Revert "fbdev: Disable sysfb device registration when removing conflicting FBs"

(From OE-Core rev: b75a820962588097058e528a7db9ccd04368d299)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-24 06:47:20 -07:00
Bruce Ashfield
75cb79eaf5 linux-yocto/5.15: update to v5.15.193
Updating linux-yocto/5.15 to the latest korg -stable release that comprises
the following commits:

no ids found, dumping:
    43bb85222e53 Linux 5.15.193
    70de678302a8 x86/vmscape: Add old Intel CPUs to affected list
    79ec330d124e x86/vmscape: Warn when STIBP is disabled with SMT
    1cd71b057f05 x86/bugs: Move cpu_bugs_smt_update() down
    2f4f2f8f860c x86/vmscape: Enable the mitigation
    d5490dfa3542 x86/vmscape: Add conditional IBPB mitigation
    f2ed886bb650 x86/vmscape: Enumerate VMSCAPE bug
    a4fff4e5c054 Documentation/hw-vuln: Add VMSCAPE documentation
    de9476bb4f1b Linux 5.15.192
    3e7c1c70abf2 dmaengine: mediatek: Fix a flag reuse error in mtk_cqdma_tx_status()
    b521afbe4525 spi: tegra114: Use value to check for invalid delays
    ffe9232693e3 clk: qcom: gdsc: Set retain_ff before moving to HW CTRL
    b01a706f9e73 perf bpf-event: Fix use-after-free in synthesis
    43167766ea1b drm/bridge: ti-sn65dsi86: fix REFCLK setting
    f2e6b997632d spi: spi-fsl-lpspi: Reset FIFO and disable module on transfer abort
    18fac6162dda spi: spi-fsl-lpspi: Set correct chip-select polarity bit
    5255b997529b spi: spi-fsl-lpspi: Fix transmissions when using CONT
    85be7ef8c8e7 pcmcia: Add error handling for add_interval() in do_validate_mem()
    271ed980d57d ALSA: hda/hdmi: Add pin fix for another HP EliteDesk 800 G4 model
    7e287256904e mm/slub: avoid accessing metadata when pointer is invalid in object_err()
    8b9a5269b442 randstruct: gcc-plugin: Fix attribute addition
    db44404d1b9b randstruct: gcc-plugin: Remove bogus void member
    4da1cc986b75 arm64: dts: marvell: uDPU: define pinctrl state for alarm LEDs
    85530b4ec374 vmxnet3: update MTU after device quiesce
    a82c31b8e9b6 net: dsa: microchip: linearize skb for tail-tagging switches
    01ea671f1f2b net: dsa: microchip: update tag_ksz masks for KSZ9477 family
    6db1f39f003c dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status()
    d0b7f11dd68b dma-buf: insert memory barrier before updating num_fences
    b336106f04a2 gpio: pca953x: fix IRQ storm on system wake up
    1d7def97e7eb iio: light: opt3001: fix deadlock due to concurrent flag access
    28e4e1b59a34 iio: chemical: pms7003: use aligned_s64 for timestamp
    66dc11e9c28f spi: tegra114: Don't fail set_cs_timing when delays are zero
    45eef6be830e spi: tegra114: Remove unnecessary NULL-pointer checks
    b9f28182e29e KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer
    c824d766e472 cpufreq/sched: Explicitly synchronize limits_changed flag handling
    abdf3c339181 mm/khugepaged: fix ->anon_vma race
    99a8772611e2 e1000e: fix heap overflow in e1000_set_eeprom
    5d334bce9fad batman-adv: fix OOB read/write in network-coding decode
    95b63d15fce5 scsi: lpfc: Fix buffer free/clear order in deferred receive path
    da98fc73f7d1 drm/amdgpu: drop hw access in non-DC audio fini
    acdf26a91219 wifi: mwifiex: Initialize the chan_stats array to zero
    732e62212f49 mm: move page table sync declarations to linux/pgtable.h
    744ff519c72d x86/mm/64: define ARCH_PAGE_TABLE_SYNC_MASK and arch_sync_kernel_mappings()
    4bd570f49412 pcmcia: Fix a NULL pointer dereference in __iodyn_find_io_region()
    2be7109ef258 ALSA: usb-audio: Add mute TLV for playback volumes on some devices
    0bb7069ee343 phy: mscc: Stop taking ts_lock for tx_queue and use its own lock
    24b24295464f net: phy: mscc: Fix memory leak when using one step timestamping
    b4c2fb32f4fe ptp: Add generic PTP is_sync() function
    0b21e9cd4559 ppp: fix memory leak in pad_compress_skb
    955f400e4f51 net: atm: fix memory leak in atm_register_sysfs when device_register fail
    2bd0f6721290 ax25: properly unshare skbs in ax25_kiss_rcv()
    a7eae33227ee ipv4: Fix NULL vs error pointer check in inet_blackhole_dev_init()
    894c7d0c3fba net: thunder_bgx: decrement cleanup index before use
    299c6d47528e net: thunder_bgx: add a missing of_node_put
    e5f334ac7747 wifi: libertas: cap SSID len in lbs_associate()
    24ec8826381f wifi: cw1200: cap SSID length in cw1200_do_join()
    eaa10a027ab6 net: ethernet: mtk_eth_soc: fix tx vlan tag for llc packets
    1eadabcf5623 i40e: Fix potential invalid access when MAC list is empty
    348a01c8574b icmp: fix icmp_ndo_send address translation for reply direction
    e96d08ddbc99 mISDN: Fix memory leak in dsp_hwec_enable()
    1079c1029384 xirc2ps_cs: fix register access when enabling FullDuplex
    47f6090bcf75 Bluetooth: Fix use-after-free in l2cap_sock_cleanup_listen()
    c79730e337a1 netfilter: conntrack: helper: Replace -EEXIST by -EBUSY
    d00c8b0daf56 netfilter: br_netfilter: do not check confirmed bit in br_nf_local_in() after confirm
    ff040562c10a wifi: cfg80211: fix use-after-free in cmp_bss()
    0f70fab5598d arm64: dts: rockchip: Add vcc-supply to SPI flash on rk3399-pinebook-pro
    4377eac565c2 tee: fix NULL pointer dereference in tee_shm_put
    b187c9761119 fs: writeback: fix use-after-free in __mark_inode_dirty()
    71224142994b drm/amd/display: Don't warn when missing DCE encoder caps
    c1c74584b9b4 bpf: Fix oob access in cgroup local storage
    c04992612ed4 bpf: Move bpf map owner out of common struct
    bfb8da7a5dd1 bpf: Move cgroup iterator helpers to bpf.h
    23099792bb6f bpf: Add cookie object to bpf maps
    7a6c2d093c45 Linux 5.15.191
    90bae69c2959 xfs: do not propagate ENODATA disk errors into xattr code
    c570d773884c Revert "drm/dp: Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS"
    3db34718c755 HID: mcp2221: Handle reads greater than 60 bytes
    6ac648746149 HID: mcp2221: Don't set bus speed on every transfer
    2a0ed07b6967 drm/nouveau/disp: Always accept linear modifier
    40a0165278b7 net: usb: qmi_wwan: add Telit Cinterion LE910C4-WWX new compositions
    9a0b5fdce128 dma/pool: Ensure DMA_DIRECT_REMAP allocations are decrypted
    67334c94b853 Revert "drm/amdgpu: fix incorrect vm flags to map bo"
    4338b0f6544c HID: hid-ntrig: fix unable to handle page fault in ntrig_report_version()
    bfde0392d74f HID: wacom: Add a new Art Pen 2
    4263e5851779 HID: multitouch: fix slab out-of-bounds access in mt_report_fixup()
    eaae728e7335 HID: asus: fix UAF via HID_CLAIMED_INPUT validation
    d51e381beed5 KVM: x86: use array_index_nospec with indices that come from guest
    568e7761279b efivarfs: Fix slab-out-of-bounds in efivarfs_d_compare
    17d6c7747045 sctp: initialize more fields in sctp_v6_from_sk()
    700a71e78755 net: stmmac: xgmac: Do not enable RX FIFO Overflow interrupts
    47fbd9c3364c net/mlx5e: Set local Xoff after FW update
    9352f6ea981d net/mlx5e: Update and set Xon/Xoff upon port speed set
    7011f0f400d4 net/mlx5e: Update and set Xon/Xoff upon MTU set
    f64abfa0649a phy: mscc: Fix when PTP clock is register and unregister
    5680a4dd1009 net: dlink: fix multicast stats being counted incorrectly
    62f368472b0a atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control().
    bf813928bb53 Bluetooth: hci_event: Detect if HCI_EV_NUM_COMP_PKTS is unbalanced
    e726dc92f45d powerpc/kvm: Fix ifdef to remove build warning
    5a2d5ab38365 net: ipv4: fix regression in local-broadcast routes
    6606a6d37496 udf: Fix directory iteration for longer tail extents
    d717c12fbb23 vhost/net: Protect ubufs with rcu read lock in vhost_net_ubuf_put()
    f230d40147cc NFS: Fix a race when updating an existing write
    fd947b71cc1b nfs: fold nfs_page_group_lock_subrequests into nfs_lock_and_join_requests
    2e0d974cdbd1 ASoC: codecs: tx-macro: correct tx_macro_component_drv name
    8f397cdef773 scsi: core: sysfs: Correct sysfs attributes access rights
    a6f0f8873cc3 ftrace: Fix potential warning in trace_printk_seq during ftrace_dump
    2573ee4e6c03 pinctrl: STMFX: add missing HAS_IOMEM dependency
    01879f56bdde Linux 5.15.190
    77cf363f7667 alloc_fdtable(): change calling conventions.
    e442a966e2b7 wifi: mac80211: check basic rates validity in sta_link_apply_parameters
    82ef97abf227 netfilter: nf_reject: don't leak dst refcount for loopback packets
    53320a99948d s390/hypfs: Enable limited access during lockdown
    0ffb1bf99e49 s390/hypfs: Avoid unnecessary ioctl registration in debugfs
    bbdfdc63afdf ALSA: usb-audio: Use correct sub-type for UAC3 feature unit validation
    9d48c8091947 bonding: update LACP activity flag after setting lacp_active
    5748c51afe91 net/sched: Remove unnecessary WARNING condition for empty child qdisc in htb_activate
    0dacfc5372e3 net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit
    f422b5e49b72 igc: fix disabling L1.2 PCI-E link substate on I226 on init
    aa65c2bdb19f ixgbe: xsk: resolve the negative overflow of budget in ixgbe_xmit_zc
    fcb4ce9f729c net: usb: asix_devices: Fix PHY address mask in MDIO bus initialization
    5d1fed4b1c3c phy: mscc: Fix timestamping for vsc8584
    94beabf466da net: phy: Use netif_rx().
    9a1969fbffc1 ppp: fix race conditions in ppp_fill_forward_path
    9f113d2828f0 ipv6: sr: validate HMAC algorithm ID in seg6_hmac_info_add
    2af45aadb7b5 drm/amd/display: Add null pointer check in mod_hdcp_hdcp1_create_session()
    38c13968b80e ALSA: usb-audio: Fix size validation in convert_chmap_v3()
    ddf1691f2534 drm/hisilicon/hibmc: fix the hibmc loaded failed bug
    10ae957833eb mlxsw: spectrum: Forward packets with an IPv4 link-local source IP
    0ad8509b468f iommu/amd: Avoid stack buffer overflow from kernel cmdline
    325bf7d57c4e scsi: qla4xxx: Prevent a potential error pointer dereference
    34171b9e53bd net: bridge: fix soft lockup in br_multicast_query_expired()
    0ba6efb2c174 RDMA/bnxt_re: Fix to initialize the PBL array
    e7ea080f85b7 cgroup/cpuset: Use static_branch_enable_cpuslocked() on cpusets_insane_config_key
    c635a42d9b74 mm/page_alloc: detect allocation forbidden by cpuset and bail out early
    873f32201df8 x86/cpu/hygon: Add missing resctrl_cpu_detect() in bsp_init helper
    4ad0d45ffc39 mm/memory-failure: fix infinite UCE for VM_PFNMAP pfn
    d8c5d87a4315 iio: light: as73211: Ensure buffer holes are zeroed
    41b838420457 tracing: Limit access to parser->buffer when trace_get_user failed
    9fb26b72bb8b tracing: Remove unneeded goto out logic
    14b0d8e7423a iio: imu: inv_icm42600: change invalid data error to -EBUSY
    c78c8e5048b7 usb: xhci: Fix slot_id resource race conflict
    5e2414ebe6f9 compiler: remove __ADDRESSABLE_ASM{_STR,}() again
    c8124155c223 selftests: mptcp: pm: check flush doesn't reset limits
    9aff206cfc27 pwm: mediatek: Fix duty and period setting
    7735341026e5 pwm: mediatek: Handle hardware enable and clock enable separately
    de1dda2e5312 pwm: mediatek: Implement .apply() callback
    1c72f369221c scsi: mpi3mr: Serialize admin queue BAR writes on 32-bit systems
    fef82b52a48c scsi: mpi3mr: Drop unnecessary volatile from __iomem pointers
    098b2c8ee208 scsi: ufs: exynos: Fix programming of HCI_UTRL_NEXUS_TYPE
    423fd248c7aa iio: adc: ad_sigma_delta: change to buffer predisable
    0d59ce2bfc3b soc: qcom: mdt_loader: Ensure we don't read past the ELF header
    e94264b07c41 wifi: ath11k: fix dest ring-buffer corruption when ring is full
    80bc1e5d9e15 asm-generic: Add memory barrier dma_mb()
    06b70cccc106 locking/barriers, kcsan: Support generic instrumentation
    9db6a78bc5e4 media: venus: protect against spurious interrupts during probe
    c52e2ecb77e8 media: venus: Add support for SSR trigger using fault injection
    39d70ce5a252 media: qcom: camss: cleanup media device allocated resource on error path
    4ef9526792ae media: camss: Convert to platform remove callback returning void
    6b7784ea07e6 f2fs: fix to avoid out-of-boundary access in dnode page
    a19b31f854a8 drm/dp: Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS
    a7037057fd16 mptcp: disable add_addr retransmission when timeout is 0
    7c5f3b639bb1 drm/amd/display: Don't overclock DCE 6 by 15%
    dfe40159eec6 usb: dwc3: Remove WARN_ON for device endpoint command timeouts
    bccd26d713ec usb: dwc3: Ignore late xferNotReady event to prevent halt timeout
    7ec4f6da3a4b USB: storage: Ignore driver CD mode for Realtek multi-mode Wi-Fi dongles
    564b015af068 usb: storage: realtek_cr: Use correct byte order for bcs->Residue
    b5a59ea98836 USB: storage: Add unusual-devs entry for Novatek NTK96550-based camera
    f596da86b8c7 usb: renesas-xhci: Fix External ROM access timeouts
    f9f402f8b93c usb: core: hcd: fix accessing unmapped memory in SINGLE_STEP_SET_FEATURE test
    868a1b68dcd9 comedi: Fix use of uninitialized memory in do_insn_ioctl() and do_insnlist_ioctl()
    bab220b0bb5a comedi: pcl726: Prevent invalid irq number
    ab77e85bd3bc comedi: Make insn_rw_emulate_bits() do insn->n samples
    78232f3d0eac usb: quirks: Add DELAY_INIT quick for another SanDisk 3.2Gen1 Flash Drive
    4cb568aacc43 most: core: Drop device reference after usage in get_channel()
    65817f61e181 iio: proximity: isl29501: fix buffered read on big-endian systems
    35b8c9082dd5 iio: pressure: bmp280: Use IS_ERR() in bmp280_common_probe()
    e0b6b223167e ftrace: Also allocate and copy hash for reading of filter files
    403820959475 fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable()
    905986f6b670 use uniform permission checks for all mount propagation changes
    03b40bf5d038 fs/buffer: fix use-after-free when call bh_read() helper
    0496b11f223f drm/amd/display: Fill display clock and vblank time in dce110_fill_display_configs
    9031c990fd69 drm/amd/display: Find first CRTC and its line time in dce110_fill_display_configs
    2e278aee6afe drm/amd/display: Fix DP audio DTO1 clock source on DCE 6.
    fe8670344ab3 drm/amd/display: Fix fractional fb divider in set_pixel_clock_v3
    9c92d12b5cb9 drm/amd/display: Avoid a NULL pointer dereference
    f89530d76d28 ALSA: hda/realtek: Add support for HP EliteBook x360 830 G6 and EliteBook 830 G6
    7bf57a0709cd mm/debug_vm_pgtable: clear page table entries at destroy_args()
    b14850b047e8 squashfs: fix memory leak in squashfs_fill_super
    7a556ae35d7c mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency
    c3e0a66fd999 memstick: Fix deadlock by moving removing flag earlier
    23249dade24e KVM: arm64: Fix kernel BUG() due to bad backport of FPSIMD/SVE/SME fix
    d08713bac991 scsi: ufs: ufs-pci: Fix default runtime and system PM levels
    b2be32915f07 scsi: ufs: ufs-pci: Fix hibernate state transition for Intel MTL-like host controllers
    fb9c73ef2ac2 mptcp: do not queue data on closed subflows
    a08f285d2020 mptcp: drop unused sk in mptcp_push_release
    13e85f7d6979 selftests: mptcp: Initialize variables to quiet gcc 12 warnings
    c9f8a3b0600b mptcp: introduce MAPPING_BAD_CSUM
    1da47584e2d7 mptcp: fix error mibs accounting
    f4480eaad489 selftests: mptcp: add missing join check
    2b92ae68ba70 selftests: mptcp: connect: also cover checksum
    2668261dd04d selftests: mptcp: connect: also cover alt modes
    2c5b3b71fe6b selftests: mptcp: make sendfile selftest work
    696480028b59 kbuild: userprogs: use correct linker when mixing clang and GNU ld
    ad1190744da9 ACPI: processor: idle: Check acpi_fetch_acpi_dev() return value
    cbb445d5cd98 PCI: vmd: Assign VMD IRQ domain before enumeration
    c2d25fddd867 sch_htb: make htb_deactivate() idempotent
    eda741fe155d codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()
    db568d2151cd sch_drr: make drr_qlen_notify() idempotent
    dd83b2be69a1 btrfs: populate otime when logging an inode item
    a803d916ae9a KVM: VMX: Flush shadow VMCS on emergency reboot
    be9692dafdfb net/sched: ets: use old 'nbands' while purging unused classes
    1980d8d38cef net_sched: sch_ets: implement lockless ets_dump()
    de127abe923a net/sched: sch_ets: properly init all active DRR list handles
    8af89a96144e platform/chrome: cros_ec: Unregister notifier in cros_ec_unregister()
    9936cb9ef2d2 platform/chrome: cros_ec: remove unneeded label and if-condition
    2ad140545b2a platform/chrome: cros_ec: Use per-device lockdep key
    d9e812b90b38 platform/chrome: cros_ec: Make cros_ec_unregister() return void
    79c745be310e usb: dwc3: imx8mp: fix device leak at unbind
    7b3f0e3b60c2 bus: mhi: host: Detect events pointing to unexpected TREs
    cfbd61d63263 ata: Fix SATA_MOBILE_LPM_POLICY description in Kconfig
    90a53102729e usb: musb: omap2430: fix device leak at unbind
    1be6c638f72d usb: musb: omap2430: Convert to platform remove callback returning void
    69bea84b06b5 mm/ptdump: take the memory hotplug lock inside ptdump_walk_pgd()
    3924dab90816 NFS: Fix the setting of capabilities when automounting a new filesystem
    dbadab480714 NFS: Create an nfs4_server_set_init_caps() function
    e60dc74f62f0 net: enetc: fix device and OF node leak at probe
    a39791e479ba block: Make REQ_OP_ZONE_FINISH a write operation
    1aaa8e9e4f50 PCI/ACPI: Fix runtime PM ref imbalance on Hot-Plug Capable ports
    5cbf5709aa05 usb: typec: fusb302: cache PD RX state
    3467c4ebb334 hv_netvsc: Fix panic during namespace deletion with VF
    26eb63f732b0 smb: server: Fix extension string in ksmbd_extract_shortname()
    14fafb398360 ALSA: scarlett2: Add retry on -EPROTO from scarlett2_usb_tx()
    1b2b7e9da01e x86/fpu: Delay instruction pointer fixup until after warning
    6550b2bef095 smb: client: fix use-after-free in crypt_message when using async crypto
    ae8428d68252 usb: hub: Don't try to recover devices lost during warm reset.
    98df81d18e5d usb: hub: avoid warm port reset during USB3 disconnect
    8a0b022147b1 x86/mce/amd: Add default names for MCA banks and blocks
    4e2ee5d14333 iio: hid-sensor-prox: Fix incorrect OFFSET calculation
    4597cf3ac9ba iio: hid-sensor-prox: Restore lost scale assignments
    c4029044cc40 f2fs: fix to do sanity check on ino and xnid
    3a12e18a0310 ARM: 9448/1: Use an absolute path to unified.h in KBUILD_AFLAGS
    407047893a64 arm64/entry: Mask DAIF in cpu_switch_to(), call_on_irq_stack()
    6188d61ba73d drm/sched: Remove optimization that causes hang when killing dependent jobs
    7c5a13c76dd3 ice: Fix a null pointer dereference in ice_copy_and_init_pkg()
    46a7cdcf06c4 selftests/memfd: add test for mapping write-sealed memfd read-only
    1c296cba6568 mm: reinstate ability to map write-sealed memfd mappings read-only
    d919658a3871 mm: update memfd seal write check to include F_SEAL_WRITE
    27df40ad7445 mm: drop the assumption that VM_SHARED always implies writable
    44e2f93f9820 sch_qfq: make qfq_qlen_notify() idempotent
    a5efc95a33bd sch_hfsc: make hfsc_qlen_notify() idempotent
    967955c9e57f sch_htb: make htb_qlen_notify() idempotent
    587558d812ac mptcp: pm: kernel: flush: do not reset ADD_ADDR limit
    6ddf51fc0b07 mptcp: drop skb if MPTCP skb extension allocation fails
    3b348c9c8d2c ipv6: sr: Fix MAC comparison to be constant-time
    3ae272ab523d net, hsr: reject HSR frame if skb can't hold tag
    da240d7f7e10 drm/amd/display: Don't overwrite dce60_clk_mgr
    92c4a1fde641 drm/amd: Restore cached power limit during resume
    5005e4e6f964 media: venus: venc: Clamp param smaller than 1fps and bigger than 240
    48045c17fddf media: venus: vdec: Clamp param smaller than 1fps and bigger than 240.
    e6e5e5e5b40a media: venus: hfi: explicitly release IRQ during teardown
    ef09b96665f1 media: venus: Add a check for packet size after reading from shared memory
    f16dc2c87ce4 media: ov2659: Fix memory leaks in ov2659_probe()
    fbc81e78d75b media: rainshadow-cec: fix TOCTOU race condition in rain_interrupt()
    5427dda195d6 media: usbtv: Lock resolution while streaming
    436774334587 media: v4l2-ctrls: Don't reset handler's error in v4l2_ctrl_handler_free()
    025617f4851a media: imx: fix a potential memory leak in imx_media_csc_scaler_device_init()
    5197247df6a0 media: hi556: correct the test pattern configuration
    6512784dbf5d media: gspca: Add bounds checking to firmware parser
    90cc9e7d82e1 soc/tegra: pmc: Ensure power-domains are in a known state
    84ff98c1ea19 jbd2: prevent softlockup in jbd2_log_do_checkpoint()
    fb454ba99189 PCI: endpoint: Fix configfs group removal on driver teardown
    dc4ffbd57171 PCI: endpoint: Fix configfs group list head handling
    7d5c223edf89 mtd: rawnand: fsmc: Add missing check after DMA map
    93f1be8de86a mtd: spinand: propagate spinand_wait() errors from spinand_write_page()
    e26bd46c2968 hwmon: (gsc-hwmon) fix fan pwm setpoint show functions
    dbe8b4366878 pwm: imx-tpm: Reset counter if CMOD is 0
    6b6fa2a7a1b3 wifi: ath11k: fix source ring-buffer corruption
    5679342831db wifi: brcmsmac: Remove const from tbl_ptr parameter in wlc_lcnphy_common_read_table()
    1bb6bb6cd975 zynq_fpga: use sgtable-based scatterlist wrappers
    0176a6117fc7 ata: libata-scsi: Fix ata_to_sense_error() status handling
    48a1795cbf67 scsi: mpi3mr: Fix race between config read submit and interrupt completion
    e1f8a51a8602 ext4: fix hole length calculation overflow in non-extent inodes
    66245c16d72e ext4: use kmalloc_array() for array space allocation
    5396de17bcea ext4: don't try to clear the orphan_present feature block device is r/o
    2c9c15656569 ext4: fix reserved gdt blocks handling in fsmap
    e0fad182ba8a ext4: fix fsmap end of range reporting with bigalloc
    cdfc7b6d3473 ext4: check fast symlink for ea_inode correctly
    8a5e6282c6a7 Revert "vgacon: Add check for vc_origin address range in vgacon_scroll()"
    649383fa7f67 lib/crypto: mips/chacha: Fix clang build and remove unneeded byteswap
    969668b6e7d2 vt: defkeymap: Map keycodes above 127 to K_HOLE
    6b03d59b1e0e vt: keyboard: Don't process Unicode characters in K_OFF mode
    228c686e20ff bus: mhi: host: Fix endianness of BHI vector table
    9d916500ecf9 usb: dwc3: meson-g12a: fix device leaks at unbind
    332d4a4b8615 usb: gadget: udc: renesas_usb3: fix device leak at unbind
    f6d79955b2a3 usb: atm: cxacru: Merge cxacru_upload_firmware() into cxacru_heavy_init()
    5e5ccfdbe4ac m68k: Fix lost column on framebuffer debug console
    177d3651dbd3 cpufreq: armada-8k: Fix off by one in armada_8k_cpufreq_free_table()
    68c4613e89f0 serial: 8250: fix panic due to PSLVERR
    08e12045014b HID: magicmouse: avoid setting up battery timer when not needed
    123cf618a0ae media: uvcvideo: Do not mark valid metadata as invalid
    8343f3fe0b75 media: uvcvideo: Fix 1-byte out-of-bounds read in uvc_parse_format()
    f249d32bb548 mm/kmemleak: avoid deadlock by moving pr_warn() outside kmemleak_lock
    a04de4c40aab mm/kmemleak: avoid soft lockup in __kmemleak_do_cleanup()
    d06e119a16ce parisc: Makefile: fix a typo in palo.conf
    078e62bffca4 fbdev: Fix vmalloc out-of-bounds write in fast_imageblit
    fa086b1398cf btrfs: do not allow relocation of partially dropped subvolumes
    8563ac0b5b8f btrfs: fix log tree replay failure due to file with 0 links and extents
    fa6e0cc6a720 cdc-acm: fix race between initial clearing halt and open
    6eb63a710da3 thunderbolt: Fix copy+paste error in match_service_id()
    d85fac8729c9 comedi: fix race between polling and detaching
    56b9177f17ab usb: typec: ucsi: Update power_supply on power role change
    030b156ec7e0 misc: rtsx: usb: Ensure mmc child device is active when card is present
    058ad2b72281 usb: core: config: Prevent OOB read in SS endpoint companion parsing
    91789de2ed20 ext4: fix largest free orders lists corruption on mb_optimize_scan switch
    3b6de89a9dda drm/amdgpu: fix incorrect vm flags to map bo
    30b14a9374d9 ASoC: fsl_sai: replace regmap_write with regmap_update_bits
    780ce4759f94 ASoC: soc-dai.h: merge DAI call back functions into ops
    4f60001afa06 ASoC: soc-dai.c: add missing flag check at snd_soc_pcm_dai_probe()
    87c474a68724 scsi: lpfc: Remove redundant assignment to avoid memory leak
    481701300b7b rtc: ds1307: remove clear of oscillator stop flag (OSF) in probe
    4f783333cbfa pNFS: Fix uninited ptr deref in block/scsi layout
    f47b0662bdbd pNFS: Handle RPC size limit for layoutcommits
    1ba621a63625 pNFS: Fix disk addr range check in block/scsi layout
    c8dea4397432 pNFS: Fix stripe mapping in block/scsi layout
    8b3ce085b52e block: avoid possible overflow for chunk_sectors check in blk_stack_limits()
    53acbc94344e net: phy: smsc: add proper reset flags for LAN8710A
    dc826121cd44 ipmi: Fix strcpy source and destination the same
    a12feec53c1a kconfig: lxdialog: fix 'space' to (de)select options
    f7d9f0717be8 kconfig: gconf: fix potential memory leak in renderer_edited()
    28498cf306f9 kconfig: gconf: avoid hardcoding model2 in on_treeview2_cursor_changed()
    19b946182978 ipmi: Use dev_warn_ratelimited() for incorrect message warnings
    2b4aa66f7532 scsi: aacraid: Stop using PCI_IRQ_AFFINITY
    2e24d269359b scsi: target: core: Generate correct identifiers for PR OUT transport IDs
    237edd281d52 scsi: Fix sas_user_scan() to handle wildcard and multi-channel scans
    e008120a621e kconfig: nconf: Ensure null termination where strncpy is used
    a73ee10c2781 kconfig: lxdialog: replace strcpy() with strncpy() in inputbox.c
    344ef2a6c6e8 i2c: Force DLL0945 touchpad i2c freq to 100khz
    3963ecbdddaf dm-mpath: don't print the "loaded" message if registering fails
    6f83cf2e362a i3c: don't fail if GETHDRCAP is unsupported
    ce3195182fe0 rtc: ds1307: handle oscillator stop flag (OSF) for ds1341
    758b8e343610 i3c: add missing include to internal header
    b506af24d662 md: dm-zoned-target: Initialize return variable r to avoid uninitialized use
    e6f44cd74134 crypto: octeontx2 - add timeout for load_fvc completion poll
    eb6059474e70 media: uvcvideo: Fix bandwidth issue for Alcor camera
    17b30e5ded06 media: dvb-frontends: w7090p: fix null-ptr-deref in w7090p_tuner_write_serpar and w7090p_tuner_read_serpar
    529fd5593b72 media: dvb-frontends: dib7090p: fix null-ptr-deref in dib7090p_rw_on_apb()
    e06e706500b8 media: usb: hdpvr: disable zero-length read messages
    aef1b717d4a2 media: tc358743: Increase FIFO trigger level to 374
    21ba26a8e347 media: tc358743: Return an appropriate colorspace from tc358743_set_fmt
    a6ccbe037734 media: tc358743: Check I2C succeeded during probe
    2e82f9a5a37b pinctrl: stm32: Manage irq affinity settings
    0de080a0ecab scsi: mpt3sas: Correctly handle ATA device errors
    5e25ee1ecec9 scsi: lpfc: Check for hdwq null ptr when cleaning up lpfc_vport structure
    c16984bc84bf RDMA/core: reduce stack using in nldev_stat_get_doit()
    9d3211cb61a0 RDMA: hfi1: fix possible divide-by-zero in find_hw_thread_mask()
    a8c0dc453e9f leds: leds-lp50xx: Handle reg to get correct multi_index
    b6a9cc9918db media: v4l2-common: Reduce warnings about missing V4L2_CID_LINK_FREQ control
    bd90dbd19683 MIPS: Don't crash in stack_top() for tasks without ABI or vDSO
    1467a75819e4 jfs: upper bound check of tree index in dbAllocAG
    9ad054cd2c4c jfs: Regular file corruption check
    8ed7275910fb jfs: truncate good inode pages when hard link is 0
    ba024d925645 scsi: bfa: Double-free fix
    f5de907f0479 watchdog: iTCO_wdt: Report error if timeout configuration fails
    90c1295da0a7 MIPS: vpe-mt: add missing prototypes for vpe_{alloc,start,stop,free}
    e9849ca6dd01 watchdog: dw_wdt: Fix default timeout
    dacfd8cf9c23 fs/orangefs: use snprintf() instead of sprintf()
    fd5aad080edb scsi: libiscsi: Initialize iscsi_conn->dd_data only if memory is allocated
    7f322c12df7a ext4: do not BUG when INLINE_DATA_FL lacks system.data xattr
    79ec8dabf001 crypto: hisilicon/hpre - fix dma unmap sequence
    b06a3c552c00 cifs: Fix calling CIFSFindFirst() for root path without msearch
    8e6932ee0cc9 watchdog: sbsa: Adjust keepalive timeout to avoid MediaTek WS0 race condition
    1117260a5402 vhost: fail early when __vhost_add_used() fails
    6ef6e42de0d4 net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325
    77e56dbc7b7a drm/ttm: Respect the shrinker core free target
    65a7b7717600 uapi: in6: restore visibility of most IPv6 socket options
    49586908dea6 drm/ttm: Should to return the evict error
    6716de171b2a net: ncsi: Fix buffer overflow in fetching version id
    56c4837283eb wifi: rtlwifi: fix possible skb memory leak in _rtl_pci_init_one_rxdesc()
    f531abcdfec2 net: dsa: b53: prevent SWITCH_CTRL access on BCM5325
    bae08d48d044 net: dsa: b53: prevent DIS_LEARNING access on BCM5325
    9874ad64285f net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on BCM5325
    36bec4066dff net: dsa: b53: fix b53_imp_vlan_setup for BCM5325
    392aa29dbcc5 gve: Return error for unknown admin queue command
    452de5797933 net: vlan: Replace BUG() with WARN_ON_ONCE() in vlan_dev_* stubs
    d49af61978b6 drm/amd: Allow printing VanGogh OD SCLK levels without setting dpm to manual
    851c50b31611 dpaa_eth: don't use fixed_phy_change_carrier
    6de7a77911b2 wifi: iwlegacy: Check rate_idx range after addition
    7cc4b7c2e24f netmem: fix skb_frag_address_safe with unreadable skbs
    7451726049e8 wifi: rtlwifi: fix possible skb memory leak in `_rtl_pci_rx_interrupt()`.
    e80b670bc30d drm/amd/display: Fix 'failed to blank crtc!'
    6fed73112e43 wifi: iwlwifi: fw: Fix possible memory leak in iwl_fw_dbg_collect
    ffbf9699d639 wifi: iwlwifi: dvm: fix potential overflow in rs_fill_link_cmd()
    851726384eb6 drm/amd/display: Separate set_gsl from set_gsl_source_select
    e03f9c0b9324 net: fec: allow disable coalescing
    03dd58451897 net: atlantic: add set_power to fw_ops for atl2 to fix wol
    833e0e6744cd net: thunderbolt: Fix the parameter passing of tb_xdomain_enable_paths()/tb_xdomain_disable_paths()
    39117551069d drm/msm: use trylock for debugfs
    834c1e80164e ipv6: mcast: Check inet6_dev->dead under idev->mc_lock in __ipv6_dev_mc_inc().
    e22b1ee8cec9 (powerpc/512) Fix possible `dma_unmap_single()` on uninitialized pointer
    599dcdfff36f wifi: mac80211: don't complete management TX on SAE commit
    bb9a6585c2f9 s390/stp: Remove udelay from stp_sync_clock()
    13ff80efde1c wifi: iwlwifi: mvm: fix scan request validation
    ac31ba743054 sched/deadline: Fix accounting after global limits change
    037d856072bc net: thunderx: Fix format-truncation warning in bgx_acpi_match_id()
    c965a0f7477a net: ipv4: fix incorrect MTU in broadcast routes
    7fcb3d1a622b wifi: cfg80211: Fix interface type validation
    15b05f078e6c net: mctp: Prevent duplicate binds
    0ad84d622174 rcu: Protect ->defer_qs_iw_pending from data race
    a8b4ecb16327 arm64: Mark kernel as tainted on SAE and SError panic
    0f2d1bcdd01c net/mlx5e: Properly access RCU protected qdisc_sleeping variable
    8769e2cd97dc net: ag71xx: Add missing check after DMA map
    44746e44ef61 et131x: Add missing check after DMA map
    9152c8dce4fa be2net: Use correct byte order and format string for TCP seq and ack_seq
    5e18232d72a1 s390/time: Use monotonic clock in get_cycles()
    39968a6d1b7f wifi: cfg80211: reject HTC bit for management frames
    72632af764d0 ktest.pl: Prevent recursion of default variable options
    2fc78b1f4544 xen/netfront: Fix TX response spurious interrupts
    a0c4744b3e7a ASoC: codecs: rt5640: Retry DEVICE_ID verification
    2191a2f89827 iio: adc: ad7768-1: Ensure SYNC_IN pulse minimum timing requirement
    97e1d2a18a7d ALSA: usb-audio: Avoid precedence issues in mixer_quirks macros
    77477121f87a ALSA: pcm: Rewrite recalculate_boundary() to avoid costly loop
    c2dacfe495b7 ALSA: hda/ca0132: Fix buffer overflow in add_tuning_control
    a73ccab0ebd2 platform/chrome: cros_ec_typec: Defer probe on missing EC parent
    93d700f59bf9 platform/x86: thinkpad_acpi: Handle KCOV __init vs inline mismatches
    ddb96ab185e8 pm: cpupower: Fix the snapshot-order of tsc,mperf, clock in mperf_stop()
    ffa551a30da6 usb: core: usb_submit_urb: downgrade type check
    5c7fda829b16 usb: typec: intel_pmc_mux: Defer probe if SCU IPC isn't present
    82ba7b8cf9f6 ASoC: core: Check for rtd == NULL in snd_soc_remove_pcm_runtime()
    afd0dd1baf0a ALSA: intel8x0: Fix incorrect codec index usage in mixer for ICH4
    866fcfc056c3 ASoC: hdac_hdmi: Rate limit logging on connection and disconnection
    b3f0f92abaac x86/bugs: Avoid warning when overriding return thunk
    921592ffe886 mmc: rtsx_usb_sdmmc: Fix error-path in sd_set_power_mode()
    345df19a971a reset: brcmstb: Enable reset drivers for ARCH_BCM2835
    932d27bc3650 pps: clients: gpio: fix interrupt handling order in remove path
    e8d164041ebd ACPI: APEI: GHES: add TAINT_MACHINE_CHECK on GHES panic path
    18aed89a19d9 mmc: sdhci-msm: Ensure SD card power isn't ON when card removed
    0c48c9fe3fac ACPI: processor: fix acpi_object initialization
    b287704f0b51 PM: sleep: console: Fix the black screen issue
    7121241b7267 thermal: sysfs: Return ENODATA instead of EAGAIN for reads
    c2b884662890 PM: runtime: Clear power.needs_force_resume in pm_runtime_reinit()
    2bcc6a6c3fbd ACPI: PRM: Reduce unnecessary printing to avoid user confusion
    e453c89e247d selftests: tracing: Use mutex_unlock for testing glob filter
    2499b0ac908e ARM: tegra: Use I/O memcpy to write to IRAM
    aeb7edd5cb7e gpio: tps65912: check the return value of regmap_update_bits()
    4dd40dfba23a tools/nolibc: define time_t in terms of __kernel_old_time_t
    5b49e57e1e73 thermal/drivers/qcom-spmi-temp-alarm: Enable stage 2 shutdown when required
    8cac2bd3cc83 ASoC: soc-dapm: set bias_level if snd_soc_dapm_set_bias_level() was successed
    472af4d4fa68 EDAC/synopsys: Clear the ECC counters on init
    2a65a7477b82 PM / devfreq: governor: Replace sscanf() with kstrtoul() in set_freq_store()
    c0726d1e466e ARM: rockchip: fix kernel hang during smp initialization
    4d0b2d5a7419 cpufreq: Exit governor when failed to start old governor
    6c3ae3c40cbb gpio: wcd934x: check the return value of regmap_update_bits()
    bade491eb9e0 usb: xhci: Avoid showing errors during surprise removal
    c4ba0c252d92 usb: xhci: Set avg_trb_len = 8 for EP0 during Address Device Command
    04e615daf3b9 usb: xhci: Avoid showing warnings for dying controller
    5a164a725b9c usb: typec: ucsi: psy: Set current max to 100mA for BC 1.2 and Default
    cc1613a46a1f selftests/futex: Define SYS_futex on 32-bit architectures with 64-bit time_t
    be45f1b5f28d cpufreq: CPPC: Mark driver with NEED_UPDATE_LIMITS flag
    f3ab168d3c85 usb: xhci: print xhci->xhc_state when queue_command failed
    c8704dca5792 securityfs: don't pin dentries twice, once is enough...
    d167a43b29cc ext2: Handle fiemap on empty files to prevent EINVAL
    5a77f371b4a1 fs/ntfs3: correctly create symlink for relative path
    bde58c1539f3 fs/ntfs3: Add sanity check for file name
    11388106fab5 ata: libata-sata: Disallow changing LPM state if not supported
    11b567346c65 better lockdep annotations for simple_recursive_removal()
    ad5f53b993b2 hfs: fix not erasing deleted b-tree node issue
    84ef8dd32383 drbd: add missing kref_get in handle_write_conflicts
    dc83df485f44 udf: Verify partition map count
    9d5012ffe141 smb/server: avoid deadlock when linking with ReplaceIfExists
    f8d55c912e45 arm64: Handle KCOV __init vs inline mismatches
    03cd1db1494c hfsplus: don't use BUG_ON() in hfsplus_create_attributes_file()
    ccf0ad56a779 hfsplus: fix slab-out-of-bounds read in hfsplus_uni2asc()
    5ab59229bef6 hfsplus: fix slab-out-of-bounds in hfsplus_bnode_read()
    a1a60e795022 hfs: fix slab-out-of-bounds in hfs_bnode_read()
    240325993e78 ptp: prevent possible ABBA deadlock in ptp_clock_freerun()
    55b12736625d cpuidle: governors: menu: Avoid using invalid recent intervals data
    8680e712240e intel_idle: Allow loading ACPI tables for any family
    cd0e92bb2b75 sctp: linearize cloned gso packets in sctp_rcv
    19b909a4b145 netfilter: ctnetlink: fix refcount leak on table dump
    a47767e20cf7 udp: also consider secpath when evaluating ipsec use for checksumming
    edc065c19257 ACPI: processor: perflib: Move problematic pr->performance check
    40f8fea730ce ACPI: processor: perflib: Fix initial _PPC limit application
    289d1d1fc1dc Documentation: ACPI: Fix parent device references
    71379495ab70 eventpoll: Fix semi-unbounded recursion
    749528086620 fs: Prevent file descriptor table allocations exceeding INT_MAX
    9620376f73fa sunvdc: Balance device refcount in vdc_port_mpgroup_check
    6fd42124b445 NFSD: detect mismatch of file handle and delegation stateid in OPEN op
    f3aac6cf390d nfsd: handle get_client_locked() failure in nfsd4_setclientid_confirm()
    75947d3200de net: usb: asix_devices: add phy_mask for ax88772 mdio bus
    1b35f7ee5012 net: dpaa: fix device leak when querying time stamp info
    f95f0deb566d net: gianfar: fix device leak when querying time stamp info
    f324959ad47e netlink: avoid infinite retry looping in netlink_unicast()
    286b5be7f2ae gpio: virtio: Fix config space reading.
    275e37532e8e ALSA: usb-audio: Validate UAC3 cluster segment descriptors
    f03418bb9d54 ALSA: usb-audio: Validate UAC3 power domain descriptors, too
    b0878a23aee6 io_uring: don't use int for ABI
    8afb22aa063f usb: gadget : fix use-after-free in composite_dev_cleanup()
    66b1f50158e6 mm/hmm: move pmd_to_hmm_pfn_flags() to the respective #ifdeffery
    42ade82926c3 MIPS: mm: tlb-r4k: Uniquify TLB entries on init
    e05310943e7b ALSA: intel_hdmi: Fix off-by-one error in __hdmi_lpe_audio_probe()
    1946a6a9bdeb net: usbnet: Fix the wrong netif_carrier_on() call
    e2a4325ce21a net: usbnet: Avoid potential RCU stall on LINK_CHANGE event
    b4b40bab6c34 USB: serial: option: add Foxconn T99W709
    cf86704798c1 vsock: Do not allow binding to VMADDR_PORT_ANY
    ba2257034755 net/packet: fix a race in packet_set_ring() and packet_notifier()
    2675f405a60b selftests/perf_events: Add a mmap() correctness test
    3bd518cc7ea6 perf/core: Prevent VMA split of buffer mappings
    de85e72598d8 perf/core: Exit early on perf_mmap() fail
    899d253add77 perf/core: Don't leak AUX buffer refcount on allocation failure
    ce0481ac88a7 pptp: fix pptp_xmit() error path
    229429073578 smb: client: let recv_done() cleanup before notifying the callers.
    1f6525e79074 smb: server: let recv_done() avoid touching data_transfer after cleanup/move
    87fc5ce6ff98 smb: server: let recv_done() consistently call put_recvmsg/smb_direct_disconnect_rdma_connection
    fb3854e76cd3 smb: server: make sure we call ib_dma_unmap_single() only if we called ib_dma_map_single already
    484dea96e8c6 smb: server: remove separate empty_recvmsg_queue
    61a58a043906 ALSA: hda/ca0132: Fix missing error handling in ca0132_alt_select_out()
    f80b34ebc579 benet: fix BUG when creating VFs
    4c1022220b1b net: drop UFO packets in udp_rcv_segment()
    09ff062b89d8 ipv6: reject malicious packets in ipv6_gso_segment()
    d0e1d47eca66 net/mlx5: Correctly set gso_segs when LRO is used
    5de7513f38f3 pptp: ensure minimal skb length in pptp_xmit()
    10c803dee386 phy: mscc: Fix parsing of unicast frames
    0a0108796b84 netpoll: prevent hanging NAPI when netcons gets enabled
    19b83e315441 NFS: Fixup allocation flags for nfsiod's __GFP_NORETRY
    461125e8f46c XArray: Add calls to might_alloc()
    b23afb4a5fd2 NFSv4.2: another fix for listxattr
    3570ef5c3131 NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()
    70bf32087b4d pNFS/flexfiles: don't attempt pnfs on fatal DS errors
    2ec8ec57bb8e PCI: pnv_php: Fix surprise plug detection and recovery
    f56e004b7817 powerpc/eeh: Make EEH driver device hotplug safe
    efabe0bd99f4 powerpc/eeh: Rely on dev->link_active_reporting
    cb1ea063039c powerpc/eeh: Export eeh_unfreeze_pe()
    12656cda9194 PCI: pnv_php: Work around switches with broken presence detection
    912e200240b6 PCI: pnv_php: Clean up allocated IRQs on unplug
    06e25dfea328 kconfig: qconf: fix ConfigList::updateListAllforAll()
    a30c34e6be0f scsi: ufs: core: Use link recovery when h8 exit fails during runtime resume
    0967189e6a09 scsi: mpt3sas: Fix a fw_event memory leak
    666b7cf6ac9a f2fs: fix to avoid out-of-boundary access in devs.path
    5cd99d5aa3d3 f2fs: fix to avoid panic in f2fs_evict_inode
    1edf68272b8c f2fs: fix to avoid UAF in f2fs_sync_inode_meta()
    fba3a1c1c330 f2fs: doc: fix wrong quota mount option description
    08e8ab00a6d2 f2fs: fix KMSAN uninit-value in extent_info usage
    37f3a111913b rtc: rv3028: fix incorrect maximum clock rate handling
    2ed0bae18a77 rtc: pcf8563: fix incorrect maximum clock rate handling
    facb6e7c0f4e rtc: pcf85063: fix incorrect maximum clock rate handling
    452aed10517b rtc: hym8563: fix incorrect maximum clock rate handling
    d62a797801fd rtc: ds1307: fix incorrect maximum clock rate handling
    e9293fd04c1b ucount: fix atomic_long_inc_below() argument type
    0b973c5eeef5 module: Restore the moduleparam prefix length check
    69e83e552750 apparmor: ensure WB_HISTORY_SIZE value is a power of 2
    74a87aca0942 bpf: Check flow_dissector ctx accesses are aligned
    27354cbd69b8 vhost-scsi: Fix log flooding with target does not exist errors
    aed9a4e43946 mtd: rawnand: atmel: set pmecc data setup time
    62f7cc11b04e mtd: rawnand: rockchip: Add missing check after DMA map
    15d0e92dfd45 mtd: rawnand: atmel: Fix dma_mapping_error() address
    47bf04a5a4b7 jfs: fix metapage reference count leak in dbAllocCtl
    cca8f5a39919 fbdev: imxfb: Check fb_add_videomode to prevent null-ptr-deref
    52e1dc93d52d crypto: qat - fix seq_file position update in adf_ring_next()
    6ff44d06e953 sh: Do not use hyphen in exported variable name
    2bba4bdf050d dmaengine: nbpfaxi: Add missing check after DMA map
    c94f4c6e662a dmaengine: mv_xor: Fix missing check after DMA map and missing unmap
    bbe6cd4da912 fs/orangefs: Allow 2 more characters in do_c_string()
    d2016efbc42a PCI: endpoint: pci-epf-vntb: Fix the incorrect usage of __iomem attribute
    d54f6bc4b2b0 soundwire: stream: restore params when prepare ports fail
    cbdd905a6b3e crypto: img-hash - Fix dma_unmap_sg() nents value
    5867d62dfe92 crypto: keembay - Fix dma_unmap_sg() nents value
    0b777a598b76 hwrng: mtk - handle devm_pm_runtime_enable errors
    7a9ee7b9034a watchdog: ziirave_wdt: check record length in ziirave_firm_verify()
    d084ff4b7c6b scsi: isci: Fix dma_unmap_sg() nents value
    999bb730ca69 scsi: mvsas: Fix dma_unmap_sg() nents value
    1c0717978d2a scsi: ibmvscsi_tgt: Fix dma_unmap_sg() nents value
    896c8ac77794 clk: sunxi-ng: v3s: Fix de clock definition
    2ab3f20f4baa perf tests bp_account: Fix leaked file descriptor
    b1b1bfb81a4a kernel: trace: preemptirq_delay_test: use offstack cpu mask
    b6fbac6ae904 RDMA/hns: Fix -Wframe-larger-than issue
    20c0ed8dd658 crypto: ccp - Fix crash when rebind ccp device for ccp.ko
    f25a1c8834c3 crypto: inside-secure - Fix `dma_unmap_sg()` nents value
    9f13f09c8dc4 perf sched: Fix memory leaks for evsel->priv in timehist
    84cd7256f068 clk: clk-axi-clkgen: fix fpfd_max frequency for zynq
    7b5365d17b58 pinctrl: sunxi: Fix memory leak on krealloc failure
    0369e2055789 PCI: endpoint: pci-epf-vntb: Return -ENOENT if pci_epc_get_next_free_bar() fails
    9ed082a72c20 power: supply: max14577: Handle NULL pdata when CONFIG_OF is not set
    4ebbb9106aaa power: supply: cpcap-charger: Fix null check for power_supply_get_by_name
    7e903da71f8b clk: xilinx: vcu: unregister pll_post only if registered correctly
    c62c0b6d797e media: v4l2-ctrls: Fix H264 SEPARATE_COLOUR_PLANE check
    2adc945b70c4 clk: davinci: Add NULL check in davinci_lpsc_clk_register()
    e86cc0b9812c mtd: fix possible integer overflow in erase_xfer()
    9745eecf5b69 crypto: marvell/cesa - Fix engine load inaccuracy
    dcd17f4f579b PCI: rockchip-host: Fix "Unexpected Completion" log message
    2e34470f44eb vrf: Drop existing dst reference in vrf_ip6_input_dst
    5e0275f888eb selftests: rtnetlink.sh: remove esp4_offload after test
    b10cfa2de13d netfilter: xt_nfacct: don't assume acct name is null-terminated
    bfc8a82751f6 can: kvaser_usb: Assign netdev.dev_port based on device channel index
    0721467bb069 can: kvaser_pciefd: Store device channel index
    19859cc12acc wifi: brcmfmac: fix P2P discovery failure in P2P peer due to missing P2P IE
    696994a1d655 Reapply "wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()"
    9b096abd5454 wifi: mac80211: Check 802.11 encaps offloading in ieee80211_tx_h_select_key()
    fe1ee935285a wifi: mac80211: Don't call fq_flow_idx() for management frames
    d56890533b08 mwl8k: Add missing check after DMA map
    da1be393a75d wifi: rtl8xxxu: Fix RX skb size for aggregation disabled
    7c537709a18c xen/gntdev: remove struct gntdev_copy_batch from stack
    9cd1537036ac net_sched: act_ctinfo: use atomic64_t for three counters
    cab280994498 net/sched: Restrict conditions for adding duplicating netems to qdisc tree
    863b1c70e7f8 um: rtc: Avoid shadowing err in uml_rtc_start()
    8d83f7143ff7 arch: powerpc: defconfig: Drop obsolete CONFIG_NET_CLS_TCINDEX
    5351b8a41623 netfilter: nf_tables: adjust lockdep assertions handling
    7a43cb575217 drm/amd/pm/powerplay/hwmgr/smu_helper: fix order of mask and value
    8f35daf34357 m68k: Don't unregister boot console needlessly
    9053a69abfb5 net/mlx5: Check device memory pointer before usage
    f5a27666c8cf tcp: fix tcp_ofo_queue() to avoid including too much DUP SACK range
    eff3bb53c18c wifi: ath11k: clear initialized flag for deinit-ed srng lists
    2e9f85ee3b46 iwlwifi: Add missing check for alloc_ordered_workqueue
    d76ca8359371 wifi: iwlwifi: Fix memory leak in iwl_mvm_init()
    c73c773b09e3 wifi: rtl818x: Kill URBs before clearing tx status queue
    9a0624ff42df caif: reduce stack size, again
    a7caec2a1b59 bpftool: Fix memory leak in dump_xx_nlmsg on realloc failure
    73fc5d04009d bpf, ktls: Fix data corruption when using bpf_msg_pop_data() in ktls
    c0efe4eae2cc bpf, sockmap: Fix psock incorrectly pointing to sk
    d699e4e6d33b drm/rockchip: cleanup fb when drm_gem_fb_afbc_init failed
    4bf712152125 selftests/tracing: Fix false failure of subsystem event test
    3afd514c77f4 staging: nvec: Fix incorrect null termination of battery manufacturer
    f7c2de49fee3 samples: mei: Fix building on musl libc
    90918264362d cpufreq: Init policy->rwsem before it may be possibly used
    d9c7fc2c8ae2 cpufreq: Initialize cpufreq-based frequency-invariance later
    997c36d137e3 cpufreq: intel_pstate: Always use HWP_DESIRED_PERF in passive mode
    f0479e878d4b PM / devfreq: Check governor before using governor->name
    35a490ea5a80 arm64: dts: imx8mn-beacon: Fix HS400 USDHC clock speed
    10c0fbd5ad66 arm64: dts: imx8mm-beacon: Fix HS400 USDHC clock speed
    0008ec694e2b ARM: dts: imx6ul-kontron-bl-common: Fix RTS polarity for RS485 interface
    a789256941ab arm: dts: ti: omap: Fixup pinheader typo
    ae08cd98fef4 usb: early: xhci-dbc: Fix early_ioremap leak
    c6fdcd40390e Revert "vmci: Prevent the dispatching of uninitialized payloads"
    a891b456ba2b pps: fix poll support
    a85dc8385749 vmci: Prevent the dispatching of uninitialized payloads
    3290f62f23fa staging: fbtft: fix potential memory leak in fbtft_framebuffer_alloc()
    76f1842cdc91 usb: misc: apple-mfi-fastcharge: Make power supply names unique
    4986c1e82e93 ARM: dts: vfxxx: Correctly use two tuples for timer address
    b6b551196f5b selftests: Fix errno checking in syscall_user_dispatch test
    cfb5e5582f69 ASoC: ops: dynamically allocate struct snd_ctl_elem_value
    fe18d9f14f4c ASoC: soc-dai: tidyup return value of snd_soc_xlate_tdm_slot_mask()
    bec8109f957a Revert "fs/ntfs3: Replace inode_trylock with inode_lock"
    14922f0cc92e hfsplus: remove mutex_lock check in hfsplus_free_extents
    92c50b2d5a57 fs_context: fix parameter name in infofc() macro
    7becf31ed946 ASoC: Intel: fix SND_SOC_SOF dependencies
    c845b2e787d8 ethernet: intel: fix building with large NR_CPUS
    6dd7e3fc9246 usb: phy: mxs: disconnect line when USB charger is attached
    c53baa6a134c usb: chipidea: add USB PHY event
    6005cea17d04 ALSA: hda: Add missing NVIDIA HDA codec IDs
    988be12b610d comedi: comedi_test: Fix possible deletion of uninitialized timers
    fa6ce4a9cc9f jfs: reject on-disk inodes of an unsupported type
    6b80d98a9710 x86/bugs: Fix use of possibly uninit value in amd_check_tsa_microcode()
    6d40dd35a932 usb: typec: tcpm: apply vbus before data bringup in tcpm_src_attach
    92370ce7071c usb: typec: tcpm: allow switching to mode accessory to mux properly
    2f7fbb19d983 usb: typec: tcpm: allow to use sink in accessory mode
    4991f824128b mm/zsmalloc: do not pass __GFP_MOVABLE if CONFIG_COMPACTION=n
    98872a934ea6 nilfs2: reject invalid file types when reading inodes
    1d6f02700d75 gve: Fix stuck TX queue for DQ queue format
    ae07af3d1f8e e1000e: ignore uninitialized checksum word on tgp
    30e2871bd4b3 e1000e: disregard NVM checksum on tgp when valid checksum bit is not set
    8aa46b2428b8 dpaa2-switch: Fix device reference count leak in MAC endpoint handling
    30f7d3d90f41 dpaa2-eth: Fix device reference count leak in MAC endpoint handling
    094a94e3b237 ALSA: hda/realtek - Add mute LED support for HP Pavilion 15-eg0xxx
    83f64bb37197 bus: fsl-mc: Fix potential double device reference in fsl_mc_get_endpoint()
    c742b06302a0 i2c: virtio: Avoid hang by using interruptible completion wait
    d05ec13aa3eb i2c: qup: jump out of the loop in case of timeout
    ec1aa39ea7f9 platform/x86: ideapad-laptop: Fix kbd backlight not remembered among boots
    a8e8b3733ebd net: hns3: fixed vf get max channels bug
    d739b876c161 net: hns3: disable interrupt when ptp init failed
    f1d943048fd2 net: hns3: fix concurrent setting vlan filter issue
    ab905a2e982e net/sched: sch_qfq: Avoid triggering might_sleep in atomic context in qfq_delete_class
    186942d19c02 net: appletalk: Fix use-after-free in AARP proxy probe
    4640c4dc604d i40e: report VF tx_dropped with tx_errors instead of tx_discards
    8d9184cce2bf i40e: Add rx_missed_errors for buffer exhaustion
    c8aefc5994eb regmap: fix potential memory leak of regmap_bus
    cda04854614f interconnect: qcom: sc7280: Add missing num_links to xm_pcie3_1 node
    532fbdc74a4e RDMA/core: Rate limit GID cache warning messages
    ca9bef9ba1a6 regulator: core: fix NULL dereference on unbind due to stale coupling data
    664e5a6f541f Input: gpio-keys - fix a sleep while atomic with PREEMPT_RT
    b62c8ee41b81 x86: Pin task-stack in __get_wchan()
    e43191f9efa3 x86: Fix __get_wchan() for !STACKTRACE
    5ce1264b586d sched: Add wrapper for get_wchan() to keep task blocked
    b52e53a44a43 x86: Fix get_wchan() to support the ORC unwinder
    4dba44333a11 bpf, sockmap: Fix panic when calling skb_linearize
    7722142d7265 platform/x86: think-lmi: Fix kobject cleanup
    f110c609b0c5 powercap: intel_rapl: Do not change CLAMPING bit if ENABLE bit cannot be changed
    7d2c4a0fee61 mm/vmalloc: leave lazy MMU mode on PTE mapping error
    ee093910b9f8 ASoC: fsl_sai: Force a software reset when starting in consumer mode
    d2ab0bb400cc usb: dwc3: qcom: Don't leave BCR asserted
    5e2851d5e3cf usb: musb: fix gadget state on disconnect
    8594a4e87977 usb: musb: Add and use inline functions musb_{get,set}_state
    7a7178837bed usb: hub: Fix flushing of delayed work used for post resume purposes
    1a6fee8d8295 usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm
    e38ca702130b usb: hub: fix detection of high tier USB3 devices behind suspended hubs
    36fecd740de2 clone_private_mnt(): make sure that caller has CAP_SYS_ADMIN in the right userns
    9ef510db1362 sched: Change nr_uninterruptible type to unsigned long
    850226aef8d2 net/sched: Return NULL when htb_lookup_leaf encounters an empty rbtree
    2a4b9df3cb50 net: bridge: Do not offload IGMP/MLD messages
    047b61a24d7c net: vlan: fix VLAN 0 refcount imbalance of toggling filtering during runtime
    9aa9261bf1fe Bluetooth: L2CAP: Fix attempting to adjust outgoing MTU
    6e4eec86fe5f ipv6: mcast: Delay put pmc->idev in mld_del_delrec()
    984a2fb6f2ed net/mlx5: Correctly set gso_size when LRO is used
    88576404084d net/mlx5e: Add support to klm_umr_wqe
    9737501f26b6 lib: bitmap: Introduce node-aware alloc API
    ce2f1b5d0f13 Bluetooth: SMP: Fix using HCI_ERROR_REMOTE_USER_TERM on timeout
    edf3a1828373 Bluetooth: SMP: If an unallowed command is received consider it a failure
    3a4eca2a1859 Bluetooth: Fix null-ptr-deref in l2cap_sock_resume_cb()
    a6a238c4126e usb: net: sierra: check for no status endpoint
    4eb5cc48399f hwmon: (corsair-cpro) Validate the size of the received input buffer
    22bff8038efb selftests: net: increase inter-packet timeout in udpgro.sh
    db262843d1ce selftests: udpgro: report error when receive failed
    46c321f45c87 nvme: fix misaccounting of nvme-mpath inflight I/O
    4256a483fe58 smb: client: fix use-after-free in cifs_oplock_break
    4b5022b649ab pinctrl: mediatek: moore: check if pin_desc is valid before use
    8ba6c2362b85 rpl: Fix use-after-free in rpl_do_srh_inline().
    c6df79400014 net/sched: sch_qfq: Fix race condition on qfq_aggregate
    ca9850df52cc net: emaclite: Fix missing pointer increment in aligned_read()
    97303e541e12 bpf: Reject %p% format string in bprintf-like helpers
    020eed5681d0 comedi: Fix initialization of data for instructions that write to subdevice
    c53570e62b5b comedi: Fix use of uninitialized data in insn_rw_emulate_bits()
    757127050b43 comedi: Fix some signed shift left operations
    69dc06b95145 comedi: Fail COMEDI_INSNLIST ioctl if n_insns is too large
    73f34d609397 comedi: das6402: Fix bit shift out of bounds
    b3c95fa508e5 comedi: das16m1: Fix bit shift out of bounds
    c593215385f0 comedi: aio_iiro_16: Fix bit shift out of bounds
    29ef03e5b844 comedi: pcl812: Fix bit shift out of bounds
    eda041948635 iio: adc: stm32-adc: Fix race in installing chained IRQ handler
    2f10149ae596 iio: adc: max1363: Reorder mode_list[] entries
    8ff32ec36adb iio: adc: max1363: Fix MAX1363_4X_CHANS/MAX1363_8X_CHANS[]
    166afe964e84 soc: aspeed: lpc-snoop: Don't disable channels that aren't enabled
    fe632e8fc184 soc: aspeed: lpc-snoop: Cleanup resources in stack-order
    5fd9150de773 pmdomain: governor: Consider CPU latency tolerance from pm_domain_cpu_gov
    ecb1a74e41b5 mmc: sdhci_am654: Workaround for Errata i2312
    4d6c8f3e13af mmc: sdhci-pci: Quirk for broken command queuing on Intel GLK-based Positivo models
    0886c420da61 mmc: bcm2835: Fix dma_unmap_sg() nents value
    0a8432ef8cd9 memstick: core: Zero initialize id_reg in h_memstick_read_dev_id()
    6ef428a6e972 isofs: Verify inode mode when loading from disk
    24861ef8b517 dmaengine: nbpfaxi: Fix memory corruption in probe()
    052af0c58b5b af_packet: fix soft lockup issue caused by tpacket_snd()
    9e3219d33907 af_packet: fix the SO_SNDTIMEO constraint not effective on tpacked_snd()
    e98c1dfae40e phonet/pep: Move call to pn_skb_get_dst_sockaddr() earlier in pep_sock_accept()
    ca60064ea03f tracing: Add down_write(trace_event_sem) when adding trace event
    f10923b8d32a HID: core: do not bypass hid_hw_raw_request
    aefa6e92d9b4 HID: core: ensure __hid_request reserves the report ID as the first byte
    7fa83d004337 HID: core: ensure the allocated report buffer can contain the reserved report ID
    6c6ae150dbd8 pch_uart: Fix dma_sync_sg_for_device() nents value
    d83feb2854d8 Input: xpad - set correct controller type for Acer NGR200
    8039721de433 thunderbolt: Fix bit masking in tb_dp_port_set_hops()
    0bcdbf953523 i2c: stm32: fix the device used for the DMA map
    15a872068799 usb: gadget: configfs: Fix OOB read on empty string write
    76157b526d17 USB: serial: ftdi_sio: add support for NDI EMGUIDE GEMINI
    660b9dc0fd3d USB: serial: option: add Foxconn T99W640
    d374b477ae95 USB: serial: option: add Telit Cinterion FE910C04 (ECM) composition
    cdcb0ffd6448 phy: tegra: xusb: Fix unbalanced regulator disable in UTMI PHY mode

(From OE-Core rev: bd8a3bdbd78f806b4a3077de8ae7aa3bc00511fc)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-24 06:47:20 -07:00
Bruce Ashfield
5abe7f3283 linux-yocto/5.15: update to v5.15.189
Updating linux-yocto/5.15 to the latest korg -stable release that comprises
the following commits:

    c79648372d02 Linux 5.15.189
    3e4028ef31b6 rseq: Fix segfault on registration when rseq_cs is non-zero
    4b934b78041f x86: Fix X86_FEATURE_VERW_CLEAR definition
    562f207d0a91 x86/mm: Disable hugetlb page table sharing on 32-bit
    8312a1ccff15 vhost-scsi: protect vq->log_used with vq->mutex
    02fd0c7d0d14 Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID
    1b297ab6f38c HID: quirks: Add quirk for 2 Chicony Electronics HP 5MP Cameras
    68c0e3adf09a HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY
    95f184337eb4 vt: add missing notification when switching back to text mode
    f174d73b3fb0 HID: lenovo: Add support for ThinkPad X1 Tablet Thin Keyboard Gen2
    acc94849ebb9 net: usb: qmi_wwan: add SIMCom 8230C composition
    78fe114f13a3 um: vector: Reduce stack usage in vector_eth_configure()
    8ea9a9fb79a9 atm: idt77252: Add missing `dma_map_error()`
    8d672a1a6bfc bnxt_en: Set DMA unmap len correctly for XDP_REDIRECT
    0118fe8fbe2b bnxt_en: Fix DCB ETS validation
    8d11e48b1276 net: ll_temac: Fix missing tx_pending check in ethtools_set_ringparam()
    0da557bbeae2 can: m_can: m_can_handle_lost_msg(): downgrade msg lost in rx message to debug level
    6b08605e12b3 net: phy: microchip: limit 100M workaround to link-down events on LAN88xx
    b2f5dfa87367 net: appletalk: Fix device refcount leak in atrtr_create()
    a3aea97d5596 netfilter: flowtable: account for Ethernet header in nf_flow_pppoe_proto()
    df525911974c ksmbd: fix a mount write count leak in ksmbd_vfs_kern_path_locked()
    fedd65b58469 smb: server: make use of rdma_destroy_qp()
    cb121c47f364 nbd: fix uaf in nbd_genl_connect() error path
    10c6021a609d raid10: cleanup memleak at raid10_make_request
    48da050b4f54 md/raid1: Fix stack memory use after return in raid1_reshape
    b24f65c18454 wifi: zd1211rw: Fix potential NULL pointer dereference in zd_mac_tx_to_dev()
    09064e6d6597 dma-buf: fix timeout handling in dma_resv_wait_timeout v2
    419192cb11f2 dma-buf: use new iterator in dma_resv_wait_timeout
    84df80b4c704 dma-buf: add dma_resv_for_each_fence_unlocked v8
    3435a2048972 usb: dwc3: Abort suspend on soft disconnect failure
    c1cb5c166fec usb: cdnsp: Fix issue with CV Bad Descriptor test
    ba3a2e446fc7 usb: cdnsp: Replace snprintf() with the safer scnprintf() variant
    2991f28da681 usb:cdnsp: remove TRB_FLUSH_ENDPOINT command
    9a433cd87236 Input: xpad - support Acer NGR 200 Controller
    e9b894ca7589 xhci: Disable stream for xHC controller with XHCI_BROKEN_STREAMS
    e262ff8d634c usb: xhci: quirk for data loss in ISOC transfers
    59aca35c69c2 xhci: Allow RPM on the USB controller (1022:43f7) by default
    982beb7582c1 virtio-net: ensure the received length does not exceed allocated size
    c47c83f6f2ec netlink: make sure we allow at least one dump skb
    ccc9da90af65 netlink: Fix rmem check in netlink_broadcast_deliver().
    a2504279841f pwm: mediatek: Ensure to disable clocks in error path
    d7684190951e RDMA/mlx5: Fix vport loopback for MPV device
    e774a693b7ff btrfs: use btrfs_record_snapshot_destroy() during rmdir
    21ab2c7c9794 btrfs: propagate last_unlink_trans earlier when doing a rmdir
    d216d5a277de Revert "ACPI: battery: negate current when discharging"
    a5012673d497 usb: gadget: u_serial: Fix race condition in TTY wakeup
    2f4df5d07c77 drm/gem: Fix race in drm_gem_handle_create_tail()
    ef841f8e4e1f drm/sched: Increment job count before swapping tail spsc queue
    cb4b08a095b1 pinctrl: qcom: msm: mark certain pins as invalid for interrupts
    0c1ad5738526 gre: Fix IPv6 multicast route creation.
    e3154a48fd0b x86/mce: Make sure CMCI banks are cleared during shutdown on Intel
    9f4431ba8501 x86/mce: Don't remove sysfs if thresholding sysfs init fails
    9cd4fa64814b x86/mce/amd: Fix threshold limit reset
    ae0e082687b2 xen: replace xen_remap() with memremap()
    f98bf80b20f4 jfs: fix null ptr deref in dtInsertEntry
    65ad600b9bde bpf, sockmap: Fix skb refcnt race after locking changes
    2499fa286fb0 aoe: avoid potential deadlock at set_capacity
    39d5137085a6 thermal/int340x_thermal: handle data_vault when the value is ZERO_SIZE_PTR
    e37e3b6cc8dc bpf: fix precision backtracking instruction iteration
    f5e72b7824d0 rxrpc: Fix oops due to non-existence of prealloc backlog struct
    d30910170f7e ice: safer stats processing
    32caa50275cc fs/proc: do_task_stat: use __for_each_thread()
    25452638f133 net/sched: Abort __tc_modify_qdisc if parent class does not exist
    7f1cad84ac1a atm: clip: Fix NULL pointer dereference in vcc_sendmsg()
    5641019dfbae atm: clip: Fix infinite recursive call of clip_push().
    1c075e88d585 atm: clip: Fix memory leak of struct clip_vcc.
    3251ce3979f4 atm: clip: Fix potential null-ptr-deref in to_atmarpd().
    66f9065c1c7d net: phy: smsc: Fix link failure in forced mode with Auto-MDIX
    29a5de38fa1e net: phy: smsc: Fix Auto-MDIX configuration when disabled by strap
    0ba1021a8302 vsock: Fix IOCTL_VM_SOCKETS_GET_LOCAL_CID to check also `transport_local`
    36a439049b34 vsock: Fix transport_* TOCTOU
    80d7dc15805a vsock: Fix transport_{g2h,h2g} TOCTOU
    dab8ded2e5ff tipc: Fix use-after-free in tipc_conn_close().
    fd69af061010 netlink: Fix wraparounds of sk->sk_rmem_alloc.
    552a066477cb fix proc_sys_compare() handling of in-lookup dentries
    c0aec35f861f perf: Revert to requiring CAP_SYS_ADMIN for uprobes
    2df3e265a301 ASoC: fsl_asrc: use internal measured ratio for non-ideal ratio mode
    87825fbd1e17 drm/exynos: exynos7_drm_decon: add vblank check in IRQ handling

(From OE-Core rev: b3f7c8cd4d56120e96b2b12f5a1eb76dc65f682b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-24 06:47:20 -07:00
Bruce Ashfield
9a1d2ff9d0 linux-yocto/5.15: update to v5.15.188
Updating linux-yocto/5.15 to the latest korg -stable release that comprises
the following commits:

    89950c454265 Linux 5.15.188
    cd0d988f7dd7 x86/CPU/AMD: Properly check the TSA microcode
    2f693b607545 Linux 5.15.187
    21953dde398d x86/process: Move the buffer clearing before MONITOR
    c334ae4a545a KVM: SVM: Advertise TSA CPUID bits to guests
    3d6513b51b72 KVM: x86: add support for CPUID leaf 0x80000021
    f2b75f1368af x86/bugs: Add a Transient Scheduler Attacks mitigation
    04304f5fe3e3 x86/bugs: Rename MDS machinery to something more generic
    7be0d1ea71f5 usb: typec: displayport: Fix potential deadlock
    5bcca95ca6d2 platform/x86: think-lmi: Create ksets consecutively
    d01c737efd81 Logitech C-270 even more broken
    475f89e1f9bd i2c/designware: Fix an initialization issue
    b32dfd00bd51 usb: cdnsp: do not disable slot for disabled slot
    969941ca9f1e xhci: dbc: Flush queued requests before stopping dbc
    45f2cd76bc50 xhci: dbctty: disable ECHO flag by default
    d8ccb3d08159 platform/x86: dell-wmi-sysman: Fix class device unregistration
    8ac2cb8d809b platform/x86: think-lmi: Fix class device unregistration
    846baaa88a2d dpaa2-eth: fix xdp_rxq_info leak
    3f0b6236e11f net: dpaa2-eth: rearrange variable in dpaa2_eth_get_ethtool_stats
    b2e1b676711e dpaa2-eth: Update SINGLE_STEP register access
    8e4d49fc2617 dpaa2-eth: Update dpni_get_single_step_cfg command
    0ab03e2616a1 ethernet: atl1: Add missing DMA mapping error checks and count errors
    94a09ec93e93 NFSv4/flexfiles: Fix handling of NFS level errors in I/O
    576a6739e08a drm/v3d: Disable interrupts before resetting the GPU
    56738cbac3bb regulator: gpio: Fix the out-of-bounds access to drvdata::gpiods
    e772f8f5c82d regulator: gpio: Add input_supply support in gpio_regulator_config
    1728e17762b9 mmc: core: sd: Apply BROKEN_SD_DISCARD quirk earlier
    bee6329e5fd5 rcu: Return early if callback is not specified
    68d3417305ee mtd: spinand: fix memory leak of ECC engine conf
    ab1e8491c19e ACPICA: Refuse to evaluate a method if arguments are missing
    46b47d4b06fa wifi: ath6kl: remove WARN on bad firmware input
    a856228c44dc wifi: mac80211: drop invalid source address OCB frames
    1129e0e0a833 scsi: target: Fix NULL pointer dereference in core_scsi3_decode_spec_i_port()
    161ff4102038 powerpc: Fix struct termio related ioctl macros
    ce5f6b2540d6 ata: pata_cs5536: fix build on 32-bit UML
    ba5104b9b3fa ALSA: sb: Force to disable DMAs once when DMA mode is changed
    73337c003f3d ALSA: sb: Don't allow changing the DMA mode during operations
    5deab0fa6cfd drm/msm: Fix a fence leak in submit error path
    e269f29e9395 net/sched: Always pass notifications when child class becomes empty
    7bf497c2ad87 nui: Fix dma_mapping_error() check
    2b952dbb32fe rose: fix dangling neighbour pointers in rose_rt_device_down()
    1fba51f021b2 enic: fix incorrect MTU comparison in enic_change_mtu()
    52b4b2e85e63 amd-xgbe: align CL37 AN sequence as per databook
    7edff1bbdd3a lib: test_objagg: Set error message in check_expect_hints_stats()
    f5874e0dea9e igc: disable L1.2 PCI-E link substate to avoid performance issue
    f10af3426144 drm/i915/gt: Fix timeline left held on VMA alloc error
    92c2d914b533 platform/x86: dell-wmi-sysman: Fix WMI data block retrieval in sysfs callbacks
    4caf6a93ac39 drm/i915/selftests: Change mock_request() to return error pointers
    54f62d542d2c spi: spi-fsl-dspi: Clear completion counter before initiating transfer
    4c315caf16e8 drm/exynos: fimd: Guard display clock control with runtime PM calls
    a1950bb9edfa btrfs: fix missing error handling when searching for inode refs during log replay
    9f0771b8cc4a RDMA/mlx5: Fix CC counters query for MPV
    abfdb3b4ce2b scsi: ufs: core: Fix spelling of a sysfs attribute name
    1afb58c7e32b scsi: qla4xxx: Fix missing DMA mapping error in qla4xxx_alloc_pdu()
    9ceff7ded1e9 scsi: qla2xxx: Fix DMA mapping test in qla24xx_get_port_database()
    8846fd02c98d NFSv4/pNFS: Fix a race to wake on NFS_LAYOUT_DRAIN
    b92397ce9674 nfs: Clean up /proc/net/rpc/nfs when nfs_fs_proc_net_init() fails.
    00ed215f5938 RDMA/mlx5: Initialize obj_event->obj_sub_list before xa_insert
    16a16c901a75 platform/mellanox: mlxbf-tmfifo: fix vring_desc.len assignment
    944ced3e4a09 mtk-sd: reset host->mrq on prepare_data() error
    48bf4f3dfcda mtk-sd: Prevent memory corruption from DMA map failure
    2580162c4ebf mtk-sd: Fix a pagefault in dma_unmap_sg() for not prepared data
    621d5a3ef023 usb: typec: altmodes/displayport: do not index invalid pin_assignments
    aab032d171e7 Revert "mmc: sdhci: Disable SD card clock before changing parameters"
    3d07fd496513 mmc: sdhci: Add a helper function for dump register in dynamic debug mode
    2d44723a091b vsock/vmci: Clear the vmci transport packet properly when initializing it
    1def00386211 rtc: cmos: use spin_lock_irqsave in cmos_interrupt
    8516edd36397 ARM: 9354/1: ptrace: Use bitfield helpers
    143842584c12 btrfs: don't drop extent_map for free space inode on write error
    6a8aa6420ad3 arm64: Restrict pagetable teardown to avoid false warning
    6d486f1e3818 Revert "ipv6: save dontfrag in cork"
    9f69eb424aa2 s390: Add '-std=gnu11' to decompressor and purgatory CFLAGS
    707030cb1c66 s390/entry: Fix last breaking event handling in case of stack corruption
    9e2976e4e326 media: uvcvideo: Rollback non processed entities on error
    45d1aa5674d6 PCI: hv: Do not set PCI_COMMAND_MEMORY to reduce VM boot time
    34d3e10ab905 drm/amd/display: Add null pointer check for get_first_active_display()
    53dee8fd76a6 drm/bridge: cdns-dsi: Wait for Clk and Data Lanes to be ready
    62a7143dce1c drm/bridge: cdns-dsi: Check return value when getting default PHY config
    49a421180aaa drm/bridge: cdns-dsi: Fix connecting to next bridge
    6c3056ed0b73 drm/bridge: cdns-dsi: Fix the clock variable for mode_valid()
    105b0a0c7e65 drm/amdkfd: Fix race in GWS queue scheduling
    b0dc5d6da1da drm/udl: Unregister device before cleaning up on disconnect
    c7fc459ae6f9 drm/tegra: Fix a possible null pointer dereference
    21dfbd590734 drm/tegra: Assign plane type before registration
    03b68435fbe3 HID: wacom: fix kobject reference count leak
    796abf9f710a HID: wacom: fix memory leak on sysfs attribute creation failure
    ca7b6d00a713 HID: wacom: fix memory leak on kobject creation failure
    896bc23e1e25 btrfs: update superblock's device bytes_used when dropping chunk
    2826ef05854d dm-raid: fix variable in journal device check
    78f4cf0e81b7 Bluetooth: L2CAP: Fix L2CAP MTU negotiation
    34cbe5543bec dt-bindings: serial: 8250: Make clocks and clock-frequency exclusive
    f61db0a69d0b staging: rtl8723bs: Avoid memset() in aes_cipher() and aes_decipher()
    9f7fd60fb8f7 net: selftests: fix TCP packet checksum
    26248d5d68c8 atm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().
    6b908e85a739 net: enetc: Correct endianness handling in _enetc_rd_reg64
    8898080d6143 um: ubd: Add missing error check in start_io_thread()
    a4aa7c001043 vsock/uapi: fix linux/vm_sockets.h userspace compilation errors
    1bc8c7b8e5b9 af_unix: Don't set -ECONNRESET for consumed OOB skb.
    2afcde1b3676 wifi: mac80211: fix beacon interval calculation overflow
    1197abb1ee3b libbpf: Fix null pointer dereference in btf_dump__free on allocation failure
    6b4ce195552b attach_recursive_mnt(): do not lock the covering tree when sliding something under it
    c3fb926abe90 ALSA: usb-audio: Fix out-of-bounds read in snd_usb_get_audioformat_uac3()
    9199e8cb75f1 atm: clip: prevent NULL deref in clip_push()
    ad1bdd24a02d s390/pkey: Prevent overflow in size calculation for memdup_user()
    56e54021b77c i2c: robotfuzz-osif: disable zero-length read messages
    d6bc3e078509 i2c: tiny-usb: disable zero-length read messages
    9b084de34f1a platform/x86: ideapad-laptop: use usleep_range() for EC polling
    d0537c51b4a1 dummycon: Trigger redraw when switching consoles with deferred takeover
    acd41ac591b7 tty: vt: make consw::con_switch() return a bool
    a74907cdd18d tty: vt: sanitize arguments of consw::con_clear()
    d2781a0ba98c tty: vt: make init parameter of consw::con_init() a bool
    de2871093fa3 vgacon: remove unneeded forward declarations
    72dc92531df9 vgacon: switch vgacon_scrolldelta() and vgacon_restore_screen()
    4b0b22dfe4d6 tty/vt: consolemap: rename and document struct uni_pagedir
    3a88320314ab fbcon: delete a few unneeded forward decl
    c8ea0f204cf4 uio_hv_generic: Align ring size to system page
    a955c1b360b3 uio_hv_generic: Query the ringbuffer size for device
    a8c1b5e33a1c Drivers: hv: vmbus: Add utility function for querying ring size
    101c4437f6fb Drivers: hv: Rename 'alloced' to 'allocated'
    1f2f2f56f59e f2fs: don't over-report free space or inodes in statvfs
    fbcbbf2ebe5c media: imx-jpeg: Drop the first error frames
    8701675abab4 clk: ti: am43xx: Add clkctrl data for am43xx ADC1
    9f55faa41eac media: omap3isp: use sgtable-based scatterlist wrappers
    78b7d79b8626 media: davinci: vpif: Fix memory leak in probe error path
    c3705c82b740 jfs: validate AG parameters in dbMount() to prevent crashes
    4789cea3f8d4 fs/jfs: consolidate sanity checking in dbMount
    8c8d1dcc726a ovl: Check for NULL d_inode() in ovl_dentry_upper()
    42923c6e9cd7 ceph: fix possible integer overflow in ceph_zero_objects()
    bfdbc927d165 ALSA: usb-audio: Add a quirk for Lenovo Thinkpad Thunderbolt 3 dock
    da01b76bb66a ALSA: hda: Add new pci id for AMD GPU display HD audio controller
    44aa0cdaed5f ALSA: hda: Ignore unsol events for cards being shut down
    56846793f105 usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode
    cd414d7d7077 usb: cdc-wdm: avoid setting WDM_READ for ZLP-s
    383d33f3aeb7 usb: Add checks for snprintf() calls in usb_alloc_dev()
    780e48c99f66 usb: common: usb-conn-gpio: use a unique name for usb connector device
    9c905fdbba68 tty: serial: uartlite: register uart driver in init
    6f77e344515b usb: potential integer overflow in usbg_make_tpg()
    5cb3cb3db317 usb: dwc2: also exit clock_gating when stopping udc while suspended
    fd72dd6a82e2 coresight: Only check bottom two claim bits
    be620f25161f um: Add cmpxchg8b_emu and checksum functions to asm-prototypes.h
    82ddbbc98949 iio: pressure: zpa2326: Use aligned_s64 for the timestamp
    1f25f2d3fa29 bcache: fix NULL pointer in cache_set_flush()
    8ddce5eab6c3 md/md-bitmap: fix dm-raid max_write_behind setting
    477c044309e6 dmaengine: xilinx_dma: Set dma_device directions
    566487aad232 ksmbd: allow a filename to contain special characters on SMB3.1.1 posix extension
    d8322d861a6f hwmon: (pmbus/max34440) Fix support for max34451
    bbd1511e27ee leds: multicolor: Fix intensity setting while SW blinking
    a23b82a0693b mfd: max14577: Fix wakeup source leaks on device unbind
    852a2bda152a mailbox: Not protect module_put with spin_lock_irqsave
    86be8c7409b7 NFSv4.2: fix listxattr to return selinux security label
    a35f2168961e NFSv4: Always set NLINK even if the server doesn't support it
    80251a15ed61 cifs: Fix cifs_query_path_info() for Windows NT servers

(From OE-Core rev: 6b6a51e73e89903e5766175c54fad23cc4a1721b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-24 06:47:20 -07:00
Saravanan
2b691e84d8 cmake: fix CVE-2025-9301
Reference:
	https://nvd.nist.gov/vuln/detail/CVE-2025-9301
	https://gitlab.kitware.com/cmake/cmake/-/issues/27135

Upstream-patch:
	37e27f71bc

(From OE-Core rev: 0aacc4298f2cdaaf6d19a58e6e134b6a6ecc5097)

Signed-off-by: Saravanan <saravanan.kadambathursubramaniyam@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-24 06:47:19 -07:00
Rajeshkumar Ramasamy
41ae63737b glib-networking: fix CVE-2025-60019
glib-networking's OpenSSL backend fails to properly check the return
value of memory allocation routines. An out of memory condition could
potentially result in writing to an invalid memory location.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-60019

Upstream-patch:
70df675dd4

(From OE-Core rev: eda5838fcbb8c725e6e39d6e72b63c33f6c44446)

Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-24 06:47:19 -07:00
Rajeshkumar Ramasamy
ca6745e603 glib-networking: fix CVE-2025-60018
glib-networking's OpenSSL backend fails to properly check the return
value of a call to BIO_write(), resulting in an out of bounds read.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-60018

Upstream-patch:
4dd540505d

(From OE-Core rev: bd11f18909b5946e4570e0eba9b3cb9b47791dc1)

Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-24 06:47:19 -07:00
Sunil Dora
d847c8aac1 glibc: : PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions (bug 32786)
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=dbc5a50d12eff4cb3f782129029d04b8a76f58e7
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002282.html

(From OE-Core rev: 8f1000d9dad5e51f08a40b0f6650204425cc8efb)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
1bf7d50410 glibc: nptl Use all of g1_start and g_signals
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=91bb902f58264a2fd50fbce8f39a9a290dd23706
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002283.html

(From OE-Core rev: 4593e800b832d740d0b63ddd4b5c948c564116b2)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
b48d3ea982 glibc: nptl rename __condvar_quiesce_and_switch_g1
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=4b79e27a5073c02f6bff9aa8f4791230a0ab1867
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002281.html

(From OE-Core rev: 0a9ccd040037c12aa2e7fbc2213ca60b30dafcc4)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
42b3adafcc glibc: nptl Fix indentation
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=ee6c14ed59d480720721aaacc5fb03213dc153da
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002280.html

(From OE-Core rev: f54e082df2f07893f66183089518f98cb792f22e)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
2105de9c82 glibc: nptl Use a single loop in pthread_cond_wait instaed of a nested loop
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=929a4764ac90382616b6a21f099192b2475da674
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002279.html

(From OE-Core rev: 75bbc8cb3a94640120d778916abb2edf78b89fd0)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
dd624cec3b glibc: Remove g_refs from condition variables
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=c36fc50781995e6758cae2b6927839d0157f213c
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002278.html

(From OE-Core rev: 1972b6776fa8a23b9d373d516ace32e136e9058f)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
2fdbec72e5 glibc: nptl Remove unnecessary quadruple check in pthread_cond_wait
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=4f7b051f8ee3feff1b53b27a906f245afaa9cee1
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002276.html

(From OE-Core rev: e6cac5aef751d698327f6ebee966462644c6c6a8)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
7b6bc5b49c glibc: nptl Remove unnecessary catch-all-wake in condvar group switch
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=b42cc6af11062c260c7dfa91f1c89891366fed3e
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002274.html

(From OE-Core rev: 18b4f22aaae19cd0efb21433f0c23c5580246a2e)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
0c1db5ac27 glibc: nptl Update comments and indentation for new condvar implementation
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=0cc973160c23bb67f895bc887dd6942d29f8fee3
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002275.html

(From OE-Core rev: bf3d91124c2584b9d3000098d1f81d9459d143fc)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
8f20ad5f77 glibc: pthreads NPTL lost wakeup fix 2
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
  [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=1db84775f831a1494993ce9c118deaf9537cc50a
  [2] https://sourceware.org/pipermail/libc-stable/2025-July/002277.html

(From OE-Core rev: 4d57f7c82ccb64e2bd2a2371ef18bdc5a4b718e3)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Sunil Dora
74672d72c0 glibc: Remove partial BZ#25847 backport patches
To facilitate a clean backport of the full 10-commit series
addressing the pthread condition variable lost wakeup issue
(BZ#25847) in glibc 2.35, remove the existing 8 patches that
were applied as a partial backport.

The previous partial backport excluded commit:
c36fc50781995e6758cae2b6927839d0157f213c ("nptl: Remove
g_refs from condition variables") based on guidance from
glibc maintainer Florian Weimer(#comment #74)

This exclusion was recommended for stable branches to
avoid altering the layout of pthread_cond_t, which could
introduce ABI incompatibilities. Additionally, the dependent
commit dbc5a50d12eff4cb3f782129029d04b8a76f58e7 was not needed
in the partial backport.

To align with upstream mainline, per maintainer Carlos O'Donell
(comment #75), apply the complete 10-commit series for consistency.

By removing these patches first, we ensure the subsequent
application of the full 10 commits results in cleaner, more
reviewable changes without intermixed conflicts or overlaps.

Removed patches and corresponding upstream commits:
- 0026-PR25847-1.patch: 1db84775f831a1494993ce9c118deaf9537cc50a
- 0026-PR25847-2.patch: 0cc973160c23bb67f895bc887dd6942d29f8fee3
- 0026-PR25847-3.patch: b42cc6af11062c260c7dfa91f1c89891366fed3e
- 0026-PR25847-4.patch: 4f7b051f8ee3feff1b53b27a906f245afaa9cee1
- 0026-PR25847-5.patch: 929a4764ac90382616b6a21f099192b2475da674
- 0026-PR25847-6.patch: ee6c14ed59d480720721aaacc5fb03213dc153da
- 0026-PR25847-7.patch: 4b79e27a5073c02f6bff9aa8f4791230a0ab1867
- 0026-PR25847-8.patch: 91bb902f58264a2fd50fbce8f39a9a290dd23706

Bug reference: https://sourceware.org/bugzilla/show_bug.cgi?id=25847
This change prepares the branch for the full backport in follow-up commits.

(From OE-Core rev: 9881dd70305b87945e9649d744bcbc40a1a7b780)

Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Peter Marko
f245c680a8 binutils: patch CVE-2025-11083
Pick patch per link in NVD report.

(From OE-Core rev: 99879f41af7272e597c9a8c4c0260d1b690f9051)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Peter Marko
2325a1dbc5 binutils: patch CVE-2025-11082
Pick patch per link in NVD report.

(From OE-Core rev: cdc458b5dd21614058aac56de68a272201283141)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:24 -07:00
Peter Marko
2952d99f0f qemu: patch CVE-2024-8354
Pick commit per [1].

(From OE-Core rev: bebd1b24473e3480ae6c4ae2897fbfdf4942ea11)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-17 07:27:23 -07:00
Peter Marko
962d08fb40 vulnerabilities: update nvdcve file name
The filename is outdated as its version was already bumped and there are
also different files for different feed choices.
Use glob to match any available file.

(From yocto-docs rev: fca48e1239950ccf10f6b1b805c5734104144ded)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Lee Chee Yang
425363de54 migration-guides: add release notes for 4.0.30
(From yocto-docs rev: 2999dd8be2534d3d5b2cfa28be703d07fffa795c)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit e89c95b167c24cfb9c1d5d548a26872393ca2fee)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Steve Sakoman
e5fb48f371 oeqa/sdk/cases/buildcpio.py: use gnu mirror instead of main server
ftp.gnu.org is the main server of the GNU project, however download speed
can vary greatly based on one's location.

Using ftpmirror.gnu.org should redirect the request to the closest up-to-date mirror,
which should result sometimes in significantly faster download speed, depending
on one's location. This should also distribute the traffic more across the mirrors.

This information was sourced from https://www.gnu.org/prep/ftp.html

(From OE-Core rev: 0d11c9103f072841baf39166efc133f2a20fc4dc)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Steve Sakoman
259d81175f selftest/cases/meta_ide.py: use use gnu mirror instead of main server
ftp.gnu.org is the main server of the GNU project, however download speed
can vary greatly based on one's location.

Using ftpmirror.gnu.org should redirect the request to the closest up-to-date mirror,
which should result sometimes in significantly faster download speed, depending
on one's location. This should also distribute the traffic more across the mirrors.

This information was sourced from https://www.gnu.org/prep/ftp.html

(From OE-Core rev: 97939775d2b81af392a2f98c922165763ff0ae5f)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Gyorgy Sarvari
eca1e13385 conf/bitbake.conf: use gnu mirror instead of main server
ftp.gnu.org is the main server of the GNU project, however download speed
can vary greatly based on one's location.

Using ftpmirror.gnu.org should redirect the request to the closest up-to-date mirror,
which should result sometimes in significantly faster download speed, depending
on one's location. This should also distribute the traffic more across the mirrors.

This information was sourced from https://www.gnu.org/prep/ftp.html .

(From OE-Core rev: 8418289277056d582d88916b524b920a2e005c75)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d8c6f01d7467e018aa0ed27a87850d9e4434a47a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
AshishKumar Mishra
e46adde7bb p11-kit: backport fix for handle USE_NLS from master
Disable NLS in the build when USE_NLS is off.

(From OE-Core rev: b94798ecd535956ef4565663710ea9a701ff21ed)

This change corresponds to upstream eeb3974472
from master .
Since the p11-kit version are different between master & kirkstone
applied the patch manually

(From OE-Core rev: c621612a12cdbf5c89279b69e28d0e3a0b5d0a86)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: AshishKumar Mishra <emailaddress.ashish@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
AshishKumar Mishra
d34a0bd00b systemd: backport fix for handle USE_NLS from master
Do not build translations when NLS is disabled.
(From OE-Core rev: 83795ef6c3fa12a863cd20b7ec1a2607606987b6)

This change corresponds to upstream d848b454e6
from master .
Since the systemd version are different between master & kirkstone
applied the patch manually

(From OE-Core rev: 4b612ae7cbdc8327765c34d0e64fa8e0564891d4)

Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: AshishKumar Mishra <emailaddress.ashish@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Deepesh Varatharajan
11f3763b0f glibc: stable 2.35 branch updates
git log --oneline a66bc3941ff298e474d5f02d0c3303401951141f..4e50046821f05ada5f14c76803845125ddb3ed7d

4e50046821 (HEAD, origin/release/2.35/master) x86-64: Add GLIBC_ABI_DT_X86_64_PLT [BZ #33212]
c97735cfde elf: Handle ld.so with LOAD segment gaps in _dl_find_object (bug 31943)
96cc65a28a elf: Extract rtld_setup_phdr function from dl_main
e3f04f64fa elf: Do not add a copy of _dl_find_object to libc.so
bfae8bf49c arm: Use _dl_find_object on __gnu_Unwind_Find_exidx (BZ 31405)

Testing Results:
           Before     After   Diff
PASS         4605      4609     +4
XPASS           6         6      0
FAIL          358       356     -2
XFAIL          16        16      0
UNRESOLVED      0         1     +1
UNSUPPORTED   197       197      0

Testcases changes

testcase-name                              before           after

elf/tst-link-map-contiguous-libc(new)        -               PASS
elf/tst-link-map-contiguous-ldso(new)        -               FAIL
elf/check-dt-x86-64-plt(new)                 -               UNRESOLVED
misc/tst-tsearch                            FAIL             PASS
posix/bug-regex24                           FAIL             PASS
string/tst-cmp                              FAIL             PASS

(From OE-Core rev: 932ee96c0dc24ac3cdb9cee5bf96375568b41df0)

Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Archana Polampalli
89a78911d7 openssl: upgrade 3.0.17 -> 3.0.18
This release incorporates the following bug fixes and mitigations:
Fix Out-of-bounds read & write in RFC 3211 KEK Unwrap. (CVE-2025-9230)
Fix Out-of-bounds read in HTTP client no_proxy handling. (CVE-2025-9232)

Changelog:
https://github.com/openssl/openssl/blob/openssl-3.0.18/NEWS.md#openssl-30

(From OE-Core rev: 0a0d640436258269ffaaf23116d41f9a79db5ab7)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Aleksandar Nikolic
673b839a6b scripts/install-buildtools: Update to 4.0.30
Update to the 4.0.30 release of the 4.0 series for buildtools

(From OE-Core rev: 237452d023dfc895cd8183e30e781da6f60b2ec5)

Signed-off-by: Aleksandar Nikolic <aleksandar.nikolic@zeiss.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Archana Polampalli
f63f49bdea go: fix CVE-2025-47906
If the PATH environment variable contains paths which are executables
(rather than just directories), passing certain strings to LookPath
("", ".", and ".."), can result in the binaries listed in the PATH
being unexpectedly returned.

(From OE-Core rev: c4d81e32ee3fb7d05db2cfbfaaa8081841bc16ce)

Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Peter Marko
7a5c6b3e18 ffmpeg: mark CVE-2023-6601 as patched
Per [1] this CVE is fixed by the same commits as the other 3 CVEs.

[1] https://security-tracker.debian.org/tracker/CVE-2023-6601

(From OE-Core rev: b0542ad422ac1ba05dd5b8003429b8719619d892)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:36 -07:00
Peter Marko
5d1ccbd52f ffmpeg: ignore CVE-2023-6603
Per [1] this CVE is fixed by [2] which is available in version 5.0, so
version 5.0.3 is not vulnerable anymore.

[1] https://security-tracker.debian.org/tracker/CVE-2023-6603
[2] 28c83584e8

(From OE-Core rev: dcfd5672474f7a9bf7913c0f0e35f7c40bb685c4)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Peter Marko
c95f2e55ac pulseaudio: ignore CVE-2024-11586
As per the linked ticket, this issue is related to an Ubuntu-specific
patch that we don't have.

(From OE-Core rev: dc81fdc6bdf8ab39b7f2fd994d50256430c36558)

(From OE-Core rev: 72e63e44a0c6ad5a408c4dc59a24288c36463439)

Rewritten CVE_STATUS to CVE_CHECK_IGNORE.

(From OE-Core rev: 66e45229a9614d33f64167f0259ae1d719839d83)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Peter Marko
02148028a0 ghostscript: patch CVE-2025-59800
Pick commit mentioned in the NVD report.

(From OE-Core rev: 5109fd6675b6782f10f86f774fe54b6ccecee415)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Peter Marko
093e91d190 ghostscript: patch CVE-2025-59799
Pick commit mentioned in the NVD report.

(From OE-Core rev: 10a51275bb0f62b018a6182953352ecf7aa3d220)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Peter Marko
0163ca382a ghostscript: patch CVE-2025-59798
Pick commit mentioned in the NVD report.

(From OE-Core rev: dc65da274b26c1e7f4143154cd7639a93cc658be)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Peter Marko
0adb465b9e grub: ignore CVE-2024-2312
This CVE is specific to Ubuntu [1].

[1] https://bugs.launchpad.net/ubuntu/+source/grub2-unsigned/+bug/2054127

(From OE-Core rev: dc10bf2f9dd91cbd34af43162b61736fc26aa314)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Peter Marko
ca3783f70d gstreamer1.0: ignore CVE-2025-2759
Copy statement from [1] that it is problem of installers (non-Linux).
Also [2] linked in NVD says "Fixed in 1.25.1 Gstreamer Installer".
Since Yocto builds from sources into our own packages, ignore it.

[1] https://security-tracker.debian.org/tracker/CVE-2025-2759
[2] https://www.zerodayinitiative.com/advisories/ZDI-25-268/

(From OE-Core rev: 99ee1df6bde2ffd4fa2ddea44c0a9b94d9d77bae)

Reworked to CVE_CHECK_IGNORE format.

(From OE-Core rev: 2162bc3b305a0b088018e251baad54c356f7855f)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Peter Marko
b5a57a04eb gstreamer1.0: ignore CVEs fixed in plugins
All these CVEs were fixed in recent commits.

(From OE-Core rev: 86f48cdb1b26b6e234dde10b1e636e54e8a7e71f)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Vijay Anusuri
ed56389e82 tiff: Fix CVE-2025-9165
Upstream-Commit: ed141286a3

(From OE-Core rev: 08823f96a400055e5924bae3af0d2dfaf488148b)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Vijay Anusuri
4a1254610c tiff: Fix CVE-2025-8961
Upstream-Status: Backport from 0ac97aa7a5

(From OE-Core rev: 8d956d80f0eae39f9de68c0cd5a361c69b47cda4)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Vijay Anusuri
4ef41425c6 libxslt: Patch for CVE-2025-7424
This patch is taken from the upstream bug, and is used by Apple in their
build of WebKit.

Origin: https://gitlab.gnome.org/-/project/1762/uploads/627ae84cb0643d9adf6e5c86947f6be6/gnome-libxslt-bug-139-apple-fix.diff

Ref: https://gitlab.gnome.org/GNOME/libxslt/-/issues/139

(From OE-Core rev: 2e2fa1ae7f24dadae9cb8371174aa7744aa42028)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Peter Marko
db50dd87bc busybox: patch CVE-2025-46394
Pick commit mentioning this CVE.
Additionally fix test broken by the CVE fix.

(From OE-Core rev: 137299edbc47e8a57173ef3c22bcb719d48d5302)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Vijay Anusuri
2b82706dc5 gstreamer1.0-plugins-bad: Fix CVE-2025-3887
Upstream-Status: Backport from
5463f0e097
& bcaab36098

(From OE-Core rev: a35bdbdb4d1dd77de7b85ab19d7354be6a11e8b2)

Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Theo GAIGE
bc7377a239 libxml2: fix CVE-2025-9714
Upstream-Status: Backport from 677a42645e

(From OE-Core rev: 277692c2472f03ae62401bfbd26e8c4d872113d0)

Signed-off-by: Theo GAIGE <tgaige.opensource@witekio.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-14 07:20:35 -07:00
Adam Blank
7f12221f49 ref-manual/variables.rst: fix the description of STAGING_DIR
There is no single "recipe-sysroots" directory, but rather many
"recipe-sysroot*" directories.

(From yocto-docs rev: eca2cb23eb1fd4186d1f5cadc3280d73e8f52631)

Signed-off-by: Adam Blank <adam.blank.g@gmail.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit f2d6e228409cb1dd1dbf339c405699ac6d3900be)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 10:09:02 -07:00
Antonin Godard
11d8b290dd ref-manual/structure: document the auto.conf file
Add documentation for auto.conf, which is used by external tools for
automatically setting variables.

(From yocto-docs rev: 707b29352838792c635b39c8b5c20c519b10b832)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 134e54a75e0144c4629f702c6f43e92ed1f12dce)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 10:09:02 -07:00
Talel BELHAJ SALEM
55c58356f1 dev-manual/building.rst: add note about externalsrc variables absolute paths
(From yocto-docs rev: a0ffc6296e7349367fa6e6e615b74e2017a1a67e)

Signed-off-by: Talel BELHAJ SALEM <bhstalel@gmail.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 33166d70b6ad093bd95ffccafc0b07820682f656)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 10:09:02 -07:00
Adam Blank
3c3b5d0fe9 ref-manual/variables.rst: fix the description of KBUILD_DEFCONFIG
Remove some leftover confusing mention of KMACHINE.

(From yocto-docs rev: 972f61f12f2b33fc518cf8c3e3da5bf71e1b1cb9)

Signed-off-by: Adam Blank <adam.blank.g@gmail.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 582ee9e0b4930aea03255542b3d3913df19af8b0)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 10:09:02 -07:00
Adam Blank
3ff44348f7 kernel-dev/common.rst: fix the in-tree defconfig description
The description of the relation between KBUILD_DEFCONFIG and
SRC_URI is reversed. In fact it is the SRC_URI provided
defconfig which will be dropped by the kernel-yocto class
if both are provided.

(From yocto-docs rev: 6efc3ca5491722072fd394bae92d827791ef6bc3)

Signed-off-by: Adam Blank <adam.blank.g@gmail.com>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit a808420655a0976ba08f013f468cf80f379b1d89)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 10:09:02 -07:00
Antonin Godard
1f6c798015 test-manual/yocto-project-compatible.rst: fix a typo
Fix a typo in yocto-project-compatible.rst.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
(From yocto-docs rev: 95f31030628d0f7681401b1de6fb8e7a362963c1)

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit a84c234acfedfa714419006c743405e2f9acaedc)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:18 -07:00
Quentin Schulz
fd0df2cb78 contributor-guide: submit-changes: make "Crediting contributors" part of "Commit your changes"
There's no need to differentiate crediting contributors from committing
your changes, so let's simply make it the last step of "Commit your
changes" section.

This simply indents the text so it's now part of "Commit your changes"
list instead of the main list in the "Implement and commit changes"
section. Because of this reorganisation, the instruction to use "git
commit --amend" to add the contributors is moved to a note, and the
first few sentences are reworded to better match the wording of other
items in the "Commit your changes" list of instructions.

(From yocto-docs rev: 5ce7ae8f655f45dec80e68398911f117920f5eb2)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit eff4d14e28d323ebfdaeb0c5c805b5f1e2ad153d)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:18 -07:00
Quentin Schulz
ffd5cd98d6 contributor-guide: submit-changes: number instruction list in commit your changes
... so that it's clear that you need to read and follow each and every
instruction in this list.

(From yocto-docs rev: 4799ffa5170a5f9e12350634bcdfca6f531ea937)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit c628a489f081925fabaabb5acac6752251150269)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Quentin Schulz
794b42f01a contributor-guide: submit-changes: reword commit message instructions
This should hopefully make it clearer what is expected from the
contributor.

This follows my understanding of git-commit(1)[1] where the following is
a git commit message:

"""
git commit title

git commit description
"""

I'm putting the "Fixes [YOCTO" line in "body of the commit message" so
it's understood as being different from the git commit description so
that the note admonition allowing us to have an empty commit description
doesn't apply to the "Fixes [YOCTO" line.

[1] https://www.man7.org/linux/man-pages/man1/git-commit.1.html#DISCUSSION

(From yocto-docs rev: f817ef5542adc2ce830e22dd04424b9d5d5ed5c5)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit b84903a760350bd118c56ea9ce4e98039edf6e55)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Quentin Schulz
11999973cb contributor-guide: submit-changes: make the Cc tag follow kernel guidelines
The kernel docs specifies[1] a Cc: tag and not CC: tag, so let's align
with that.

[1] https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by

(From yocto-docs rev: 87721121d9dc95e2de110cadee4538e2ea4ff7c3)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit f800fef4e9e2c1d3584ac49be8324638d2923b17)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Quentin Schulz
49a5ab4d5f contributor-guide: submit-changes: align CC tag description
The other tag descriptions have the double colon outside of the
highlight, and start the sentence with a lowercase word, so let's align
the CC tag with those.

(From yocto-docs rev: 9764dc8ff26883684f3e993cfa821116ee2e6d95)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit f116e93fb335e9d0f85891c4cb501bcf55b18ccf)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Quentin Schulz
d153a3dc36 contributor-guide: submit-changes: clarify example with Yocto bug ID
The example could be understood as the content of the commit message
once the editor (git config core.editor) opens, where the first
line is the actual commit title and not the commit description.

This example would make the Fixes line the commit title, which is not
what we want.

In short, according to my understanding of git-commit(1):

The following is a git commit message:

"""
git commit title

git commit description
"""

Reported-by: Barne Carstensen <barne.carstensen@danfoss.com>
(From yocto-docs rev: db54a8bd56f38c532498e0f624fcceb60d2b9ea7)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit a5862406bf3230befe9db9f2539bbbc86c02015d)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Quentin Schulz
2399c63ca5 contributor-guide: submit-changes: fix improper bold string
I don't know what was the initial intent but this doesn't seem right, so
let's remove the bold formatting.

Fixes: 4abe87cb20d3 ("contributor-guide: submit-changes: detail commit and patch creation")
Cc: Michael Opdenacker <michael.opdenacker@rootcommit.com>
(From yocto-docs rev: 508a1b7d905dabe8a36361da8e346040db4cca2a)

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
(cherry picked from commit 6c499b3796a578a0fe4c319c9547b4321b0d41df)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Gyorgy Sarvari
866395041f libhandy: update git branch name
Master branch was renamed to main.

(From OE-Core rev: 2285f30e643f52511c328e4f6e1f0c042bea4110)

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Soumya Sambu
6303a9d5b5 python3-jinja2: upgrade 3.1.4 -> 3.1.6
Includes fix for - CVE-2024-56326, CVE-2025-27516, CVE-2024-56201

Changelog:
https://github.com/pallets/jinja/blob/3.1.6/CHANGES.rst
https://github.com/pallets/jinja/blob/3.1.5/CHANGES.rst

(From OE-Core rev: a935ef8f205c9510ebc5539c133960bc72504902)

(From OE-Core rev: 7108dccff524888d77f0e5e02d9cc4523a700a91)

Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Divya Chellam
1811a2d13e vim: upgrade 9.1.1652 -> 9.1.1683
Handles CVE-2025-9389

Changes between 9.1.1652 -> 9.1.1683
====================================
https://github.com/vim/vim/compare/v9.1.1652...v9.1.1683

(From OE-Core rev: 24b7e7f719ca600a88aa893b87f6ea821caeadce)

Signed-off-by: Divya Chellam <divya.chellam@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Yogita Urade
15dd68bda1 tiff: fix CVE-2025-9900
A flaw was found in Libtiff. This vulnerability is a "write-what-where"
condition, triggered when the library processes a specially crafted TIFF
image file.[EOL][EOL]By providing an abnormally large image height value
in the file's metadata, an attacker can trick the library into writing
attacker-controlled color data to an arbitrary memory location. This
memory corruption can be exploited to cause a denial of service (application
crash) or to achieve arbitrary code execution with the permissions of the user.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-9900

Upstream patch:
3e0dcf0ec6

(From OE-Core rev: f4e5cdeccee02d3ea78db91d5dfdcfd017c40ee0)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Yogita Urade
9c9c706252 curl: fix CVE-2025-9086
1, A cookie is set using the secure keyword for https://target
2, curl is redirected to or otherwise made to speak with http://target
(same hostname, but using clear text HTTP) using the same cookie set
3, The same cookie name is set - but with just a slash as path (path="/").
Since this site is not secure, the cookie should just be ignored.
4, A bug in the path comparison logic makes curl read outside a heap buffer boundary

The bug either causes a crash or it potentially makes the comparison come to
the wrong conclusion and lets the clear-text site override the contents of
the secure cookie, contrary to expectations and depending on the memory contents
immediately following the single-byte allocation that holds the path.

The presumed and correct behavior would be to plainly ignore the second set of
the cookie since it was already set as secure on a secure host so overriding
it on an insecure host should not be okay.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-9086

Upstream patch:
https://github.com/curl/curl/commit/c6ae07c6a541e0e96d0040afb6

(From OE-Core rev: dc842a631b178acd9c4f00c4a3b87831baf08ebb)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Yogita Urade
d2a96dd89c grub2: fix CVE-2024-56738
Backport an algorithmic change to grub_crypto_memcmp() so that it
completes in constant time and thus isn't susceptible to side-channel
attacks.

reference:
https://git.openembedded.org/openembedded-core/commit/?id=30a1cc225a2bd5d044bf608d863a67df3f9c03be

Upstream patch:
https://cgit.git.savannah.gnu.org/cgit/grub.git/commit/?id=0739d24cd1648531d0708d1079ff6bbfa6140268

(From OE-Core rev: d6572d29892b7da593acafe3af68cf98230acf04)

Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
Praveen Kumar
9ae3736eb4 go: fix CVE-2025-47907
Cancelling a query (e.g. by cancelling the context passed to one of
the query methods) during a call to the Scan method of the returned
Rows can result in unexpected results if other queries are being made
in parallel. This can result in a race condition that may overwrite
the expected results with those of another query, causing the call to
Scan to return either unexpected results from the other query or an
error.

Made below changes for Go 1.17 backport:
- Replaced `atomic.Pointer[error]` with `atomic.Value`, since
  atomic pointers are not supported in Go 1.17.
- Used errp.(*error) to retrieve and dereference
  the stored *error, Without this, build fails with:
  invalid indirect of errp (type interface{}).
- Replaced Go 1.18 `any` keyword with `interface{}` for backward
  compatibility with Go 1.17.

Reference:
https://nvd.nist.gov/vuln/detail/CVE-2025-47907

Upstream-patch:
8a924caaf3
298fe517a9
c23579f031

(From OE-Core rev: af9c43c39764ce9ce37785c44dfb83e25cb24703)

Signed-off-by: Praveen Kumar <praveen.kumar@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
2025-10-03 09:51:17 -07:00
254 changed files with 20072 additions and 1392 deletions

View File

@@ -221,6 +221,20 @@ Recipes need to define both the :term:`LICENSE` and
``meta/files/common-licenses/`` or the :term:`SPDXLICENSEMAP` flag names
defined in ``meta/conf/licenses.conf``.
.. note::
Setting a :term:`LICENSE` in a recipe applies to the software to be built
by this recipe, not to the recipe file itself. The license of recipes,
configuration files and scripts should also be clearly specified, for
example via comments or via a license found in the :term:`layer` that
holds these files. These license files are usually found at the root of
the layer. Exceptions should be clearly stated in the layer README or
LICENSE file.
For example, the :term:`OpenEmbedded-Core (OE-Core)` layer provides both
the GPL-2.0-only and MIT license files, and a "LICENSE" file to explain
how these two licenses are attributed to files found in the layer.
- :term:`LIC_FILES_CHKSUM`: The OpenEmbedded build system uses this
variable to make sure the license text has not changed. If it has,
the build produces an error and it affords you the chance to figure

View File

@@ -123,110 +123,116 @@ to add the upgraded version.
$ git commit -s file1 file2 dir1 dir2 ...
To include **a**\ ll staged files::
To include all staged files::
$ git commit -sa
- The ``-s`` option of ``git commit`` adds a "Signed-off-by:" line
to your commit message. There is the same requirement for contributing
to the Linux kernel. Adding such a line signifies that you, the
submitter, have agreed to the `Developer's Certificate of Origin 1.1
<https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin>`__
as follows:
#. The ``-s`` option of ``git commit`` adds a "Signed-off-by:" line
to your commit message. There is the same requirement for contributing
to the Linux kernel. Adding such a line signifies that you, the
submitter, have agreed to the `Developer's Certificate of Origin 1.1
<https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin>`__
as follows:
.. code-block:: none
.. code-block:: none
Developer's Certificate of Origin 1.1
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
- Provide a single-line summary of the change and, if more
explanation is needed, provide more detail in the body of the
commit. This summary is typically viewable in the "shortlist" of
changes. Thus, providing something short and descriptive that
gives the reader a summary of the change is useful when viewing a
list of many commits. You should prefix this short description
with the recipe name (if changing a recipe), or else with the
short form path to the file being changed.
#. Provide a single-line summary of the change and, if more
explanation is needed, provide more detail in the description of the
commit. This summary is typically viewable in the "shortlist" of
changes. Thus, providing something short and descriptive that
gives the reader a summary of the change is useful when viewing a
list of many commits. You should prefix this short description
with the recipe name (if changing a recipe), or else with the
short form path to the file being changed.
.. note::
To find a suitable prefix for the commit summary, a good idea
is to look for prefixes used in previous commits touching the
same files or directories::
git log --oneline <paths>
#. For the commit description, provide detailed information
that describes what you changed, why you made the change, and the
approach you used. It might also be helpful if you mention how you
tested the change. Provide as much detail as you can in the commit
description.
.. note::
If the single line summary is enough to describe a simple
change, the commit description can be left empty.
#. If the change addresses a specific bug or issue that is associated
with a bug-tracking ID, include a reference to that ID in the body of the
commit message. For example, the Yocto Project uses a
specific convention for bug references --- any commit that addresses
a specific bug should use the following form for the body of the commit
message. Be sure to use the actual bug-tracking ID from
Bugzilla for bug-id::
single-line summary of change
Fixes [YOCTO #bug-id]
detailed description of change
#. If other people participated in this patch, add some tags to the commit
description to credit other contributors to the change:
- ``Reported-by``: name and email of a person reporting a bug
that your commit is trying to fix. This is a good practice
to encourage people to go on reporting bugs and let them
know that their reports are taken into account.
- ``Suggested-by``: name and email of a person to credit for the
idea of making the change.
- ``Tested-by``, ``Reviewed-by``: name and email for people having
tested your changes or reviewed their code. These fields are
usually added by the maintainer accepting a patch, or by
yourself if you submitted your patches to early reviewers,
or are submitting an unmodified patch again as part of a
new iteration of your patch series.
- ``Cc``: name and email of people you want to send a copy
of your changes to. This field will be used by ``git send-email``.
See `more guidance about using such tags
<https://www.kernel.org/doc/html/latest/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes>`__
in the Linux kernel documentation.
.. note::
To find a suitable prefix for the commit summary, a good idea
is to look for prefixes used in previous commits touching the
same files or directories::
git log --oneline <paths>
- For the body of the commit message, provide detailed information
that describes what you changed, why you made the change, and the
approach you used. It might also be helpful if you mention how you
tested the change. Provide as much detail as you can in the body
of the commit message.
.. note::
If the single line summary is enough to describe a simple
change, the body of the commit message can be left empty.
- If the change addresses a specific bug or issue that is associated
with a bug-tracking ID, include a reference to that ID in your
detailed description. For example, the Yocto Project uses a
specific convention for bug references --- any commit that addresses
a specific bug should use the following form for the detailed
description. Be sure to use the actual bug-tracking ID from
Bugzilla for bug-id::
Fixes [YOCTO #bug-id]
detailed description of change
#. *Crediting contributors:* By using the ``git commit --amend`` command,
you can add some tags to the commit description to credit other contributors
to the change:
- ``Reported-by``: name and email of a person reporting a bug
that your commit is trying to fix. This is a good practice
to encourage people to go on reporting bugs and let them
know that their reports are taken into account.
- ``Suggested-by``: name and email of a person to credit for the
idea of making the change.
- ``Tested-by``, ``Reviewed-by``: name and email for people having
tested your changes or reviewed their code. These fields are
usually added by the maintainer accepting a patch, or by
yourself if you submitted your patches to early reviewers,
or are submitting an unmodified patch again as part of a
new iteration of your patch series.
- ``CC:`` Name and email of people you want to send a copy
of your changes to. This field will be used by ``git send-email``.
See `more guidance about using such tags
<https://www.kernel.org/doc/html/latest/process/submitting-patches.html#using-reported-by-tested-by-reviewed-by-suggested-by-and-fixes>`__
in the Linux kernel documentation.
One can amend an existing git commit message to add missing tags for
contributors with the ``git commit --amend`` command.
Test your changes
-----------------
@@ -650,8 +656,8 @@ backported to a stable branch unless the bug in question does not affect the
master branch or the fix on the master branch is unsuitable for backporting.
The list of stable branches along with the status and maintainer for each
branch can be obtained from the
:yocto_wiki:`Releases wiki page </Releases>`.
branch can be obtained from the :yocto_home:`Releases </development/releases/>`
page.
.. note::

View File

@@ -909,6 +909,11 @@ to point to that directory::
EXTERNALSRC_BUILD:pn-myrecipe = "path-to-your-source-tree"
.. note::
The values of :term:`EXTERNALSRC` and :term:`EXTERNALSRC_BUILD`
must be absolute paths.
Replicating a Build Offline
===========================

View File

@@ -111,17 +111,17 @@ occurred in your project. Perhaps an attempt to :ref:`modify a variable
<bitbake-user-manual/bitbake-user-manual-metadata:modifying existing
variables>` did not work out as expected.
BitBake's ``-e`` option is used to display variable values after
parsing. The following command displays the variable values after the
configuration files (i.e. ``local.conf``, ``bblayers.conf``,
BitBake's ``bitbake-getvar`` command is used to display variable values after
parsing. The following command displays the variable value for :term:`OVERRIDES`
after the configuration files (i.e. ``local.conf``, ``bblayers.conf``,
``bitbake.conf`` and so forth) have been parsed::
$ bitbake -e
$ bitbake-getvar OVERRIDES
The following command displays variable values after a specific recipe has
been parsed. The variables include those from the configuration as well::
The following command displays the value of :term:`PV` after a specific recipe
has been parsed::
$ bitbake -e recipename
$ bitbake-getvar -r recipename PV
.. note::
@@ -135,19 +135,25 @@ been parsed. The variables include those from the configuration as well::
the recipe datastore, which means that variables set within one task
will not be visible to other tasks.
In the output of ``bitbake -e``, each variable is preceded by a
description of how the variable got its value, including temporary
values that were later overridden. This description also includes
variable flags (varflags) set on the variable. The output can be very
In the output of ``bitbake-getvar``, the line containing the value of the
variable is preceded by a description of how the variable got its value,
including temporary values that were later overridden. This description also
includes variable flags (varflags) set on the variable. The output can be very
helpful during debugging.
Variables that are exported to the environment are preceded by
``export`` in the output of ``bitbake -e``. See the following example::
``export`` in the output of ``bitbake-getvar``. See the following example::
export CC="i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/ulf/poky/build/tmp/sysroots/qemux86"
In addition to variable values, the output of the ``bitbake -e`` and
``bitbake -e`` recipe commands includes the following information:
Shell functions and tasks can also be inspected with the same mechanism::
$ bitbake-getvar -r recipename do_install
For Python functions and tasks, ``bitbake -e recipename`` can be used instead.
Moreover, the output of the ``bitbake -e`` and ``bitbake -e`` recipe commands
includes the following information:
- The output starts with a tree listing all configuration files and
classes included globally, recursively listing the files they include

View File

@@ -41,7 +41,6 @@ Yocto Project Development Tasks Manual
build-quality
debugging
licenses
security-subjects
vulnerabilities
sbom
error-reporting-tool

View File

@@ -123,10 +123,9 @@ Follow these general steps to create your layer without using tools:
Lists all layers on which this layer depends (if any).
- :term:`LAYERSERIES_COMPAT`:
Lists the :yocto_wiki:`Yocto Project </Releases>`
releases for which the current version is compatible. This
variable is a good way to indicate if your particular layer is
current.
Lists the :yocto_home:`Yocto Project releases </development/releases/>`
for which the current version is compatible. This variable is a good
way to indicate if your particular layer is current.
.. note::
@@ -822,6 +821,8 @@ The following list describes the available commands:
- ``create-layer``: Creates a basic layer.
- ``show-machines``: Lists the machines available in the currently configured layers.
Creating a General Layer Using the ``bitbake-layers`` Script
============================================================

View File

@@ -83,19 +83,20 @@ command::
OpenEmbedded recipe tool
options:
-d, --debug Enable debug output
-q, --quiet Print only errors
--color COLOR Colorize output (where COLOR is auto, always, never)
-h, --help show this help message and exit
-d, --debug Enable debug output
-q, --quiet Print only errors
--color COLOR Colorize output (where COLOR is auto, always, never)
-h, --help show this help message and exit
subcommands:
create Create a new recipe
newappend Create a bbappend for the specified target in the specified
layer
setvar Set a variable within a recipe
appendfile Create/update a bbappend to replace a target file
appendsrcfiles Create/update a bbappend to add or replace source files
appendsrcfile Create/update a bbappend to add or replace a source file
newappend Create a bbappend for the specified target in the specified layer
create Create a new recipe
setvar Set a variable within a recipe
appendfile Create/update a bbappend to replace a target file
appendsrcfiles Create/update a bbappend to add or replace source files
appendsrcfile Create/update a bbappend to add or replace a source file
edit Edit the recipe and appends for the specified target. This obeys $VISUAL if set,
otherwise $EDITOR, otherwise vi.
Use recipetool <subcommand> --help to get help on a specific command
Running ``recipetool create -o OUTFILE`` creates the base recipe and
@@ -218,9 +219,9 @@ compilation and packaging files, and so forth.
The path to the per-recipe temporary work directory depends on the
context in which it is being built. The quickest way to find this path
is to have BitBake return it by running the following::
is to use the ``bitbake-getvar`` utility::
$ bitbake -e basename | grep ^WORKDIR=
$ bitbake-getvar -r basename WORKDIR
As an example, assume a Source Directory
top-level folder named ``poky``, a default :term:`Build Directory` at
@@ -438,7 +439,7 @@ Licensing
=========
Your recipe needs to define variables related to the license
under whith the software is distributed. See the
under which the software is distributed. See the
:ref:`contributor-guide/recipe-style-guide:recipe license fields`
section in the Contributor Guide for details.

View File

@@ -279,8 +279,23 @@ with a number. The number used depends on the state of the PR Service:
.. code-block:: none
hello-world-git_0.0+git0+b6558dd387-r0.0_armv7a-neon.ipk
hello-world-git_0.0+git1+dd2f5c3565-r0.0_armv7a-neon.ipk
hello-world-git_1.0+git0+b6558dd387-r0.0_armv7a-neon.ipk
hello-world-git_1.0+git1+dd2f5c3565-r0.1_armv7a-neon.ipk
Two numbers got incremented here:
- ``gitX`` changed from ``git0`` to ``git1``. This is because there was a
change in the source code (``SRCREV``).
- ``r0.X`` changed from ``r0.0`` to ``r0.1``. This is because the hash of
the :ref:`ref-tasks-package` task changed.
The reason for this change can be many. To understand why the hash of the
:ref:`ref-tasks-package` task changed, you can run the following command:
.. code-block:: console
$ bitbake-diffsigs -t hello-world package
- If PR Service is not enabled, the build system replaces the
``AUTOINC`` placeholder with zero (i.e. "0"). This results in
@@ -290,8 +305,8 @@ with a number. The number used depends on the state of the PR Service:
.. code-block:: none
hello-world-git_0.0+git0+b6558dd387-r0.0_armv7a-neon.ipk
hello-world-git_0.0+git0+dd2f5c3565-r0.0_armv7a-neon.ipk
hello-world-git_1.0+git0+b6558dd387-r0_armv7a-neon.ipk
hello-world-git_1.0+git0+dd2f5c3565-r0_armv7a-neon.ipk
In summary, the OpenEmbedded build system does not track the history of
binary package versions for this purpose. ``AUTOINC``, in this case, is

View File

@@ -1,194 +0,0 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Dealing with Vulnerability Reports
**********************************
The Yocto Project and OpenEmbedded are open-source, community-based projects
used in numerous products. They assemble multiple other open-source projects,
and need to handle security issues and practices both internal (in the code
maintained by both projects), and external (maintained by other projects and
organizations).
This manual assembles security-related information concerning the whole
ecosystem. It includes information on reporting a potential security issue,
the operation of the YP Security team and how to contribute in the
related code. It is written to be useful for both security researchers and
YP developers.
How to report a potential security vulnerability?
=================================================
If you would like to report a public issue (for example, one with a released
CVE number), please report it using the
:yocto_bugs:`Security Bugzilla </enter_bug.cgi?product=Security>`.
If you are dealing with a not-yet-released issue, or an urgent one, please send
a message to security AT yoctoproject DOT org, including as many details as
possible: the layer or software module affected, the recipe and its version,
and any example code, if available. This mailing list is monitored by the
Yocto Project Security team.
For each layer, you might also look for specific instructions (if any) for
reporting potential security issues in the specific ``SECURITY.md`` file at the
root of the repository. Instructions on how and where submit a patch are
usually available in ``README.md``. If this is your first patch to the
Yocto Project/OpenEmbedded, you might want to have a look into the
Contributor's Manual section
":ref:`contributor-guide/submit-changes:preparing changes for submission`".
Branches maintained with security fixes
---------------------------------------
See the
:ref:`Release process <ref-manual/release-process:Stable Release Process>`
documentation for details regarding the policies and maintenance of stable
branches.
The :yocto_wiki:`Releases page </Releases>` contains a list
of all releases of the Yocto Project. Versions in gray are no longer actively
maintained with security patches, but well-tested patches may still be accepted
for them for significant issues.
Security-related discussions at the Yocto Project
-------------------------------------------------
We have set up two security-related emails/mailing lists:
- Public Mailing List: yocto [dash] security [at] yoctoproject[dot] org
This is a public mailing list for anyone to subscribe to. This list is an
open list to discuss public security issues/patches and security-related
initiatives. For more information, including subscription information,
please see the :yocto_lists:`yocto-security mailing list info page
</g/yocto-security>`.
This list requires moderator approval for new topics to be posted, to avoid
private security reports to be posted by mistake.
- Yocto Project Security Team: security [at] yoctoproject [dot] org
This is an email for reporting non-published potential vulnerabilities.
Emails sent to this address are forwarded to the Yocto Project Security
Team members.
What you should do if you find a security vulnerability
-------------------------------------------------------
If you find a security flaw: a crash, an information leakage, or anything that
can have a security impact if exploited in any Open Source software built or
used by the Yocto Project, please report this to the Yocto Project Security
Team. If you prefer to contact the upstream project directly, please send a
copy to the security team at the Yocto Project as well. If you believe this is
highly sensitive information, please report the vulnerability in a secure way,
i.e. encrypt the email and send it to the private list. This ensures that
the exploit is not leaked and exploited before a response/fix has been generated.
Security team
=============
The Yocto Project/OpenEmbedded security team coordinates the work on security
subjects in the project. All general discussion takes place publicly. The
Security Team only uses confidential communication tools to deal with private
vulnerability reports before they are released.
Security team appointment
-------------------------
The Yocto Project Security Team consists of at least three members. When new
members are needed, the Yocto Project Technical Steering Committee (YP TSC)
asks for nominations by public channels including a nomination deadline.
Self-nominations are possible. When the limit time is
reached, the YP TSC posts the list of candidates for the comments of project
participants and developers. Comments may be sent publicly or privately to the
YP and OE TSCs. The candidates are approved by both YP TSC and OpenEmbedded
Technical Steering Committee (OE TSC) and the final list of the team members
is announced publicly. The aim is to have people representing technical
leadership, security knowledge and infrastructure present with enough people
to provide backup/coverage but keep the notification list small enough to
minimize information risk and maintain trust.
YP Security Team members may resign at any time.
Security Team Operations
------------------------
The work of the Security Team might require high confidentiality. Team members
are individuals selected by merit and do not represent the companies they work
for. They do not share information about confidential issues outside of the team
and do not hint about ongoing embargoes.
Team members can bring in domain experts as needed. Those people should be
added to individual issues only and adhere to the same standards as the YP
Security Team.
The YP security team organizes its meetings and communication as needed.
When the YP Security team receives a report about a potential security
vulnerability, they quickly analyze and notify the reporter of the result.
They might also request more information.
If the issue is confirmed and affects the code maintained by the YP, they
confidentially notify maintainers of that code and work with them to prepare
a fix.
If the issue is confirmed and affects an upstream project, the YP security team
notifies the project. Usually, the upstream project analyzes the problem again.
If they deem it a real security problem in their software, they develop and
release a fix following their security policy. They may want to include the
original reporter in the loop. There is also sometimes some coordination for
handling patches, backporting patches etc, or just understanding the problem
or what caused it.
When the fix is publicly available, the YP security team member or the
package maintainer sends patches against the YP code base, following usual
procedures, including public code review.
What Yocto Security Team does when it receives a security vulnerability
-----------------------------------------------------------------------
The YP Security Team team performs a quick analysis and would usually report
the flaw to the upstream project. Normally the upstream project analyzes the
problem. If they deem it a real security problem in their software, they
develop and release a fix following their own security policy. They may want
to include the original reporter in the loop. There is also sometimes some
coordination for handling patches, backporting patches etc, or just
understanding the problem or what caused it.
The security policy of the upstream project might include a notification to
Linux distributions or other important downstream projects in advance to
discuss coordinated disclosure. These mailing lists are normally non-public.
When the upstream project releases a version with the fix, they are responsible
for contacting `Mitre <https://www.cve.org/>`__ to get a CVE number assigned and
the CVE record published.
If an upstream project does not respond quickly
-----------------------------------------------
If an upstream project does not fix the problem in a reasonable time,
the Yocto's Security Team will contact other interested parties (usually
other distributions) in the community and together try to solve the
vulnerability as quickly as possible.
The Yocto Project Security team adheres to the 90 days disclosure policy
by default. An increase of the embargo time is possible when necessary.
Current Security Team members
-----------------------------
For secure communications, please send your messages encrypted using the GPG
keys. Remember, message headers are not encrypted so do not include sensitive
information in the subject line.
- Ross Burton: <ross@burtonini.com> `Public key <https://keys.openpgp.org/search?q=ross%40burtonini.com>`__
- Michael Halstead: <mhalstead [at] linuxfoundation [dot] org>
`Public key <https://pgp.mit.edu/pks/lookup?op=vindex&search=0x3373170601861969>`__
or `Public key <https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xd1f2407285e571ed12a407a73373170601861969>`__
- Richard Purdie: <richard.purdie@linuxfoundation.org> `Public key <https://keys.openpgp.org/search?q=richard.purdie%40linuxfoundation.org>`__
- Marta Rybczynska: <marta DOT rybczynska [at] syslinbit [dot] com> `Public key <https://keys.openpgp.org/search?q=marta.rybczynska@syslinbit.com>`__
- Steve Sakoman: <steve [at] sakoman [dot] com> `Public key <https://keys.openpgp.org/search?q=steve%40sakoman.com>`__

View File

@@ -676,7 +676,7 @@ described in the ":ref:`dev-manual/start:accessing index of releases`" section.
.. note::
For a "map" of Yocto Project releases to version numbers, see the
:yocto_wiki:`Releases </Releases>` wiki page.
:yocto_home:`Releases </development/releases/>` page.
You can use the "RELEASE ARCHIVE" link to reveal a menu of all Yocto
Project releases.

View File

@@ -12,7 +12,7 @@ known security vulnerabilities, as tracked by the public
database.
The Yocto Project maintains a `list of known vulnerabilities
<https://autobuilder.yocto.io/pub/non-release/patchmetrics/>`__
<https://valkyrie.yocto.io/pub/non-release/patchmetrics/>`__
for packages in Poky and OE-Core, tracking the evolution of the number of
unpatched CVEs and the status of patches. Such information is available for
the current development version and for each supported release.
@@ -235,7 +235,7 @@ products defined in :term:`CVE_PRODUCT`. Then, for each found CVE:
The CVE database is stored in :term:`DL_DIR` and can be inspected using
``sqlite3`` command as follows::
sqlite3 downloads/CVE_CHECK/nvdcve_1.1.db .dump | grep CVE-2021-37462
sqlite3 downloads/CVE_CHECK/nvd*.db .dump | grep CVE-2021-37462
When analyzing CVEs, it is recommended to:

View File

@@ -20,7 +20,6 @@ Welcome to the Yocto Project Documentation
Yocto Project Software Overview <https://www.yoctoproject.org/software-overview/>
Tips and Tricks Wiki <https://wiki.yoctoproject.org/wiki/TipsAndTricks>
.. toctree::
:maxdepth: 1
:caption: Manuals
@@ -37,6 +36,12 @@ Welcome to the Yocto Project Documentation
Test Environment Manual <test-manual/index>
bitbake
.. toctree::
:maxdepth: 1
:caption: Security
Yocto Project Security Reference <security-reference/index>
.. toctree::
:maxdepth: 1
:caption: Release Manuals

View File

@@ -724,13 +724,9 @@ a Raspberry Pi 2, which is based on the Broadcom 2708/2709 chipset::
KBUILD_DEFCONFIG:raspberrypi2 ?= "bcm2709_defconfig"
Aside from modifying your kernel recipe and providing your own
``defconfig`` file, you need to be sure no files or statements set
:term:`SRC_URI` to use a ``defconfig`` other than your "in-tree" file (e.g.
a kernel's ``linux-``\ `machine`\ ``.inc`` file). In other words, if the
build system detects a statement that identifies an "out-of-tree"
``defconfig`` file, that statement will override your
:term:`KBUILD_DEFCONFIG` variable.
If the build system detects a statement that identifies an "out-of-tree"
``defconfig`` file, your :term:`KBUILD_DEFCONFIG` variable will take precedence
over it.
See the
:term:`KBUILD_DEFCONFIG`
@@ -1276,10 +1272,12 @@ appear in the ``.config`` file, which is in the :term:`Build Directory`.
It is simple to create a configuration fragment. One method is to use
shell commands. For example, issuing the following from the shell
creates a configuration fragment file named ``my_smp.cfg`` that enables
multi-processor support within the kernel::
creates a configuration fragment file named ``my_changes.cfg`` that enables
multi-processor support within the kernel and disables the FPGA
Configuration Framework::
$ echo "CONFIG_SMP=y" >> my_smp.cfg
$ echo "CONFIG_SMP=y" >> my_changes.cfg
$ echo "# CONFIG_FPGA is not set" >> my_changes.cfg
.. note::
@@ -1516,15 +1514,13 @@ Expanding Variables
===================
Sometimes it is helpful to determine what a variable expands to during a
build. You can examine the values of variables by examining the
output of the ``bitbake -e`` command. The output is long and is more
easily managed in a text file, which allows for easy searches::
build. You can examine the value of a variable by running the ``bitbake-getvar``
command::
$ bitbake -e virtual/kernel > some_text_file
$ bitbake-getvar -r virtual/kernel VARIABLE
Within the text file, you can see
exactly how each variable is expanded and used by the OpenEmbedded build
system.
The output of the command explains exactly how the variable is expanded and used
by the :term:`OpenEmbedded Build System`.
Working with a "Dirty" Kernel Version String
============================================

View File

@@ -36,3 +36,6 @@ Release 4.0 (kirkstone)
release-notes-4.0.27
release-notes-4.0.28
release-notes-4.0.29
release-notes-4.0.30
release-notes-4.0.31
release-notes-4.0.32

View File

@@ -0,0 +1,170 @@
Release notes for Yocto-4.0.30 (Kirkstone)
------------------------------------------
Security Fixes in Yocto-4.0.30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- cups: Fix :cve_nist:`2025-58060` and :cve_nist:`2025-58364`
- dpkg: Fix :cve_nist:`2025-6297`
- ffmpeg: Fix :cve_nist:`2023-6602`, :cve_nist:`2023-6604`, :cve_nist:`2023-6605`,
:cve_nist:`2025-1594` and CVE-2025-7700
- git: Fix :cve_nist:`2025-27613`, :cve_nist:`2025-27614`, :cve_nist:`2025-46334`,
:cve_nist:`2025-46835` and :cve_nist:`2025-48384`
- glib-2.0: Fix :cve_nist:`2025-7039`
- glib-2.0: Ignore :cve_nist:`2025-4056`
- go: Ignore :cve_nist:`2024-24790` and :cve_nist:`2025-0913`
- gstreamer1.0-plugins-base: Fix :cve_nist:`2025-47806`, :cve_nist:`2025-47807` and
:cve_nist:`2025-47808`
- gstreamer1.0-plugins-good: Fix :cve_nist:`2025-47183` and :cve_nist:`2025-47219`
- libarchive: Fix :cve_nist:`2025-5918`
- libxslt: Fix :cve_nist:`2023-40403`
- openssl: Fix :cve_nist:`2023-50781`
- python3: Fix :cve_nist:`2025-8194`
- qemu: Ignore :cve_nist:`2024-7730`
- sqlite3: Revert "sqlite3: patch CVE-2025-7458"
- tiff: Fix :cve_nist:`2024-13978`, :cve_nist:`2025-8176`, :cve_nist:`2025-8177`,
:cve_nist:`2025-8534` and :cve_nist:`2025-8851`
- vim: Fix :cve_nist:`2025-53905` and :cve_nist:`2025-53906`
- wpa-supplicant: Fix :cve_nist:`2022-37660`
- xserver-xorg: Fix :cve_nist:`2025-49175`, :cve_nist:`2025-49176`, :cve_nist:`2025-49177`,
:cve_nist:`2025-49178`, :cve_nist:`2025-49179` and :cve_nist:`2025-49180`
Fixes in Yocto-4.0.30
~~~~~~~~~~~~~~~~~~~~~
- build-appliance-image: Update to kirkstone head revision
- default-distrovars.inc: Fix CONNECTIVITY_CHECK_URIS redirect issue
- dev-manual/security-subjects.rst: update mailing lists
- gnupg: disable tests to avoid running target binaries at build time
- go-helloworld: fix license
- insane: Ensure that `src-uri-bad` fails correctly
- insane: Improve patch warning/error handling
- libubootenv: backport patch to fix unknown type name 'size_t'
- llvm: fix typo in CVE-2024-0151.patch
- migration-guides: add release notes for 4.0.29
- overview-manual/yp-intro.rst: fix broken link to article
- poky.conf: bump version for 4.0.30
- pulseaudio: Add audio group explicitly
- ref-manual/classes.rst: document the testexport class
- ref-manual/system-requirements.rst: update supported distributions
- ref-manual/variables.rst: document :term:`FIT_CONF_PREFIX` :term:`SPL_DTB_BINARY` variable
- ref-manual/variables.rst: expand :term:`IMAGE_OVERHEAD_FACTOR` glossary entry
- sdk: The main in the C example should return an int
- sudo: remove devtool FIXME comment
- systemd: Fix manpage build after :cve_nist:`2025-4598`
- vim: not adjust script pathnames for native scripts either
- vim: upgrade to 9.1.1652
Known Issues in Yocto-4.0.30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-4.0.30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Antonin Godard
- Archana Polampalli
- Dan McGregor
- Deepak Rathore
- Divya Chellam
- Erik Lindsten
- Guocai He
- Gyorgy Sarvari
- Hitendra Prajapati
- Jan Vermaete
- Jiaying Song
- Joao Marcos Costa
- Kyungjik Min
- Lee Chee Yang
- Mingli Yu
- Peter Marko
- Philip Lorenz
- Praveen Kumar
- Quentin Schulz
- Richard Purdie
- Steve Sakoman
- Vijay Anusuri
- Yogita Urade
- Youngseok Jeong
Repositories / Downloads for Yocto-4.0.30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.30 </poky/log/?h=yocto-4.0.30>`
- Git Revision: :yocto_git:`51dc9c464de0703bfbc6f1ee71ac9bea20933a45 </poky/commit/?id=51dc9c464de0703bfbc6f1ee71ac9bea20933a45>`
- Release Artefact: poky-51dc9c464de0703bfbc6f1ee71ac9bea20933a45
- sha: 2b5db0a07598df7684975c0839e6f31515a8e78d366503feb9917ef1ca56c0b2
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.30/poky-51dc9c464de0703bfbc6f1ee71ac9bea20933a45.tar.bz2
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.30/poky-51dc9c464de0703bfbc6f1ee71ac9bea20933a45.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.30 </openembedded-core/log/?h=yocto-4.0.30>`
- Git Revision: :oe_git:`d381eeb5e70bd0ce9e78032c909e4a23564f4dd7 </openembedded-core/commit/?id=d381eeb5e70bd0ce9e78032c909e4a23564f4dd7>`
- Release Artefact: oecore-d381eeb5e70bd0ce9e78032c909e4a23564f4dd7
- sha: 022ab4ef5ac59ac3f01a9dacd8b1d6310cc117c6bed2e86e195ced88e0689c85
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.30/oecore-d381eeb5e70bd0ce9e78032c909e4a23564f4dd7.tar.bz2
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.30/oecore-d381eeb5e70bd0ce9e78032c909e4a23564f4dd7.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.30 </meta-mingw/log/?h=yocto-4.0.30>`
- Git Revision: :yocto_git:`87c22abb1f11be430caf4372e6b833dc7d77564e </meta-mingw/commit/?id=87c22abb1f11be430caf4372e6b833dc7d77564e>`
- Release Artefact: meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e
- sha: f0bc4873e2e0319fb9d6d6ab9b98eb3f89664d4339a167d2db6a787dd12bc1a8
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.30/meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e.tar.bz2
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.30/meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e.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.30 </meta-gplv2/log/?h=yocto-4.0.30>`
- Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
- Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
- sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.30/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.30/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.30 </bitbake/log/?h=yocto-4.0.30>`
- Git Revision: :oe_git:`8e2d1f8de055549b2101614d85454fcd1d0f94b2 </bitbake/commit/?id=8e2d1f8de055549b2101614d85454fcd1d0f94b2>`
- Release Artefact: bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2
- sha: fad4e7699bae62082118e89785324b031b0af0743064caee87c91ba28549afb0
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.30/bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2.tar.bz2
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.30/bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2.tar.bz2
meta-yocto
- Repository Location: :yocto_git:`/meta-yocto`
- Branch: :yocto_git:`kirkstone </meta-yocto/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.30 </meta-yocto/log/?h=yocto-4.0.30>`
- Git Revision: :yocto_git:`edf7950e4d81dd31f29a58acdd8022dabd2be494 </meta-yocto/commit/?id=edf7950e4d81dd31f29a58acdd8022dabd2be494>`
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.30 </yocto-docs/log/?h=yocto-4.0.30>`
- Git Revision: :yocto_git:`71a3933c609ce73ff07e5be48d9e7b03f22ef8d7 </yocto-docs/commit/?id=71a3933c609ce73ff07e5be48d9e7b03f22ef8d7>`

View File

@@ -0,0 +1,210 @@
Release notes for Yocto-4.0.31 (Kirkstone)
------------------------------------------
Security Fixes in Yocto-4.0.31
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- binutils: Fix :cve_nist:`2025-8225`, :cve_nist:`2025-11081`, :cve_nist:`2025-11082` and
:cve_nist:`2025-11083`
- busybox: Fix :cve_nist:`2025-46394`
- cmake: Fix :cve_nist:`2025-9301`
- curl: Fix :cve_nist:`2025-9086`
- ffmpeg: Ignore :cve_nist:`2023-6603`
- ffmpeg: mark :cve_nist:`2023-6601` as Fixed
- ghostscript: Fix :cve_nist:`2025-59798`, :cve_nist:`2025-59799` and :cve_nist:`2025-59800`
- git: Fix :cve_nist:`2025-48386`
- glib-networking: Fix :cve_nist:`2025-60018` and :cve_nist:`2025-60019`
- go: Fix :cve_nist:`2025-47906` and :cve_nist:`2025-47907`
- grub2: Fix :cve_nist:`2024-56738`
- grub: Ignore :cve_nist:`2024-2312`
- gstreamer1.0-plugins-bad: Fix :cve_nist:`2025-3887`
- gstreamer1.0: Ignore :cve_nist:`2025-2759`, :cve_nist:`2025-3887`, :cve_nist:`2025-47183`,
:cve_nist:`2025-47219`, :cve_nist:`2025-47806`, :cve_nist:`2025-47807` and :cve_nist:`2025-47808`
- python3-jinja2: Fix :cve_nist:`2024-56201`, :cve_nist:`2024-56326` and :cve_nist:`2025-27516`
- libxml2: Fix :cve_nist:`2025-9714`
- libxslt: Fix :cve_nist:`2025-7424`
- lz4: Fix :cve_nist:`2025-62813`
- openssl: Fix :cve_nist:`2025-9230` and :cve_nist:`2025-9232`
- pulseaudio: Ignore :cve_nist:`2024-11586`
- python3: Fix :cve_nist:`2024-6345`, :cve_nist:`2025-47273` and :cve_nist:`2025-59375`
- qemu: Fix :cve_nist:`2024-8354`
- tiff: Fix :cve_nist:`2025-8961`, :cve_nist:`2025-9165` and :cve_nist:`2025-9900`
- vim: Fix :cve_nist:`2025-9389`
Fixes in Yocto-4.0.31
~~~~~~~~~~~~~~~~~~~~~
- build-appliance-image: Update to kirkstone head revision
- poky.conf: bump version for 4.0.31
- ref-manual/classes.rst: document the relative_symlinks class
- ref-manual/classes.rst: gettext: extend the documentation of the class
- ref-manual/variables.rst: document the CCACHE_DISABLE, UNINATIVE_CHECKSUM, UNINATIVE_URL, USE_NLS,
REQUIRED_COMBINED_FEATURES, REQUIRED_IMAGE_FEATURES, :term:`REQUIRED_MACHINE_FEATURES` variable
- ref-manual/variables.rst: fix :term:`LAYERDEPENDS` description
- dev-manual, test-manual: Update autobuilder output links
- ref-manual/classes.rst: extend the uninative class documentation
- python3: upgrade to 3.10.19
- linux-yocto/5.15: update to v5.15.194
- glibc: : PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions (bug 32786)
- glibc: nptl Use all of g1_start and g_signals
- glibc: nptl rename __condvar_quiesce_and_switch_g1
- glibc: nptl Fix indentation
- glibc: nptl Use a single loop in pthread_cond_wait instaed of a nested loop
- glibc: Remove g_refs from condition variables
- glibc: nptl Remove unnecessary quadruple check in pthread_cond_wait
- glibc: nptl Remove unnecessary catch-all-wake in condvar group switch
- glibc: nptl Update comments and indentation for new condvar implementation
- glibc: pthreads NPTL lost wakeup fix 2
- glibc: Remove partial BZ#25847 backport patches
- vulnerabilities: update nvdcve file name
- migration-guides: add release notes for 4.0.30
- oeqa/sdk/cases/buildcpio.py: use gnu mirror instead of main server
- selftest/cases/meta_ide.py: use use gnu mirror instead of main server
- conf/bitbake.conf: use gnu mirror instead of main server
- p11-kit: backport fix for handle :term:`USE_NLS` from master
- systemd: backport fix for handle :term:`USE_NLS` from master
- glibc: stable 2.35 branch updates
- openssl: upgrade to 3.0.18
- scripts/install-buildtools: Update to 4.0.30
- ref-manual/variables.rst: fix the description of :term:`STAGING_DIR`
- ref-manual/structure: document the auto.conf file
- dev-manual/building.rst: add note about externalsrc variables absolute paths
- ref-manual/variables.rst: fix the description of :term:`KBUILD_DEFCONFIG`
- kernel-dev/common.rst: fix the in-tree defconfig description
- test-manual/yocto-project-compatible.rst: fix a typo
- contributor-guide: submit-changes: make "Crediting contributors" part of "Commit your changes"
- contributor-guide: submit-changes: number instruction list in commit your changes
- contributor-guide: submit-changes: reword commit message instructions
- contributor-guide: submit-changes: make the Cc tag follow kernel guidelines
- contributor-guide: submit-changes: align :term:`CC` tag description
- contributor-guide: submit-changes: clarify example with Yocto bug ID
- contributor-guide: submit-changes: fix improper bold string
- libhandy: update git branch name
- python3-jinja2: upgrade to 3.1.6
- vim: upgrade to 9.1.1683
Known Issues in Yocto-4.0.31
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-4.0.31
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Adam Blank
- Aleksandar Nikolic
- Antonin Godard
- Archana Polampalli
- AshishKumar Mishra
- Bruce Ashfield
- Deepesh Varatharajan
- Divya Chellam
- Gyorgy Sarvari
- Hitendra Prajapati
- João Marcos Costa
- Lee Chee Yang
- Paul Barker
- Peter Marko
- Praveen Kumar
- Quentin Schulz
- Rajeshkumar Ramasamy
- Saravanan
- Soumya Sambu
- Steve Sakoman
- Sunil Dora
- Talel BELHAJ SALEM
- Theo GAIGE
- Vijay Anusuri
- Yash Shinde
- Yogita Urade
Repositories / Downloads for Yocto-4.0.31
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.31 </yocto-docs/log/?h=yocto-4.0.31>`
- Git Revision: :yocto_git:`073f3bca4c374b03398317e7f445d2440a287741 </yocto-docs/commit/?id=073f3bca4c374b03398317e7f445d2440a287741>`
- Release Artefact: yocto-docs-073f3bca4c374b03398317e7f445d2440a287741
- sha: 3bfde9b6ad310dd42817509b67f61cd69552f74b2bc5011bd20788fe96d6823b
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.31/yocto-docs-073f3bca4c374b03398317e7f445d2440a287741.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.31/yocto-docs-073f3bca4c374b03398317e7f445d2440a287741.tar.bz2
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.31 </poky/log/?h=yocto-4.0.31>`
- Git Revision: :yocto_git:`04b39e5b7eb19498215d85c88a5fffb460fea1eb </poky/commit/?id=04b39e5b7eb19498215d85c88a5fffb460fea1eb>`
- Release Artefact: poky-04b39e5b7eb19498215d85c88a5fffb460fea1eb
- sha: 0ca18ab1ed25c0d77412ba30dbb03d74811756c7c2fe2401940f848a5e734930
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.31/poky-04b39e5b7eb19498215d85c88a5fffb460fea1eb.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.31/poky-04b39e5b7eb19498215d85c88a5fffb460fea1eb.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.31 </openembedded-core/log/?h=yocto-4.0.31>`
- Git Revision: :oe_git:`99204008786f659ab03538cd2ae2fd23ed4164c5 </openembedded-core/commit/?id=99204008786f659ab03538cd2ae2fd23ed4164c5>`
- Release Artefact: oecore-99204008786f659ab03538cd2ae2fd23ed4164c5
- sha: aa97bf826ad217b3a5278b4ad60bef4d194f0f1ff617677cf2323d3cc4897687
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.31/oecore-99204008786f659ab03538cd2ae2fd23ed4164c5.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.31/oecore-99204008786f659ab03538cd2ae2fd23ed4164c5.tar.bz2
meta-yocto
- Repository Location: :yocto_git:`/meta-yocto`
- Branch: :yocto_git:`kirkstone </meta-yocto/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.31 </meta-yocto/log/?h=yocto-4.0.31>`
- Git Revision: :yocto_git:`3b2df00345b46479237fe0218675a818249f891c </meta-yocto/commit/?id=3b2df00345b46479237fe0218675a818249f891c>`
- Release Artefact: meta-yocto-3b2df00345b46479237fe0218675a818249f891c
- sha: 630e99e0f515bab8a316b2e32aff1352b4404f15aa087e8821b84093596a08ce
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.31/meta-yocto-3b2df00345b46479237fe0218675a818249f891c.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.31/meta-yocto-3b2df00345b46479237fe0218675a818249f891c.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.31 </meta-mingw/log/?h=yocto-4.0.31>`
- Git Revision: :yocto_git:`87c22abb1f11be430caf4372e6b833dc7d77564e </meta-mingw/commit/?id=87c22abb1f11be430caf4372e6b833dc7d77564e>`
- Release Artefact: meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e
- sha: f0bc4873e2e0319fb9d6d6ab9b98eb3f89664d4339a167d2db6a787dd12bc1a8
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.31/meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.31/meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e.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.31 </meta-gplv2/log/?h=yocto-4.0.31>`
- Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
- Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
- sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.31/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.31/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.31 </bitbake/log/?h=yocto-4.0.31>`
- Git Revision: :oe_git:`8e2d1f8de055549b2101614d85454fcd1d0f94b2 </bitbake/commit/?id=8e2d1f8de055549b2101614d85454fcd1d0f94b2>`
- Release Artefact: bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2
- sha: fad4e7699bae62082118e89785324b031b0af0743064caee87c91ba28549afb0
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.31/bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.31/bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2.tar.bz2

View File

@@ -0,0 +1,194 @@
Release notes for Yocto-4.0.32 (Kirkstone)
------------------------------------------
Security Fixes in Yocto-4.0.32
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- bind: Fix :cve_nist:`2025-8677`, :cve_nist:`2025-40778` and :cve_nist:`2025-40780`
- binutils: Fix :cve_nist:`2025-11412` and :cve_nist:`2025-11413`
- curl: Ignore :cve_nist:`2025-10966`
- elfutils: Fix :cve_nist:`2025-1376` and :cve_nist:`2025-1377`
- gnutls: Fix :cve_nist:`2025-9820`
- go: Fix :cve_nist:`2024-24783`, :cve_nist:`2025-58187`, :cve_nist:`2025-58189`,
:cve_nist:`2025-61723` and :cve_nist:`2025-61724`
- libarchive: Fix :cve_nist:`2025-60753`
- libarchive: Fix 2 security issue (https://github.com/libarchive/libarchive/pull/2753 and
https://github.com/libarchive/libarchive/pull/2768)
- libpng: Fix :cve_nist:`2025-64505`, :cve_nist:`2025-64506`, :cve_nist:`2025-64720`,
:cve_nist:`2025-65018` and :cve_nist:`2025-66293`
- libxml2: Fix :cve_nist:`2025-7425`
- musl: Fix :cve_nist:`2025-26519`
- openssh: Fix :cve_nist:`2025-61984` and :cve_nist:`2025-61985`
- python3-idna: Fix :cve_nist:`2024-3651`
- python3-urllib3: Fix :cve_nist:`2024-37891`
- python3: fix :cve_nist:`2025-6075`
- ruby: Fix :cve_nist:`2024-35176`, :cve_nist:`2024-39908` and :cve_nist:`2024-41123`
- rust-cross-canadian: Ignore :cve_nist:`2024-43402`
- u-boot: Fix :cve_nist:`2024-42040`
- wpa-supplicant: Fix :cve_nist:`2025-24912`
- xserver-xorg: Fix :cve_nist:`2025-62229`, :cve_nist:`2025-62230` and :cve_nist:`2025-62231`
- xwayland: Fix :cve_nist:`2025-62229`, :cve_nist:`2025-62230` and :cve_nist:`2025-62231`
Fixes in Yocto-4.0.32
~~~~~~~~~~~~~~~~~~~~~
- babeltrace2: fetch with https protocol
- bind: upgrade to 9.18.41
- build-appliance-image: Update to kirkstone head revision
- dev-manual/layers.rst: document "bitbake-layers show-machines"
- dev-manual/new-recipe.rst: replace 'bitbake -e' with 'bitbake-getvar'
- dev-manual/new-recipe.rst: typo, "whith" -> "which"
- dev-manual/new-recipe.rst: update "recipetool -h" output
- dev-manual: debugging: use bitbake-getvar in Viewing Variable Values section
- documentation: link to the Releases page on yoctoproject.org instead of wiki
- efibootmgr: update :term:`SRC_URI` branch
- flac: patch seeking bug
- goarch.bbclass: do not leak :term:`TUNE_FEATURES` into crosssdk task signatures
- kernel-dev: add disable config example
- kernel-dev: common: migrate bitbake -e to bitbake-getvar
- libmicrohttpd: disable experimental code by default
- migration-guides: add release notes for 4.0.31
- oe-build-perf-report: relax metadata matching rules
- overview-manual: migrate to SVG + fix typo
- poky.conf: bump version for 4.0.32
- python3-urllib3: upgrade to 1.26.20
- recipes: Don't use ftp.gnome.org
- ref-manual: variables: migrate the :term:`OVERRIDES` note to bitbake-getvar
- systemd-bootchart: update :term:`SRC_URI` branch
- xf86-video-intel: correct :term:`SRC_URI` as freedesktop anongit is down
Known Issues in Yocto-4.0.32
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- N/A
Contributors to Yocto-4.0.32
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thanks to the following people who contributed to this release:
- Alexander Kanavin
- Archana Polampalli
- Divya Chellam
- Gyorgy Sarvari
- Hitendra Prajapati
- Hongxu Jia
- Jason Schonberg
- Lee Chee Yang
- Peter Marko
- Praveen Kumar
- Quentin Schulz
- Richard Purdie
- Robert P. J. Day
- Ross Burton
- Saquib Iltaf
- Soumya Sambu
- Steve Sakoman
- Vijay Anusuri
- Walter Werner SCHNEIDER
Repositories / Downloads for Yocto-4.0.32
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
yocto-docs
- Repository Location: :yocto_git:`/yocto-docs`
- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.32 </yocto-docs/log/?h=yocto-4.0.32>`
- Git Revision: :yocto_git:`4b9df539fa06fb19ed8b51ef2d46e5c56779de81 </yocto-docs/commit/?id=4b9df539fa06fb19ed8b51ef2d46e5c56779de81>`
- Release Artefact: yocto-docs-4b9df539fa06fb19ed8b51ef2d46e5c56779de81
- sha: 70ee2caf576683c5f31ac5a592cde1c0650ece25cfcd5ff3cc7eedf531575611
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.32/yocto-docs-4b9df539fa06fb19ed8b51ef2d46e5c56779de81.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.32/yocto-docs-4b9df539fa06fb19ed8b51ef2d46e5c56779de81.tar.bz2
poky
- Repository Location: :yocto_git:`/poky`
- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.32 </poky/log/?h=yocto-4.0.32>`
- Git Revision: :yocto_git:`2c05660b21c7cc1082aeac8b75d8a2d82e249f63 </poky/commit/?id=2c05660b21c7cc1082aeac8b75d8a2d82e249f63>`
- Release Artefact: poky-2c05660b21c7cc1082aeac8b75d8a2d82e249f63
- sha: d7a55a18a597a7b140a81586b7ca6379c208ebbb3285de36c48fde10882947d8
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.32/poky-2c05660b21c7cc1082aeac8b75d8a2d82e249f63.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.32/poky-2c05660b21c7cc1082aeac8b75d8a2d82e249f63.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.32 </openembedded-core/log/?h=yocto-4.0.32>`
- Git Revision: :oe_git:`2ed3f8b938579dbbb804e04c45a968cc57761db7 </openembedded-core/commit/?id=2ed3f8b938579dbbb804e04c45a968cc57761db7>`
- Release Artefact: oecore-2ed3f8b938579dbbb804e04c45a968cc57761db7
- sha: 11b9632586dfbf3f0ef69eca2014a8002f25ca8d53cfe9424e27361ba3a20831
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.32/oecore-2ed3f8b938579dbbb804e04c45a968cc57761db7.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.32/oecore-2ed3f8b938579dbbb804e04c45a968cc57761db7.tar.bz2
meta-yocto
- Repository Location: :yocto_git:`/meta-yocto`
- Branch: :yocto_git:`kirkstone </meta-yocto/log/?h=kirkstone>`
- Tag: :yocto_git:`yocto-4.0.32 </meta-yocto/log/?h=yocto-4.0.32>`
- Git Revision: :yocto_git:`77b40877c179ea3ce5c37c7ba1831e9c0e289266 </meta-yocto/commit/?id=77b40877c179ea3ce5c37c7ba1831e9c0e289266>`
- Release Artefact: meta-yocto-77b40877c179ea3ce5c37c7ba1831e9c0e289266
- sha: e908d42690881cd6e07b9ca18a21eb8761a0ec72d940b12905622e75ba913974
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.32/meta-yocto-77b40877c179ea3ce5c37c7ba1831e9c0e289266.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.32/meta-yocto-77b40877c179ea3ce5c37c7ba1831e9c0e289266.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.32 </meta-mingw/log/?h=yocto-4.0.32>`
- Git Revision: :yocto_git:`87c22abb1f11be430caf4372e6b833dc7d77564e </meta-mingw/commit/?id=87c22abb1f11be430caf4372e6b833dc7d77564e>`
- Release Artefact: meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e
- sha: f0bc4873e2e0319fb9d6d6ab9b98eb3f89664d4339a167d2db6a787dd12bc1a8
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.32/meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.32/meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e.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.32 </meta-gplv2/log/?h=yocto-4.0.32>`
- Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
- Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
- sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.32/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.32/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.32 </bitbake/log/?h=yocto-4.0.32>`
- Git Revision: :oe_git:`8e2d1f8de055549b2101614d85454fcd1d0f94b2 </bitbake/commit/?id=8e2d1f8de055549b2101614d85454fcd1d0f94b2>`
- Release Artefact: bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2
- sha: fad4e7699bae62082118e89785324b031b0af0743064caee87c91ba28549afb0
- Download Locations:
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.32/bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2.tar.bz2
https://mirrors.edge.kernel.org/yocto/yocto/yocto-4.0.32/bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2.tar.bz2

View File

@@ -165,7 +165,7 @@ The following diagram represents the high-level workflow of a build. The
remainder of this section expands on the fundamental input, output,
process, and metadata logical blocks that make up the workflow.
.. image:: figures/YP-flow-diagram.png
.. image:: svg/yp-flow-diagram.*
:align: center
In general, the build's workflow consists of several functional areas:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="164.765mm"
height="72.988113mm"
viewBox="0 0 164.765 72.988114"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="key-dev-elements.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="false"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="1"
inkscape:cx="341.5"
inkscape:cy="-31.5"
inkscape:window-width="2560"
inkscape:window-height="1440"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="layer2"
showborder="false"
borderlayer="false"
inkscape:antialias-rendering="true"
showguides="true" /><defs
id="defs1" /><g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="Layer "
style="display:inline"
transform="translate(-20.664242,-129.6793)"><rect
style="display:inline;fill:#f1e9cc;fill-opacity:1;stroke:#6d8eb4;stroke-width:0.653;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-opacity:1;paint-order:fill markers stroke"
id="rect1"
width="164.112"
height="54.273098"
x="20.990742"
y="130.0058"
ry="0"
inkscape:label="yp-rect" /><rect
style="display:inline;fill:#f3d770;fill-opacity:1;stroke:#6d8eb4;stroke-width:0.653;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-opacity:1;paint-order:fill markers stroke"
id="rect2"
width="101.45864"
height="41.151588"
x="28.1292"
y="137.10953"
inkscape:label="poky-rect" /><rect
style="display:inline;fill:#c0ebf5;fill-opacity:1;stroke:#6d8eb4;stroke-width:0.653;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-opacity:1;paint-order:fill markers stroke"
id="rect3"
width="50.652737"
height="53.04562"
x="35.516178"
y="149.29529"
inkscape:label="oe-rect" /><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;white-space:pre;inline-size:46.7487;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
x="136.38763"
y="137.69727"
id="text3"
inkscape:label="poky-title"
transform="matrix(0.90889596,0,0,0.81399719,-26.072941,39.399474)"><tspan
x="136.38763"
y="137.69727"
id="tspan2">Poky</tspan></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;white-space:pre;inline-size:46.7487;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
x="136.38763"
y="137.69727"
id="text3-8"
inkscape:label="oe-title"
transform="matrix(0.90889596,0,0,0.81399719,-78.327995,83.175189)"><tspan
x="136.38763"
y="137.69727"
id="tspan4">OpenEmbedded</tspan></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;white-space:pre;inline-size:46.7487;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
x="136.38763"
y="137.69727"
id="text3-0"
inkscape:label="yp-title"
transform="matrix(0.8469291,0,0,0.81399719,21.497595,28.033837)"><tspan
x="136.38763"
y="137.69727"
id="tspan5">YOCTO PROJECT (YP)</tspan></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.98347px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
x="137.19444"
y="150.50006"
id="text4"
transform="scale(1.0050579,0.9949676)"
inkscape:label="yp-text"><tspan
sodipodi:role="line"
id="tspan3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.98347px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="137.19444"
y="150.50006">Umbrella Open Source Project</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.98347px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="137.19444"
y="154.2294"
id="tspan6">that Builds and Maintains</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.98347px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="137.19444"
y="157.95874"
id="tspan7">Validated Open Source Tools and</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.98347px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="137.19444"
y="161.68808"
id="tspan8">Components Associated with</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.98347px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="137.19444"
y="165.4174"
id="tspan9">Embedded Linux</tspan></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.97078px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
x="90.582634"
y="159.10139"
id="text10"
transform="scale(1.0018079,0.9981954)"
inkscape:label="poky-text"><tspan
sodipodi:role="line"
id="tspan10"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.97078px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="90.582634"
y="159.10139">Yocto Project Open</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.97078px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="90.582634"
y="162.81487"
id="tspan11">Source Reference</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.97078px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="90.582634"
y="166.52835"
id="tspan12">Embedded Distribution</tspan></text><text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.01677px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:7.4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
x="40.36692"
y="160.98824"
id="text13"
transform="scale(0.99784993,1.0021547)"
inkscape:label="oe-text"><tspan
sodipodi:role="line"
id="tspan13"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.01677px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="40.36692"
y="160.98824">Open Source Build Engine</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.01677px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="40.36692"
y="164.7592"
id="tspan14">and YP-Compatible Metadata</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.01677px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0"
x="40.36692"
y="168.53017"
id="tspan15">for Embedded Linux</tspan></text></g></svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,950 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
width="760.50098"
height="352.582"
viewBox="0 0 760.50095 352.582"
enable-background="new 0 0 758.189 424.276"
xml:space="preserve"
sodipodi:docname="yp-flow-diagram.svg"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs86">
</defs><sodipodi:namedview
id="namedview86"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="2.8284271"
inkscape:cx="296.80807"
inkscape:cy="212.83914"
inkscape:window-width="1906"
inkscape:window-height="934"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="Layer_1" />
<g
id="g17"
transform="matrix(1,0,0,1.0035497,-2.0824824,-11.037238)"><rect
style="opacity:1;fill:#00b6de;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11"
width="484.25"
height="249"
x="90"
y="112.5" /><rect
style="fill:#00b6de;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-8"
width="12"
height="12"
x="507.56818"
y="-301.10004"
ry="0"
transform="rotate(44.313856)" /><rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-8-1"
width="12"
height="12"
x="361.46231"
y="-89.463524"
ry="0"
transform="rotate(44.313856)" /><rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-8-1-1"
width="12"
height="12"
x="389.40585"
y="-60.842598"
ry="0"
transform="rotate(44.313856)" /><rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-8-1-1-0"
width="12"
height="12"
x="416.47607"
y="-33.116081"
ry="0"
transform="rotate(44.313856)" /></g><rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-9"
width="87"
height="216"
x="193.91776"
y="119.24599" /><rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-8-1-4"
width="12"
height="12"
x="487.27533"
y="-296.15897"
ry="0"
transform="rotate(44.313856)" /><rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-9-3"
width="85.75"
height="219.75"
x="470.16751"
y="119.49599" /><g
id="g2"
transform="translate(2.3119996,-71.694)">
<g
id="g1">
<polygon
fill="#00b6de"
points="703.77,340.194 712.852,349.277 721.934,340.194 758.189,340.194 758.189,256.861 723.582,256.861 713.171,267.274 702.758,256.861 628.582,256.861 618.171,267.274 607.758,256.861 561.523,256.861 561.523,340.194 609.104,340.194 618.186,349.277 627.268,340.194 "
id="polygon1" />
</g>
</g>
<g
id="g4"
transform="translate(2.3119996,-71.694)">
<g
id="g3">
<polygon
fill="#e6e6e6"
points="712.837,278.274 707.221,272.658 676.557,272.658 676.557,333.657 706.983,333.657 713.055,339.729 719.128,333.657 751.557,333.657 751.557,272.658 718.452,272.658 "
id="polygon2" />
</g>
</g>
<g
id="g6"
transform="translate(2.3119996,-71.694)">
<g
id="g5">
<polygon
fill="#e6e6e6"
points="618.171,278.274 611.555,271.658 581.558,271.658 581.558,332.657 611.983,332.657 618.056,338.729 624.128,332.657 656.558,332.657 656.558,271.658 624.786,271.658 "
id="polygon4" />
</g>
</g>
<g
id="g8"
transform="translate(2.3119996,-71.694)"
style="fill:#000080">
<g
id="g7"
style="fill:#000080">
<polygon
fill="#ed1849"
points="722.166,349.277 712.504,358.941 702.84,349.277 670.523,349.277 670.523,424.276 757.523,424.276 757.523,349.277 "
id="polygon6"
style="fill:#000080" />
</g>
</g>
<g
id="g10"
transform="translate(2.3119996,-71.694)"
style="fill:#000080">
<g
id="g9"
style="fill:#000080">
<polygon
fill="#ed1849"
points="628.371,348.611 618.043,358.941 607.713,348.611 575.523,348.611 575.523,423.61 662.523,423.61 662.523,348.611 "
id="polygon8"
style="fill:#000080" />
</g>
</g>
<g
id="g14"
transform="translate(2.3119996,-71.694)">
<g
id="g13">
<polygon
fill="#c1d82f"
points="575.428,217.35 575.428,250.526 610.09,250.526 618.171,258.607 626.251,250.526 705.09,250.526 713.171,258.607 721.251,250.526 757.427,250.526 757.427,173.527 575.428,173.527 575.428,199.703 584.252,208.525 "
id="polygon12" />
</g>
</g>
<g
id="g26"
transform="translate(0.4155534,-73.944)">
<g
id="g25">
<polygon
fill="#4a4a30"
points="177.974,133.944 125.111,133.944 118.043,141.013 110.974,133.944 86.834,133.944 86.834,166.944 178.263,166.944 184.834,173.514 191.403,166.944 281.833,166.944 281.833,133.944 258.611,133.944 251.543,141.013 244.474,133.944 192.111,133.944 185.043,141.013 "
id="polygon24" />
</g>
</g>
<g
id="g28"
transform="matrix(0.93986241,0,0,1,-22.331287,-17.694)">
<g
id="g27">
<polygon
fill="#e6e6e6"
points="330.188,290.202 330.188,296.444 511.188,296.444 511.188,289.015 517.259,282.942 511.188,276.87 511.188,268.444 330.188,268.444 330.188,277.683 336.447,283.942 "
id="polygon26" />
</g>
</g>
<g
id="g30"
transform="matrix(0.93986241,0,0,1,-22.331287,-17.694)">
<g
id="g29">
<polygon
fill="#e6e6e6"
points="330.188,251.536 330.188,257.944 511.188,257.944 511.188,250.515 517.259,244.442 511.188,238.37 511.188,229.944 330.188,229.944 330.188,239.016 336.447,245.276 "
id="polygon28" />
</g>
</g>
<g
id="g32"
transform="matrix(0.93986241,0,0,1,-22.331287,-17.694)">
<g
id="g31">
<polygon
fill="#e6e6e6"
points="330.188,211.18 330.188,218.444 511.188,218.444 511.188,211.015 517.259,204.942 511.188,198.87 511.188,190.444 330.188,190.444 330.188,199.372 336.092,205.276 "
id="polygon30" />
</g>
</g>
<g
id="g34"
transform="translate(-40.188,-71.694)">
<g
id="g33">
<polygon
fill="#e6e6e6"
points="144.188,342.944 144.188,406.944 225.188,406.944 225.188,381.515 231.259,375.442 225.188,369.37 225.188,342.944 190.445,342.944 184.043,349.348 177.639,342.944 "
id="polygon32" />
</g>
</g>
<g
id="g36"
transform="translate(-40.188,-71.694)">
<g
id="g35">
<polygon
fill="#e6e6e6"
points="177.618,330.944 184.188,337.514 190.757,330.944 225.188,330.944 225.188,266.944 190.778,266.944 183.71,274.014 176.64,266.944 144.188,266.944 144.188,330.944 "
id="polygon34" />
</g>
</g>
<g
id="g38"
transform="translate(-40.188,-71.694)">
<g
id="g37">
<polygon
fill="#e6e6e6"
points="177.118,254.944 183.688,261.514 190.257,254.944 224.688,254.944 224.688,190.944 191.445,190.944 184.376,198.014 177.306,190.944 143.688,190.944 143.688,254.944 "
id="polygon36" />
</g>
</g>
<g
id="g40"
transform="matrix(1,0,0,0.86327911,0.062,-77.645148)">
<g
id="g39">
<polygon
fill="#4a4a30"
points="81.188,221.611 0.188,221.611 0.188,285.61 81.188,285.61 81.188,260.181 87.259,254.109 81.188,248.037 "
id="polygon38" />
</g>
</g><g
id="g40-0"
transform="matrix(1,0,0,0.86327911,0.312,-18.368819)">
<g
id="g39-6">
<polygon
fill="#4a4a30"
points="87.259,254.109 81.188,248.037 81.188,221.611 0.188,221.611 0.188,285.61 81.188,285.61 81.188,260.181 "
id="polygon38-4" />
</g>
</g><g
id="g40-0-2"
transform="matrix(1,0,0,0.86327911,0.062,40.907511)">
<g
id="g39-6-5">
<polygon
fill="#4a4a30"
points="87.259,254.109 81.188,248.037 81.188,221.611 0.188,221.611 0.188,285.61 81.188,285.61 81.188,260.181 "
id="polygon38-4-8" />
</g>
</g><g
id="g40-0-28"
transform="matrix(1,0,0,0.86327911,-0.188,100.18384)">
<g
id="g39-6-4">
<polygon
fill="#4a4a30"
points="81.188,285.61 81.188,260.181 87.259,254.109 81.188,248.037 81.188,221.611 0.188,221.611 0.188,285.61 "
id="polygon38-4-7" />
</g>
</g>
<g
id="g42"
transform="translate(0.062,-71.944)"
style="fill:#ff7f2a">
<g
id="g41"
style="fill:#ff7f2a">
<polygon
fill="#7e8082"
points="178.618,123.944 185.188,130.514 191.757,123.944 215.188,123.944 215.188,71.944 154.188,71.944 154.188,123.944 "
id="polygon40"
style="fill:#ff7f2a" />
</g>
</g>
<rect
x="126.062"
y="75.334"
fill="none"
width="116.666"
height="21.333"
id="rect42" />
<text
fill="#ffffff"
font-family="MyriadPro-Regular"
font-size="12px"
id="text42"
x="139.47949"
y="82.440079"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Source Materials</text>
<rect
x="155.41699"
y="10.834001"
fill="none"
width="58.666"
height="40.667"
id="rect43" />
<text
id="text44"
x="190.00726"
y="29.10741"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:49.6985"
transform="translate(-5.5244746,-7.8775879)"
xml:space="preserve"><tspan
x="190.00726"
y="29.10741"
id="tspan1">Local<tspan
y="29.10741"
id="tspan2"> </tspan></tspan><tspan
x="190.00726"
y="42.440787"
id="tspan3">Projects</tspan></text>
<g
id="g45"
transform="translate(0.062,-71.944)"
style="fill:#ff7f2a">
<g
id="g44"
style="fill:#ff7f2a">
<polygon
fill="#7e8082"
points="245.118,123.944 251.688,130.514 258.257,123.944 281.688,123.944 281.688,71.944 220.688,71.944 220.688,123.944 "
id="polygon44"
style="fill:#ff7f2a" />
</g>
</g>
<rect
x="221.91699"
y="7.8340006"
fill="none"
width="58.666"
height="40.667"
id="rect45" />
<text
id="text47"
x="258.17291"
y="26.10741"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:56.5275;fill:#000000"
transform="translate(-6.4360358,-3.6326896)"
xml:space="preserve"><tspan
x="258.17291"
y="26.10741"
id="tspan4">SCMs<tspan
y="26.10741"
id="tspan5"> </tspan></tspan><tspan
x="258.17291"
y="39.440787"
id="tspan6">(optional)</tspan></text>
<g
id="g48"
transform="translate(0.062,-71.944)"
style="fill:#ff7f2a">
<g
id="g47"
style="fill:#ff7f2a">
<polygon
fill="#7e8082"
points="111.618,123.944 118.188,130.514 124.757,123.944 148.188,123.944 148.188,71.944 87.188,71.944 87.188,123.944 "
id="polygon47"
style="fill:#ff7f2a" />
</g>
</g>
<rect
x="88.417007"
y="10.834001"
fill="none"
width="58.666"
height="40.667"
id="rect48" />
<text
id="text49"
x="125.51399"
y="29.10741"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:64.823"
transform="translate(-8.2169997,-13.75401)"
xml:space="preserve"><tspan
x="125.51399"
y="29.10741"
id="tspan7">Upstream<tspan
y="29.10741"
id="tspan8"> </tspan></tspan><tspan
x="125.51399"
y="42.440787"
id="tspan9">Project<tspan
y="42.440787"
id="tspan10"> </tspan></tspan><tspan
x="125.51399"
y="55.774165"
id="tspan11">Releases</tspan></text>
<rect
x="115.167"
y="137.084"
fill="none"
width="58.666"
height="40.667"
id="rect49" />
<text
id="text51"
x="128.34723"
y="147.37112"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"><tspan
x="128.34723"
y="147.37112"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan50"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Source </tspan><tspan
x="123.54125"
y="161.77113"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan51"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Fetching</tspan></text>
<rect
x="115.167"
y="215.08401"
fill="none"
width="58.666"
height="40.666"
id="rect51" />
<text
id="text53"
x="131.82678"
y="224.31099"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"><tspan
x="131.82678"
y="224.31099"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan52"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Patch </tspan><tspan
x="117.00081"
y="238.70999"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan53"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Application</tspan></text>
<rect
x="107.167"
y="279.08401"
fill="none"
width="74.166"
height="69.237"
id="rect53" />
<text
id="text57"
x="149.00055"
y="297.35791"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:74.8743"
transform="translate(-3.496696,4.953096)"
xml:space="preserve"><tspan
x="149.00055"
y="297.35791"
id="tspan12">Configuration /<tspan
y="297.35791"
id="tspan13"> </tspan></tspan><tspan
x="149.00055"
y="310.69127"
id="tspan14">Compile</tspan></text>
<rect
x="201.16699"
y="184.084"
fill="none"
width="74.166"
height="89.237"
id="rect57" />
<text
id="text63"
x="221.86859"
y="192.60429"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"><tspan
x="221.86859"
y="192.60429"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan58"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Output </tspan><tspan
x="211.42859"
y="207.0043"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan59"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Analysis for </tspan><tspan
x="218.94058"
y="221.4043"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan60"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">package </tspan><tspan
x="207.54759"
y="235.80429"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan61"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">splitting plus </tspan><tspan
x="218.94058"
y="250.2043"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan62"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">package </tspan><tspan
x="207.81059"
y="264.60431"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan63"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">relationships</tspan></text><text
id="text63-1"
x="555.48315"
y="202.90402"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:31.0495"
transform="translate(-42.334211,23.629617)"
xml:space="preserve"><tspan
x="555.48315"
y="202.90402"
id="tspan15">QA<tspan
y="202.90402"
id="tspan16"> </tspan></tspan><tspan
x="555.48315"
y="216.2374"
id="tspan18">Tests</tspan></text>
<rect
x="319.146"
y="127.084"
fill="none"
width="116.666"
height="21.333"
id="rect63" />
<text
font-family="MyriadPro-Regular"
font-size="12px"
id="text64"
x="335.19238"
y="189.60429"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">.rpm generation</text>
<rect
x="319.146"
y="166.584"
fill="none"
width="116.666"
height="21.333"
id="rect64" />
<text
font-family="MyriadPro-Regular"
font-size="12px"
id="text65"
x="335.76849"
y="229.10429"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">.deb generation</text>
<rect
x="319.146"
y="205.08401"
fill="none"
width="116.666"
height="21.333"
id="rect65" />
<text
font-family="MyriadPro-Regular"
font-size="12px"
id="text66"
x="337.9404"
y="267.60391"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">.ipk generation</text>
<rect
x="296.16699"
y="307.08401"
fill="none"
width="77.166"
height="30.237"
id="rect66" />
<rect
x="299.66699"
y="261.08401"
fill="none"
width="71.853996"
height="33.664001"
id="rect67" />
<rect
x="395.97998"
y="261.08401"
fill="none"
width="71.853996"
height="33.664001"
id="rect69" />
<rect
x="390.66699"
y="307.08401"
fill="none"
width="77.166"
height="30.237"
id="rect71" />
<rect
y="133"
fill="none"
width="81.666"
height="39.334"
id="rect73"
x="0.061999973" />
<text
id="text75"
x="64.610138"
y="186.94585"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:66.7773"
transform="translate(-23.458902,-49.50401)"
xml:space="preserve"><tspan
x="64.610138"
y="186.94585"
id="tspan20"><tspan
style="fill:#ffffff"
id="tspan19">User</tspan>
</tspan><tspan
x="64.610138"
y="200.27922"
id="tspan22"><tspan
style="fill:#ffffff"
id="tspan21">Configuration</tspan></tspan></text><text
id="text75-4"
x="64.610138"
y="186.94585"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:66.7773"
transform="translate(-24.603766,70.32617)"
xml:space="preserve"><tspan
x="64.610138"
y="186.94585"
id="tspan24"><tspan
style="fill:#ffffff"
id="tspan23">Machine BSP</tspan>
</tspan><tspan
x="64.610138"
y="200.27922"
id="tspan26"><tspan
style="fill:#ffffff"
id="tspan25">Configuration</tspan></tspan></text><text
id="text75-4-6"
x="64.610138"
y="186.94585"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:66.7773"
transform="translate(-25.353766,128.82617)"
xml:space="preserve"><tspan
x="64.610138"
y="186.94585"
id="tspan28"><tspan
style="fill:#ffffff"
id="tspan27">Policy</tspan>
</tspan><tspan
x="64.610138"
y="200.27922"
id="tspan30"><tspan
style="fill:#ffffff"
id="tspan29">Configuration</tspan></tspan></text>
<rect
y="211.16798"
fill="none"
width="81.666"
height="39.333"
id="rect76"
x="0.061999973" />
<text
id="text78"
x="70.02713"
y="265.4418"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:89.4625"
transform="translate(-28.848315,-69.549143)"
xml:space="preserve"><tspan
x="70.02713"
y="265.4418"
id="tspan32"><tspan
style="fill:#ffffff"
id="tspan31">Metadata
</tspan></tspan><tspan
x="70.02713"
y="278.77516"
id="tspan34"><tspan
style="fill:#ffffff"
id="tspan33">(.bb + patches)</tspan></tspan></text>
<rect
x="612.83502"
y="131.418"
fill="none"
width="112.186"
height="20.163"
id="rect78" />
<text
font-family="MyriadPro-Regular"
font-size="12px"
id="text79"
x="629.87451"
y="142.68779"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Package Feeds</text>
<rect
x="579.98102"
y="306.25101"
fill="none"
width="81.666"
height="39.332001"
id="rect79" />
<text
fill="#ffffff"
font-family="MyriadPro-Regular"
font-size="12px"
id="text80"
x="604.24854"
y="319.7699"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Images</text>
<rect
x="584.14703"
y="216.08499"
fill="none"
width="71.853996"
height="33.664001"
id="rect80" />
<text
id="text81"
x="606.88434"
y="227.1058"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"><tspan
x="606.88434"
y="227.1058"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan80"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Image </tspan><tspan
x="594.48834"
y="241.50479"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan81"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Generation</tspan></text>
<rect
x="678.83301"
y="215.08499"
fill="none"
width="77.166"
height="30.237"
id="rect81" />
<text
id="text83"
x="708.21045"
y="228.6058"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"><tspan
x="708.21045"
y="228.6058"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan82"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">SDK </tspan><tspan
x="690.33142"
y="243.00479"
font-family="MyriadPro-Regular"
font-size="12px"
id="tspan83"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">Generation</tspan></text>
<rect
x="379.06299"
y="86.834"
fill="none"
width="199.03999"
height="21.164"
id="rect83" />
<text
fill="#333333"
font-family="MyriadPro-Regular"
font-size="12px"
id="text84"
x="426.28253"
y="26.005543"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#333333">OpenEmbedded Architecture Workflow</text><g
id="g18"
transform="translate(-10.254525,-9.75401)"><rect
style="fill:#00b6de;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-5"
width="10"
height="9.9646282"
x="442.00568"
y="76.711205"
transform="matrix(1,0,0,1.0035497,0,-1.2832284)" /><text
fill="#333333"
font-family="MyriadPro-Regular"
font-size="12px"
id="text84-6"
x="456.48013"
y="84.126945"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#333333"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
id="tspan17">Build System</tspan></text></g><g
id="g18-4"
transform="translate(-10.254525,-25.970712)"><rect
style="fill:#4a4a30;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-5-8"
width="10"
height="9.9646282"
x="442.00568"
y="76.711205"
transform="matrix(1,0,0,1.0035497,0,-1.2832284)" /><text
fill="#333333"
font-family="MyriadPro-Regular"
font-size="12px"
id="text84-6-0"
x="456.48013"
y="84.126945"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#333333"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
id="tspan17-4">Metadata/Inputs</tspan></text></g><g
id="g18-4-9"
transform="translate(-10.254525,-42.187414)"><rect
style="fill:#ff7f2a;fill-opacity:1;stroke:#ff631a;stroke-width:0.49911493;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-5-8-6"
width="10"
height="9.9646282"
x="442.00568"
y="76.711205"
transform="matrix(1,0,0,1.0035497,0,-1.2832284)" /><text
fill="#333333"
font-family="MyriadPro-Regular"
font-size="12px"
id="text84-6-0-1"
x="456.48013"
y="84.126945"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#333333"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
id="tspan17-4-0">Upstream Source</tspan></text></g><g
id="g18-4-9-2"
transform="translate(101.50803,-40.934366)"><rect
style="fill:#c1d82f;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-5-8-6-2"
width="10"
height="9.9646282"
x="442.00568"
y="76.711205"
transform="matrix(1,0,0,1.0035497,0,-1.2832284)" /><text
fill="#333333"
font-family="MyriadPro-Regular"
font-size="12px"
id="text84-6-0-1-2"
x="456.48013"
y="84.126945"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#333333"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
id="tspan17-4-0-0">Output Packages</tspan></text></g><g
id="g18-4-9-2-5"
transform="translate(101.50803,-24.709046)"><rect
style="fill:#e6e6e6;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-5-8-6-2-2"
width="10"
height="9.9646282"
x="442.00568"
y="76.711205"
transform="matrix(1,0,0,1.0035497,0,-1.2832284)" /><text
fill="#333333"
font-family="MyriadPro-Regular"
font-size="12px"
id="text84-6-0-1-2-9"
x="456.48013"
y="84.126945"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#333333"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
id="tspan17-4-0-0-0">Process steps (tasks)</tspan></text></g><g
id="g18-4-9-2-5-8"
transform="translate(101.50803,-8.4837252)"><rect
style="fill:#000080;fill-opacity:1;stroke:#ff631a;stroke-width:0;stroke-linejoin:bevel;stroke-miterlimit:0;stroke-dasharray:none"
id="rect11-5-8-6-2-2-3"
width="10"
height="9.9646282"
x="442.00568"
y="76.711205"
transform="matrix(1,0,0,1.0035497,0,-1.2832284)" /><text
fill="#333333"
font-family="MyriadPro-Regular"
font-size="12px"
id="text84-6-0-1-2-9-8"
x="456.48013"
y="84.126945"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#333333"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.33333px;font-family:Sans;-inkscape-font-specification:'Sans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal"
id="tspan17-4-0-0-0-0">Output Imaga Data</tspan></text></g>
<rect
x="675.64801"
y="304.91699"
fill="none"
width="81.666"
height="39.332001"
id="rect85" />
<text
id="text86"
x="720.58508"
y="322.93991"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.6667px;font-family:'Nimbus Sans L';-inkscape-font-specification:'Nimbus Sans L, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;white-space:pre;inline-size:65.518"
transform="translate(-2.5824824,-12.25401)"
xml:space="preserve"><tspan
x="720.58508"
y="322.93991"
id="tspan36"><tspan
style="fill:#ffffff"
id="tspan35">Application</tspan><tspan
y="322.93991"
id="tspan37"> </tspan></tspan><tspan
x="720.58508"
y="336.27327"
id="tspan39"><tspan
style="fill:#ffffff"
id="tspan38">Development</tspan><tspan
y="336.27327"
id="tspan40"> </tspan></tspan><tspan
x="720.58508"
y="349.60665"
id="tspan42"><tspan
style="fill:#ffffff"
id="tspan41">SDK</tspan></tspan></text>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -23,8 +23,8 @@ comes to delivering embedded software stacks. The project allows
software customizations and build interchange for multiple hardware
platforms as well as software stacks that can be maintained and scaled.
.. image:: figures/key-dev-elements.png
:align: center
.. image:: svg/key-dev-elements.*
:width: 100%
For further introductory information on the Yocto Project, you might be
interested in this
@@ -44,7 +44,7 @@ Here are features and advantages of the Yocto Project:
system, software, and service vendors adopt and support the Yocto
Project in their products and services. For a look at the Yocto
Project community and the companies involved with the Yocto Project,
see the "COMMUNITY" and "ECOSYSTEM" tabs on the
see the "COMMUNITY" and "ABOUT" tabs on the
:yocto_home:`Yocto Project <>` home page.
- *Architecture Agnostic:* Yocto Project supports Intel, ARM, MIPS,
@@ -60,10 +60,9 @@ Here are features and advantages of the Yocto Project:
move between architectures without moving to new development
environments. Additionally, if you have used the Yocto Project to
create an image or application and you find yourself not able to
support it, commercial Linux vendors such as Wind River, Mentor
Graphics, Timesys, and ENEA could take it and provide ongoing
support. These vendors have offerings that are built using the Yocto
Project.
support it, commercial Linux vendors listed on :yocto_home:`/members/` and
:yocto_home:`/about/participants/` could take it and provide ongoing
support.
- *Flexibility:* Corporations use the Yocto Project many different
ways. One example is to create an internal Linux distribution as a
@@ -734,7 +733,7 @@ The :term:`OpenEmbedded Build System` uses a "workflow" to
accomplish image and SDK generation. The following figure overviews that
workflow:
.. image:: figures/YP-flow-diagram.png
.. image:: svg/yp-flow-diagram.*
:align: center
Here is a brief summary of the "workflow":
@@ -760,7 +759,8 @@ Here is a brief summary of the "workflow":
package feed that is used to create the final root file image.
7. The build system generates the file system image and a customized
Extensible SDK (eSDK) for application development in parallel.
:doc:`SDK </sdk-manual/index>` (Software Development Kit) for application
development in parallel.
For a very detailed look at this workflow, see the
":ref:`overview-manual/concepts:openembedded build system concepts`" section.

View File

@@ -309,8 +309,12 @@ file for details about how to enable this mechanism in your configuration
file, how to disable it for specific recipes, and how to share ``ccache``
files between builds.
However, using the class can lead to unexpected side-effects. Thus, using
this class is not recommended.
Recipes can also explicitly disable `Ccache` support even when the
:ref:`ref-classes-ccache` class is enabled, by setting the
:term:`CCACHE_DISABLE` variable to "1".
Using the :ref:`ref-classes-ccache` class can lead to unexpected side-effects.
Using this class is not recommended.
.. _ref-classes-chrpath:
@@ -825,6 +829,14 @@ software that uses the GNU ``gettext`` internationalization and localization
system. All recipes building software that use ``gettext`` should inherit this
class.
This class will configure recipes to build translations *unless*:
- the :term:`USE_NLS` variable is set to ``no``, or
- the :term:`INHIBIT_DEFAULT_DEPS` variable is set and the recipe inheriting
the :ref:`ref-classes-gettext` class does not also inherit the
:ref:`ref-classes-cross-canadian` class.
.. _ref-classes-gnomebase:
``gnomebase``
@@ -1106,6 +1118,53 @@ The :ref:`ref-classes-image_types` class also handles conversion and compression
:term:`IMAGE_FSTYPES`. This would also be similar for Virtual Box Virtual Disk
Image ("vdi") and QEMU Copy On Write Version 2 ("qcow2") images.
.. _ref-classes-image-container:
``image-container``
===================
The :ref:`ref-classes-image-container` class is automatically inherited in
:doc:`image </ref-manual/images>` recipes that have the ``container`` image type
in :term:`IMAGE_FSTYPES`. It provides relevant settings to generate an image
ready for use with an :wikipedia:`OCI <Open_Container_Initiative>`-compliant
container management tool, such as :wikipedia:`Podman <Podman>` or
:wikipedia:`Docker <Docker_(software)>`.
.. note::
This class neither builds nor installs container management tools on the
target. Those tools are available in the :yocto_git:`meta-virtualization
</meta-virtualization>` layer.
You should set the :term:`PREFERRED_PROVIDER` for the Linux kernel to
``linux-dummy`` in a :term:`configuration file`::
PREFERRED_PROVIDER_virtual/kernel = "linux-dummy"
Otherwise an error is triggered. If desired, the
:term:`IMAGE_CONTAINER_NO_DUMMY` variable can be set to "1" to avoid triggering
this error.
The ``linux-dummy`` recipe acts as a Linux kernel recipe but builds nothing. It
is relevant to use as the preferred Linux kernel provider in this case as a
container image does not need to include a Linux kernel. Selecting it as the
preferred provider for the kernel will also decrease build time.
Using this class only deploys an additional ``tar.bz2`` archive to
:term:`DEPLOY_DIR_IMAGE`. This archive can be used in a container file (a file
typically named ``Dockerfile`` or ``Containerfile``). For example, to be used with
:wikipedia:`Podman <Podman>` or :wikipedia:`Docker <Docker_(software)>`, the
`container file <https://docs.docker.com/reference/dockerfile/>`__ could contain
the following instructions:
.. code-block:: dockerfile
FROM scratch
ADD ./image-container-qemux86-64.rootfs.tar.bz2 /
ENTRYPOINT /bin/sh
This is suitable to build a container using our generated root filesystem image.
.. _ref-classes-image-live:
``image-live``
@@ -2544,6 +2603,25 @@ The :ref:`ref-classes-recipe_sanity` class checks for the presence of any host s
recipe prerequisites that might affect the build (e.g. variables that
are set or software that is present).
.. _ref-classes-relative_symlinks:
``relative_symlinks``
=====================
The :ref:`ref-classes-relative_symlinks` class walks the symbolic links in the
:term:`D` directory and replaces links pointing to absolute paths to relative
paths. This is occasionally used in some recipes that create wrong symbolic
links when their :ref:`ref-classes-native` version is built, and/or would cause
breakage in the :ref:`overview-manual/concepts:shared state cache`.
For example, if the following symbolic link is found in :term:`D`::
/usr/bin/foo -> /sbin/bar
It is replaced by::
/usr/bin/foo -> ../../sbin/bar
.. _ref-classes-relocatable:
``relocatable``
@@ -3214,22 +3292,51 @@ imitates.
``uninative``
=============
Attempts to isolate the build system from the host distribution's C
library in order to make re-use of native shared state artifacts across
different host distributions practical. With this class enabled, a
tarball containing a pre-built C library is downloaded at the start of
the build. In the Poky reference distribution this is enabled by default
through ``meta/conf/distro/include/yocto-uninative.inc``. Other
distributions that do not derive from poky can also
"``require conf/distro/include/yocto-uninative.inc``" to use this.
Alternatively if you prefer, you can build the uninative-tarball recipe
yourself, publish the resulting tarball (e.g. via HTTP) and set
``UNINATIVE_URL`` and ``UNINATIVE_CHECKSUM`` appropriately. For an
example, see the ``meta/conf/distro/include/yocto-uninative.inc``.
The :ref:`ref-classes-uninative` class allows binaries to run on systems with
older or newer :wikipedia:`Glibc <Glibc>` versions. This means
:ref:`ref-classes-native` recipe :ref:`overview-manual/concepts:shared state
cache` can be shared among different host distributions of different versions,
i.e. the :ref:`overview-manual/concepts:shared state cache` is "universal".
The :ref:`ref-classes-uninative` class is also used unconditionally by the extensible
SDK. When building the extensible SDK, ``uninative-tarball`` is built
and the resulting tarball is included within the SDK.
To allow this to work, the dynamic loader is changed to our own :manpage:`ld.so
<ld.so.8>` when binaries are compiled using the
``--dynamic-linker`` option. This means when the binary is executed, it finds
our own :manpage:`ld.so <ld.so.8>` and that loader has a modified search path
which finds a newer Glibc version.
The linking of the binaries is not changed at link time since the
headers on the system wouldn't match the newer Glibc and this causes
obtuse failures. Changing the loader is effectively the same as if the
system had a Glibc upgrade after the binary was compiled, so it is a
mechanism supported by upstream.
One caveat to this approach is that the uninative Glibc binary must be
equal to or newer in version to the versions on all the systems using
the common :ref:`overview-manual/concepts:shared state cache`. This is why
:ref:`ref-classes-uninative` is regularly changed on the development and stable
branches.
Another potential issue is static linking: static libraries created on
a system with a new Glibc version may have symbols not present in older
versions, which would then fail during linking on older systems. This
is one reason we don't use static linking for our :ref:`ref-classes-native`
binaries.
With this class enabled, a tarball containing a pre-built C library is
downloaded at the start of the build. In the Poky reference distribution this is
enabled by default through :oe_git:`meta/conf/distro/include/yocto-uninative.inc
</openembedded-core/tree/meta/conf/distro/include/yocto-uninative.inc>`. Other distributions that do
not derive from Poky can also "``require conf/distro/include/yocto-uninative.inc``"
to use this. Alternatively if you prefer, you can build the uninative-tarball
recipe yourself, publish the resulting tarball (e.g. via HTTP) and set
:term:`UNINATIVE_URL` and :term:`UNINATIVE_CHECKSUM` appropriately. For an
example, see :oe_git:`meta/conf/distro/include/yocto-uninative.inc
</openembedded-core/tree/meta/conf/distro/include/yocto-uninative.inc>`.
The :ref:`ref-classes-uninative` class is also used unconditionally by the
:doc:`extensible SDK </sdk-manual/extensible>`. When building the extensible
SDK, ``uninative-tarball`` is built and the resulting tarball is included within
the SDK.
.. _ref-classes-update-alternatives:

View File

@@ -45,6 +45,45 @@ release process validates the content of the new branch.
Realize that there can be patches merged onto the stable release
branches as and when they become available.
.. _ref-yp-development-cycle:
Development Cycle
=================
As explained in the previous :ref:`ref-manual/release-process:Major and Minor
Release Cadence` section, a new release comes out every six months.
During this six-months period of time, the Yocto Project releases four
"Milestone" releases which represent distinct points of time. The milestone
releases are tested through the :ref:`ref-manual/release-process:Testing and
Quality Assurance` process and helps spotting issues before the actual release
is out.
The time span between milestone releases can vary, but they are in general
evenly spaced out during this six-months period of time.
These milestone releases are tagged with a capital "M" after the future release
tag name. For example, the milestone tags "&DISTRO_RELEASE_SERIES;M1",
"&DISTRO_RELEASE_SERIES;M2", and "&DISTRO_RELEASE_SERIES;M3" are released before
the actual "&DISTRO_RELEASE_SERIES;" release.
.. note::
The fourth milestone (M4) is not actually released and announced, but
represents a point of time for the Quality Assurance team to start the
:ref:`ref-manual/release-process:Testing and Quality Assurance` process
before tagging and delivering the final release.
After the third milestone release (M3), the Yocto Project enters **Feature
Freeze**. This means that the maintainers of :term:`OpenEmbedded-Core
(OE-Core)`, :term:`BitBake` and other core repositories stop accepting
significant changes on the "master" branch. Changes that may be accepted are
minor upgrades to core components and security/bug fixes.
During feature freeze, a new branch is created and maintained separately to
test new features and enhancements received from contributors, but these changes
will only make it to the master branch after the release is out.
Major Release Codenames
=======================
@@ -62,7 +101,8 @@ codename are likely to be compatible and thus work together.
Releases are given a nominal release version as well but the codename is
used in repositories for this reason. You can find information on Yocto
Project releases and codenames at :yocto_wiki:`/Releases`.
Project releases and codenames in the :yocto_home:`Releases page
</development/releases/>`.
Our :doc:`/migration-guides/index` detail how to migrate from one release of
the Yocto Project to the next.

View File

@@ -328,6 +328,15 @@ Once the build process gets the sample file, it uses ``sed`` to substitute final
This file indicates the state of the sanity checks and is created during
the build.
.. _structure-build-conf-auto.conf:
``build/conf/auto.conf``
------------------------
This file contains configuration variables that are automatically modified by
tools such as :oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>`.
This file should not be modified manually.
.. _structure-build-downloads:
``build/downloads/``

View File

@@ -608,7 +608,7 @@
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>
<rect
style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
style="opacity:0.5;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-9-2-3-6"
width="140"
height="45.000004"
@@ -632,7 +632,7 @@
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-5-6">5.1</tspan></text>
<rect
style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1;opacity:0.5"
id="rect917-0-0-4-4-9-4-5-3-9-2-3-6-2"
width="140"
height="45.000004"
@@ -656,26 +656,26 @@
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-5-6-9">5.2</tspan></text>
<rect
style="opacity:0.75;fill:#251f32;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
style="opacity:1;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-9-2-3-67"
width="140"
height="45.000004"
x="1163.6425"
x="1223.8723"
y="-382.27469"
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="1214.9716"
x="1275.2014"
y="-363.89413"
id="text1185-3-55-4-0-0-0-1-1-6-4-3-53"><tspan
sodipodi:role="line"
x="1214.9716"
x="1275.2014"
y="-363.89413"
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-2-0-5-5">Whinlatter</tspan><tspan
sodipodi:role="line"
x="1214.9716"
x="1275.2014"
y="-345.89746"
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-5-6-6-6">5.3</tspan></text>
@@ -1847,7 +1847,7 @@
x="2128.7158"
y="-7.6722765"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none"
id="tspan10317-2-9-1-4-6-5-6-6-5-9-7">Current (Apr. 25)</tspan></text>
id="tspan10317-2-9-1-4-6-5-6-6-5-9-7">Current (Dec. 25)</tspan></text>
<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"

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

@@ -1097,6 +1097,17 @@ system and gives an overview of their function and contents.
:term:`CC`
The minimal command and arguments used to run the C compiler.
:term:`CCACHE_DISABLE`
When inheriting the :ref:`ref-classes-ccache` class, the
:term:`CCACHE_DISABLE` variable can be set to "1" in a recipe to disable
`Ccache` support. This is useful when the recipe is known to not support it.
:term:`CCACHE_TOP_DIR`
When inheriting the :ref:`ref-classes-ccache` class, the
:term:`CCACHE_TOP_DIR` variable can be set to the location of where
`Ccache` stores its cache files. This directory can be shared between
builds.
:term:`CFLAGS`
Specifies the flags to pass to the C compiler. This variable is
exported to an environment variable and thus made visible to the
@@ -3309,6 +3320,24 @@ system and gives an overview of their function and contents.
variable, see the :ref:`image_types <ref-classes-image_types>`
class file, which is ``meta/classes/image_types.bbclass``.
:term:`IMAGE_CONTAINER_NO_DUMMY`
When an image recipe has the ``container`` image type in
:term:`IMAGE_FSTYPES`, it expects the :term:`PREFERRED_PROVIDER` for
the Linux kernel (``virtual/kernel``) to be set to ``linux-dummy`` from a
:term:`configuration file`. Otherwise, an error is triggered.
When set to "1", the :term:`IMAGE_CONTAINER_NO_DUMMY` variable allows the
:term:`PREFERRED_PROVIDER` variable to be set to another value, thus
skipping the check and not triggering the build error. Any other value
will keep the check.
This variable should be set from the image recipe using the ``container``
image type.
See the documentation of the :ref:`ref-classes-image-container` class for
more information on why setting the :term:`PREFERRED_PROVIDER` to
``linux-dummy`` is advised with this class.
:term:`IMAGE_DEVICE_TABLES`
Specifies one or more files that contain custom device tables that
are passed to the ``makedevs`` command as part of creating an image.
@@ -4251,8 +4280,7 @@ system and gives an overview of their function and contents.
would place patch files and configuration fragment files (i.e.
"out-of-tree"). However, if you want to use a ``defconfig`` file that
is part of the kernel tree (i.e. "in-tree"), you can use the
:term:`KBUILD_DEFCONFIG` variable and append the
:term:`KMACHINE` variable to point to the
:term:`KBUILD_DEFCONFIG` variable to point to the
``defconfig`` file.
To use the variable, set it in the append file for your kernel recipe
@@ -4688,7 +4716,7 @@ system and gives an overview of their function and contents.
information on how this variable is used.
:term:`LAYERDEPENDS`
Lists the layers, separated by spaces, on which this recipe depends.
Lists the layers, separated by spaces, on which this layer depends.
Optionally, you can specify a specific layer version for a dependency
by adding it to the end of the layer name. Here is an example::
@@ -5545,8 +5573,8 @@ system and gives an overview of their function and contents.
.. note::
An easy way to see what overrides apply is to search for :term:`OVERRIDES`
in the output of the ``bitbake -e`` command. See the
An easy way to see what overrides apply is to run the command
``bitbake-getvar -r myrecipe OVERRIDES``. See the
":ref:`dev-manual/debugging:viewing variable values`" section in the Yocto
Project Development Tasks Manual for more information.
@@ -6822,6 +6850,16 @@ system and gives an overview of their function and contents.
:term:`REPODIR`
See :term:`bitbake:REPODIR` in the BitBake manual.
:term:`REQUIRED_COMBINED_FEATURES`
When inheriting the :ref:`ref-classes-features_check` class, this variable
identifies combined features (the intersection of :term:`MACHINE_FEATURES`
and :term:`DISTRO_FEATURES`) that must exist in the current configuration
in order for the :term:`OpenEmbedded Build System` to build the recipe. In
other words, if the :term:`REQUIRED_COMBINED_FEATURES` variable lists a
feature that does not appear in :term:`COMBINED_FEATURES` within the
current configuration, then the recipe will be skipped, and if the build
system attempts to build the recipe then an error will be triggered.
:term:`REQUIRED_DISTRO_FEATURES`
When inheriting the
:ref:`features_check <ref-classes-features_check>`
@@ -6833,6 +6871,32 @@ 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:`REQUIRED_IMAGE_FEATURES`
When inheriting the :ref:`ref-classes-features_check` class, this variable
identifies image features that must exist in the current
configuration in order for the :term:`OpenEmbedded Build System` to build
the recipe. In other words, if the :term:`REQUIRED_IMAGE_FEATURES` variable
lists a feature that does not appear in :term:`IMAGE_FEATURES` within the
current configuration, then the recipe will be skipped, and if the build
system attempts to build the recipe then an error will be triggered.
Compared to other ``REQUIRED_*_FEATURES`` variables, the
:term:`REQUIRED_IMAGE_FEATURES` varible only targets image recipes, as the
:term:`IMAGE_FEATURES` variable is handled by the :ref:`ref-classes-core-image`
class). However, the :term:`REQUIRED_IMAGE_FEATURES` varible can also be
set from a :term:`Configuration File`, such as a distro
configuration file, if the list of required image features should apply to
all images using this :term:`DISTRO`.
:term:`REQUIRED_MACHINE_FEATURES`
When inheriting the :ref:`ref-classes-features_check` class, this variable
identifies :term:`MACHINE_FEATURES` that must exist in the current
configuration in order for the :term:`OpenEmbedded Build System` to build
the recipe. In other words, if the :term:`REQUIRED_MACHINE_FEATURES` variable
lists a feature that does not appear in :term:`MACHINE_FEATURES` within the
current configuration, then the recipe will be skipped, and if the build
system attempts to build the recipe then an error will be triggered.
:term:`REQUIRED_VERSION`
If there are multiple versions of a recipe available, this variable
determines which version should be given preference.
@@ -8174,7 +8238,7 @@ system and gives an overview of their function and contents.
directory for the build host.
:term:`STAGING_DIR`
Helps construct the ``recipe-sysroots`` directory, which is used
Helps construct the ``recipe-sysroot*`` directories, which are used
during packaging.
For information on how staging for recipe-specific sysroots occurs,
@@ -9422,6 +9486,22 @@ system and gives an overview of their function and contents.
passes and uses "all" for the target during the U-Boot building
process.
:term:`UNINATIVE_CHECKSUM`
When inheriting the :ref:`ref-classes-uninative` class, the
:term:`UNINATIVE_CHECKSUM` variable flags contain the checksums of the
uninative tarball as specified by the :term:`UNINATIVE_URL` variable.
There should be one checksum per tarballs published at
:term:`UNINATIVE_URL`, which match architectures. For example::
UNINATIVE_CHECKSUM[aarch64] ?= "812045d826b7fda88944055e8526b95a5a9440bfef608d5b53fd52faab49bf85"
UNINATIVE_CHECKSUM[i686] ?= "5cc28efd0c15a75de4bcb147c6cce65f1c1c9d442173a220f08427f40a3ffa09"
UNINATIVE_CHECKSUM[x86_64] ?= "4c03d1ed2b7b4e823aca4a1a23d8f2e322f1770fc10e859adcede5777aff4f3a"
:term:`UNINATIVE_URL`
When inheriting the :ref:`ref-classes-uninative` class, the
:term:`UNINATIVE_URL` variable contains the URL where the uninative
tarballs are published.
:term:`UNKNOWN_CONFIGURE_OPT_IGNORE`
Specifies a list of options that, if reported by the configure script
as being invalid, should not generate a warning during the
@@ -9517,6 +9597,18 @@ system and gives an overview of their function and contents.
the Yocto Project Development Tasks Manual for information on how to
use this variable.
:term:`USE_NLS`
Determine if language translations should be built for recipes that can
build them. This variable can be equal to:
- ``yes``: translations are enabled.
- ``no``: translation are disabled.
Recipes can use the value of this variable to enable language
translations in their build. Classes such as :ref:`ref-classes-gettext`
use the value of this variable to enable :wikipedia:`Gettext <Gettext>`
support.
:term:`USE_VT`
When using
:ref:`SysVinit <dev-manual/new-recipe:enabling system services>`,

View File

@@ -0,0 +1,14 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
================================
Yocto Project Security Reference
================================
.. toctree::
:caption: Table of Contents
:numbered:
security-team
reporting-vulnerabilities
.. include:: /boilerplate.rst

View File

@@ -0,0 +1,85 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Reporting Vulnerabilities
*************************
The Yocto Project and OpenEmbedded are open-source, community-based projects
used in numerous products. They assemble multiple other open-source projects,
and need to handle security issues and practices both internal (in the code
maintained by both projects), and external (maintained by other projects and
organizations).
This manual assembles security-related information concerning the whole
ecosystem. It includes information on reporting a potential security issue,
the operation of the YP Security team and how to contribute in the
related code. It is written to be useful for both security researchers and
YP developers.
How to report a potential security vulnerability?
=================================================
If you would like to report a public issue (for example, one with a released
CVE number), please report it using the
:yocto_bugs:`Security Bugzilla </enter_bug.cgi?product=Security>`.
If you are dealing with a not-yet-released issue, or an urgent one, please send
a message to security AT yoctoproject DOT org, including as many details as
possible: the layer or software module affected, the recipe and its version,
and any example code, if available. This mailing list is monitored by the
Yocto Project Security team.
For each layer, you might also look for specific instructions (if any) for
reporting potential security issues in the specific ``SECURITY.md`` file at the
root of the repository. Instructions on how and where submit a patch are
usually available in ``README.md``. If this is your first patch to the
Yocto Project/OpenEmbedded, you might want to have a look into the
Contributor's Manual section
":ref:`contributor-guide/submit-changes:preparing changes for submission`".
Branches maintained with security fixes
---------------------------------------
See the
:ref:`Release process <ref-manual/release-process:Stable Release Process>`
documentation for details regarding the policies and maintenance of stable
branches.
The :yocto_home:`Releases </development/releases/>` page contains a list of all
releases of the Yocto Project, grouped into current and previous releases.
Previous releases are no longer actively maintained with security patches, but
well-tested patches may still be accepted for them for significant issues.
Security-related discussions at the Yocto Project
-------------------------------------------------
We have set up two security-related emails/mailing lists:
- Public Mailing List: yocto [dash] security [at] yoctoproject[dot] org
This is a public mailing list for anyone to subscribe to. This list is an
open list to discuss public security issues/patches and security-related
initiatives. For more information, including subscription information,
please see the :yocto_lists:`yocto-security mailing list info page
</g/yocto-security>`.
This list requires moderator approval for new topics to be posted, to avoid
private security reports to be posted by mistake.
- Yocto Project Security Team: security [at] yoctoproject [dot] org
This is an email for reporting non-published potential vulnerabilities.
Emails sent to this address are forwarded to the Yocto Project Security
Team members.
What you should do if you find a security vulnerability
-------------------------------------------------------
If you find a security flaw: a crash, an information leakage, or anything that
can have a security impact if exploited in any Open Source software built or
used by the Yocto Project, please report this to the Yocto Project Security
Team. If you prefer to contact the upstream project directly, please send a
copy to the security team at the Yocto Project as well. If you believe this is
highly sensitive information, please report the vulnerability in a secure way,
i.e. encrypt the email and send it to the private list. This ensures that
the exploit is not leaked and exploited before a response/fix has been generated.

View File

@@ -0,0 +1,110 @@
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
Security team
*************
The Yocto Project/OpenEmbedded security team coordinates the work on security
subjects in the project. All general discussion takes place publicly. The
Security Team only uses confidential communication tools to deal with private
vulnerability reports before they are released.
Security team appointment
=========================
The Yocto Project Security Team consists of at least three members. When new
members are needed, the Yocto Project Technical Steering Committee (YP TSC)
asks for nominations by public channels including a nomination deadline.
Self-nominations are possible. When the limit time is
reached, the YP TSC posts the list of candidates for the comments of project
participants and developers. Comments may be sent publicly or privately to the
YP and OE TSCs. The candidates are approved by both YP TSC and OpenEmbedded
Technical Steering Committee (OE TSC) and the final list of the team members
is announced publicly. The aim is to have people representing technical
leadership, security knowledge and infrastructure present with enough people
to provide backup/coverage but keep the notification list small enough to
minimize information risk and maintain trust.
YP Security Team members may resign at any time.
Security Team Operations
========================
The work of the Security Team might require high confidentiality. Team members
are individuals selected by merit and do not represent the companies they work
for. They do not share information about confidential issues outside of the team
and do not hint about ongoing embargoes.
Team members can bring in domain experts as needed. Those people should be
added to individual issues only and adhere to the same standards as the YP
Security Team.
The YP security team organizes its meetings and communication as needed.
When the YP Security team receives a report about a potential security
vulnerability, they quickly analyze and notify the reporter of the result.
They might also request more information.
If the issue is confirmed and affects the code maintained by the YP, they
confidentially notify maintainers of that code and work with them to prepare
a fix.
If the issue is confirmed and affects an upstream project, the YP security team
notifies the project. Usually, the upstream project analyzes the problem again.
If they deem it a real security problem in their software, they develop and
release a fix following their security policy. They may want to include the
original reporter in the loop. There is also sometimes some coordination for
handling patches, backporting patches etc, or just understanding the problem
or what caused it.
When the fix is publicly available, the YP security team member or the
package maintainer sends patches against the YP code base, following usual
procedures, including public code review.
What Yocto Security Team does when it receives a security vulnerability
=======================================================================
The YP Security Team team performs a quick analysis and would usually report
the flaw to the upstream project. Normally the upstream project analyzes the
problem. If they deem it a real security problem in their software, they
develop and release a fix following their own security policy. They may want
to include the original reporter in the loop. There is also sometimes some
coordination for handling patches, backporting patches etc, or just
understanding the problem or what caused it.
The security policy of the upstream project might include a notification to
Linux distributions or other important downstream projects in advance to
discuss coordinated disclosure. These mailing lists are normally non-public.
When the upstream project releases a version with the fix, they are responsible
for contacting `Mitre <https://www.cve.org/>`__ to get a CVE number assigned and
the CVE record published.
If an upstream project does not respond quickly
===============================================
If an upstream project does not fix the problem in a reasonable time,
the Yocto's Security Team will contact other interested parties (usually
other distributions) in the community and together try to solve the
vulnerability as quickly as possible.
The Yocto Project Security team adheres to the 90 days disclosure policy
by default. An increase of the embargo time is possible when necessary.
Security Team Members
=====================
For secure communications, please send your messages encrypted using the GPG
keys. Remember, message headers are not encrypted so do not include sensitive
information in the subject line.
- Ross Burton: <ross [at] burtonini [dot] com> `Public key <https://keys.openpgp.org/search?q=ross%40burtonini.com>`__
- Michael Halstead: <mhalstead [at] linuxfoundation [dot] org>
`Public key <https://pgp.mit.edu/pks/lookup?op=vindex&search=0x3373170601861969>`__
or `Public key <https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xd1f2407285e571ed12a407a73373170601861969>`__
- Richard Purdie: <richard.purdie [at] linuxfoundation [dot] org> `Public key <https://keys.openpgp.org/search?q=richard.purdie%40linuxfoundation.org>`__
- Marta Rybczynska: <marta DOT rybczynska [at] syslinbit [dot] com> `Public key <https://keys.openpgp.org/search?q=marta.rybczynska@syslinbit.com>`__
- Steve Sakoman: <steve [at] sakoman [dot] com> `Public key <https://keys.openpgp.org/search?q=steve%40sakoman.com>`__

View File

@@ -70,6 +70,25 @@ test. Here is what you have to do for each recipe:
cd test
make -k runtest-TESTS
- *Return an appropriate exit code*: The ``run-ptest`` script must return 0 on
success, 1 on failure. This is needed by ``ptest-runner`` to keep track of
the successful and failed tests.
- *Make sure the test prints at least one test result*: The execution of the
``run-ptest`` script must result in at least one test result output on the
console, with the following format::
result: testname
Where ``result`` can be one of ``PASS``, ``SKIP``, or ``FAIL``. ``testname``
can be any name.
There can be as many test results as desired.
This information is read by the :ref:`ref-classes-testimage` class and
:oe_git:`logparser </openembedded-core/tree/meta/lib/oeqa/utils/logparser.py>`
module.
- *Ensure dependencies are met:* If the test adds build or runtime
dependencies that normally do not exist for the package (such as
requiring "make" to run the test suite), use the

View File

@@ -113,7 +113,7 @@ If ``OEQA_DEBUGGING_SAVED_OUTPUT`` is set, any differing packages will be saved
here. The test is also able to run the ``diffoscope`` command on the output to
generate HTML files showing the differences between the packages, to aid
debugging. On the Autobuilder, these appear under
https://autobuilder.yocto.io/pub/repro-fail/ in the form ``oe-reproducible +
https://valkyrie.yocto.io/pub/repro-fail/ in the form ``oe-reproducible +
<date> + <random ID>``, e.g. ``oe-reproducible-20200202-1lm8o1th``.
The project's current reproducibility status can be seen at

View File

@@ -69,7 +69,7 @@ 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_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
are placed into a directory in https://valkyrie.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:

View File

@@ -38,7 +38,7 @@ Benefits
and flexible: it gives users the ultimate power to change pretty much any
aspect of the system but as with most things, power comes with responsibility.
The Yocto Project would like to see people able to mix and match BSPs with
distro configs or software stacks and be able to merge succesfully.
distro configs or software stacks and be able to merge successfully.
Over time, the project identified characteristics in layers that allow them
to operate well together. "anti-patterns" were also found, preventing layers
from working well together.

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.30"
DISTRO_VERSION = "4.0.33"
DISTRO_CODENAME = "kirkstone"
SDK_VENDOR = "-pokysdk"
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"

View File

@@ -95,3 +95,39 @@ addtask addto_recipe_sysroot after do_populate_sysroot
do_addto_recipe_sysroot[deptask] = "do_populate_sysroot"
PATH:prepend = "${COREBASE}/scripts/cross-intercept:"
#
# Cross task outputs can call native dependencies and even when cross
# recipe output doesn't change it might produce different results when
# the called native dependency is changed, e.g. clang-cross-${TARGET_ARCH}
# contains symlink to clang binary from clang-native, but when clang-native
# outhash is changed, clang-cross-${TARGET_ARCH} will still be considered
# equivalent and target recipes aren't rebuilt with new clang binary, see
# work around in https://github.com/kraj/meta-clang/pull/1140 to make target
# recipes to depend directly not only on clang-cross-${TARGET_ARCH} but
# clang-native as well.
#
# This can cause poor interactions with hash equivalence, since this recipes
# output-changing dependency is "hidden" and downstream task only see that this
# recipe has the same outhash and therefore is equivalent. This can result in
# different output in different cases.
#
# To resolve this, unhide the output-changing dependency by adding its unihash
# to this tasks outhash calculation. Unfortunately, don't know specifically
# know which dependencies are output-changing, so we have to add all of them.
#
python cross_add_do_populate_sysroot_deps () {
current_task = "do_" + d.getVar("BB_CURRENTTASK")
if current_task != "do_populate_sysroot":
return
taskdepdata = d.getVar("BB_TASKDEPDATA", False)
pn = d.getVar("PN")
deps = {
dep[0]:dep[6] for dep in taskdepdata.values() if
dep[1] == current_task and dep[0] != pn
}
d.setVar("HASHEQUIV_EXTRA_SIGDATA", "\n".join("%s: %s" % (k, deps[k]) for k in sorted(deps.keys())))
}
SSTATECREATEFUNCS += "cross_add_do_populate_sysroot_deps"

View File

@@ -18,6 +18,9 @@ TARGET_GOMIPS = "${@go_map_mips(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES
TARGET_GOARM:class-native = "7"
TARGET_GO386:class-native = "sse2"
TARGET_GOMIPS:class-native = "hardfloat"
TARGET_GOARM:class-crosssdk = "7"
TARGET_GO386:class-crosssdk = "sse2"
TARGET_GOMIPS:class-crosssdk = "hardfloat"
TARGET_GOTUPLE = "${TARGET_GOOS}_${TARGET_GOARCH}"
GO_BUILD_BINDIR = "${@['bin/${HOST_GOTUPLE}','bin'][d.getVar('BUILD_GOTUPLE') == d.getVar('HOST_GOTUPLE')]}"

View File

@@ -690,7 +690,7 @@ DEBIAN_MIRROR = "http://ftp.debian.org/debian/pool"
GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles"
GNOME_GIT = "git://gitlab.gnome.org/GNOME"
GNOME_MIRROR = "https://download.gnome.org/sources/"
GNU_MIRROR = "https://ftp.gnu.org/gnu"
GNU_MIRROR = "https://ftpmirror.gnu.org/gnu"
GNUPG_MIRROR = "https://www.gnupg.org/ftp/gcrypt"
GPE_MIRROR = "http://gpe.linuxtogo.org/download/source"
KERNELORG_MIRROR = "https://cdn.kernel.org/pub"

View File

@@ -12,7 +12,7 @@ class BuildCpioTest(OERuntimeTestCase):
@classmethod
def setUpClass(cls):
uri = 'https://downloads.yoctoproject.org/mirror/sources/cpio-2.13.tar.gz'
uri = 'https://downloads.yoctoproject.org/mirror/sources/cpio-2.14.tar.gz'
cls.project = TargetBuildProject(cls.tc.target,
uri,
dl_dir = cls.tc.td['DL_DIR'])

View File

@@ -17,10 +17,10 @@ class BuildCpioTest(OESDKTestCase):
"""
def test_cpio(self):
with tempfile.TemporaryDirectory(prefix="cpio-", dir=self.tc.sdk_dir) as testdir:
tarball = self.fetch(testdir, self.td["DL_DIR"], "https://ftp.gnu.org/gnu/cpio/cpio-2.13.tar.gz")
tarball = self.fetch(testdir, self.td["DL_DIR"], "https://ftpmirror.gnu.org/gnu/cpio/cpio-2.14.tar.gz")
dirs = {}
dirs["source"] = os.path.join(testdir, "cpio-2.13")
dirs["source"] = os.path.join(testdir, "cpio-2.14")
dirs["build"] = os.path.join(testdir, "build")
dirs["install"] = os.path.join(testdir, "install")

View File

@@ -40,7 +40,7 @@ class MetaIDE(OESelftestTestCase):
def test_meta_ide_can_build_cpio_project(self):
dl_dir = self.td.get('DL_DIR', None)
self.project = SDKBuildProject(self.tmpdir_metaideQA + "/cpio/", self.environment_script_path,
"https://ftp.gnu.org/gnu/cpio/cpio-2.13.tar.gz",
"https://ftpmirror.gnu.org/gnu/cpio/cpio-2.14.tar.gz",
self.tmpdir_metaideQA, self.td['DATETIME'], dl_dir=dl_dir)
self.project.download_archive()
self.assertEqual(self.project.run_configure('$CONFIGURE_FLAGS --disable-maintainer-mode','sed -i -e "/char \*program_name/d" src/global.c;'), 0,

View File

@@ -10,7 +10,7 @@ DEPENDS = "efivar popt"
COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=master \
SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https;branch=main \
file://0001-remove-extra-decl.patch \
file://97668ae0bce776a36ea2001dea63d376be8274ac.patch \
file://0001-src-make-compatible-with-efivar-38.patch \

View File

@@ -0,0 +1,75 @@
From 4cef2fc7308b2132317ad166939994f098b41561 Mon Sep 17 00:00:00 2001
From: Ross Burton <ross.burton@arm.com>
Date: Tue, 9 Sep 2025 14:23:14 +0100
Subject: [PATCH] CVE-2024-56738
Backport an algorithmic change to grub_crypto_memcmp() so that it completes in
constant time and thus isn't susceptible to side-channel attacks.
This is a partial backport of grub 0739d24cd
("libgcrypt: Adjust import script, definitions and API users for libgcrypt 1.11")
CVE: CVE-2024-56738
Upstream-Status: Backport [0739d24cd]
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Yogita Urade <yogita.urade@windriver.com>
---
grub-core/lib/crypto.c | 23 ++++++++++++++++-------
include/grub/crypto.h | 2 +-
2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c
index ca334d5..1bfa922 100644
--- a/grub-core/lib/crypto.c
+++ b/grub-core/lib/crypto.c
@@ -433,19 +433,28 @@ grub_crypto_gcry_error (gcry_err_code_t in)
return GRUB_ACCESS_DENIED;
}
+/*
+ * Compare byte arrays of length LEN, return 1 if it's not same,
+ * 0, otherwise.
+ */
int
-grub_crypto_memcmp (const void *a, const void *b, grub_size_t n)
+grub_crypto_memcmp (const void *b1, const void *b2, grub_size_t len)
{
- register grub_size_t counter = 0;
- const grub_uint8_t *pa, *pb;
+ const grub_uint8_t *a = b1;
+ const grub_uint8_t *b = b2;
+ int ab, ba;
+ grub_size_t i;
- for (pa = a, pb = b; n; pa++, pb++, n--)
+ /* Constant-time compare. */
+ for (i = 0, ab = 0, ba = 0; i < len; i++)
{
- if (*pa != *pb)
- counter++;
+ /* If a[i] != b[i], either ab or ba will be negative. */
+ ab |= a[i] - b[i];
+ ba |= b[i] - a[i];
}
- return !!counter;
+ /* 'ab | ba' is negative when buffers are not equal, extract sign bit. */
+ return ((unsigned int)(ab | ba) >> (sizeof(unsigned int) * 8 - 1)) & 1;
}
#ifndef GRUB_UTIL
diff --git a/include/grub/crypto.h b/include/grub/crypto.h
index 21cd1f7..432912b 100644
--- a/include/grub/crypto.h
+++ b/include/grub/crypto.h
@@ -393,7 +393,7 @@ grub_crypto_pbkdf2 (const struct gcry_md_spec *md,
grub_uint8_t *DK, grub_size_t dkLen);
int
-grub_crypto_memcmp (const void *a, const void *b, grub_size_t n);
+grub_crypto_memcmp (const void *b1, const void *b2, grub_size_t len);
int
grub_password_get (char buf[], unsigned buf_size);
--
2.40.0

View File

@@ -0,0 +1,40 @@
From 9c2ae73b549a653f5f1bd5d4edebc50a764bad06 Mon Sep 17 00:00:00 2001
From: Jamie <volticks@gmail.com>
Date: Mon, 14 Jul 2025 09:52:59 +0100
Subject: [PATCH 1/3] commands/usbtest: Use correct string length field
An incorrect length field is used for buffer allocation. This leads to
grub_utf16_to_utf8() receiving an incorrect/different length and possibly
causing OOB write. This makes sure to use the correct length.
Fixes: CVE-2025-61661
CVE: CVE-2025-61661
Upstream-Status: Backport
[https://gitweb.git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=549a9cc372fd0b96a4ccdfad0e12140476cc62a3]
Reported-by: Jamie <volticks@gmail.com>
Signed-off-by: Jamie <volticks@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
Signed-off-by: Jiaying Song <jiaying.song.cn@windriver.com>
---
grub-core/commands/usbtest.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/commands/usbtest.c b/grub-core/commands/usbtest.c
index 2c6d93fe6..8ef187a9a 100644
--- a/grub-core/commands/usbtest.c
+++ b/grub-core/commands/usbtest.c
@@ -99,7 +99,7 @@ grub_usb_get_string (grub_usb_device_t dev, grub_uint8_t index, int langid,
return GRUB_USB_ERR_NONE;
}
- *string = grub_malloc (descstr.length * 2 + 1);
+ *string = grub_malloc (descstrp->length * 2 + 1);
if (! *string)
{
grub_free (descstrp);
--
2.34.1

View File

@@ -0,0 +1,72 @@
From c47760a907c91283bac9a8400d6975574b1d3986 Mon Sep 17 00:00:00 2001
From: Alec Brown <alec.r.brown@oracle.com>
Date: Thu, 21 Aug 2025 21:14:06 +0000
Subject: [PATCH 2/3] gettext/gettext: Unregister gettext command on module
unload
When the gettext module is loaded, the gettext command is registered but
isn't unregistered when the module is unloaded. We need to add a call to
grub_unregister_command() when unloading the module.
Fixes: CVE-2025-61662
CVE: CVE-2025-61662
Upstream-Status: Backport
[https://gitweb.git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=8ed78fd9f0852ab218cc1f991c38e5a229e43807]
Reported-by: Alec Brown <alec.r.brown@oracle.com>
Signed-off-by: Alec Brown <alec.r.brown@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
Signed-off-by: Jiaying Song <jiaying.song.cn@windriver.com>
---
grub-core/gettext/gettext.c | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c
index 7a25c9d67..ef1258ee0 100644
--- a/grub-core/gettext/gettext.c
+++ b/grub-core/gettext/gettext.c
@@ -502,6 +502,8 @@ grub_cmd_translate (grub_command_t cmd __attribute__ ((unused)),
return 0;
}
+static grub_command_t cmd;
+
GRUB_MOD_INIT (gettext)
{
const char *lang;
@@ -521,13 +523,14 @@ GRUB_MOD_INIT (gettext)
grub_register_variable_hook ("locale_dir", NULL, read_main);
grub_register_variable_hook ("secondary_locale_dir", NULL, read_secondary);
- grub_register_command_p1 ("gettext", grub_cmd_translate,
- N_("STRING"),
- /* TRANSLATORS: It refers to passing the string through gettext.
- So it's "translate" in the same meaning as in what you're
- doing now.
- */
- N_("Translates the string with the current settings."));
+ cmd = grub_register_command_p1 ("gettext", grub_cmd_translate,
+ N_("STRING"),
+ /*
+ * TRANSLATORS: It refers to passing the string through gettext.
+ * So it's "translate" in the same meaning as in what you're
+ * doing now.
+ */
+ N_("Translates the string with the current settings."));
/* Reload .mo file information if lang changes. */
grub_register_variable_hook ("lang", NULL, grub_gettext_env_write_lang);
@@ -544,6 +547,8 @@ GRUB_MOD_FINI (gettext)
grub_register_variable_hook ("secondary_locale_dir", NULL, NULL);
grub_register_variable_hook ("lang", NULL, NULL);
+ grub_unregister_command (cmd);
+
grub_gettext_delete_list (&main_context);
grub_gettext_delete_list (&secondary_context);
--
2.34.1

View File

@@ -0,0 +1,64 @@
From a182bd873e4aa93205ecbb7845ef7f0eda99dcf5 Mon Sep 17 00:00:00 2001
From: Alec Brown <alec.r.brown@oracle.com>
Date: Thu, 21 Aug 2025 21:14:07 +0000
Subject: [PATCH 3/3] normal/main: Unregister commands on module unload
When the normal module is loaded, the normal and normal_exit commands
are registered but aren't unregistered when the module is unloaded. We
need to add calls to grub_unregister_command() when unloading the module
for these commands.
Fixes: CVE-2025-61663
Fixes: CVE-2025-61664
CVE: CVE-2025-61663 CVE-2025-61664
Upstream-Status: Backport
[https://gitweb.git.savannah.gnu.org/gitweb/?p=grub.git;a=commit;h=05d3698b8b03eccc49e53491bbd75dba15f40917]
Reported-by: Alec Brown <alec.r.brown@oracle.com>
Signed-off-by: Alec Brown <alec.r.brown@oracle.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
Signed-off-by: Jiaying Song <jiaying.song.cn@windriver.com>
---
grub-core/normal/main.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
index a95c25e5f..9d576de7a 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -499,7 +499,7 @@ grub_mini_cmd_clear (struct grub_command *cmd __attribute__ ((unused)),
return 0;
}
-static grub_command_t cmd_clear;
+static grub_command_t cmd_clear, cmd_normal, cmd_normal_exit;
static void (*grub_xputs_saved) (const char *str);
static const char *features[] = {
@@ -541,10 +541,10 @@ GRUB_MOD_INIT(normal)
grub_env_export ("pager");
/* Register a command "normal" for the rescue mode. */
- grub_register_command ("normal", grub_cmd_normal,
- 0, N_("Enter normal mode."));
- grub_register_command ("normal_exit", grub_cmd_normal_exit,
- 0, N_("Exit from normal mode."));
+ cmd_normal = grub_register_command ("normal", grub_cmd_normal,
+ 0, N_("Enter normal mode."));
+ cmd_normal_exit = grub_register_command ("normal_exit", grub_cmd_normal_exit,
+ 0, N_("Exit from normal mode."));
/* Reload terminal colors when these variables are written to. */
grub_register_variable_hook ("color_normal", NULL, grub_env_write_color_normal);
@@ -586,4 +586,6 @@ GRUB_MOD_FINI(normal)
grub_register_variable_hook ("color_highlight", NULL, NULL);
grub_fs_autoload_hook = 0;
grub_unregister_command (cmd_clear);
+ grub_unregister_command (cmd_normal);
+ grub_unregister_command (cmd_normal_exit);
}
--
2.34.1

View File

@@ -59,6 +59,10 @@ SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
file://CVE-2025-0678_CVE-2025-1125.patch \
file://CVE-2025-0690.patch \
file://CVE-2025-1118.patch \
file://CVE-2024-56738.patch \
file://CVE-2025-61661.patch \
file://CVE-2025-61662.patch \
file://CVE-2025-61663_61664.patch \
"
SRC_URI[sha256sum] = "23b64b4c741569f9426ed2e3d0e6780796fca081bee4c99f62aa3f53ae803f5f"
@@ -69,6 +73,8 @@ CVE_CHECK_IGNORE += "CVE-2019-14865"
CVE_CHECK_IGNORE += "CVE-2021-46705"
# not-applicable-platform: Applies only to RHEL/Fedora
CVE_CHECK_IGNORE += "CVE-2024-1048 CVE-2023-4001"
# not-applicable-platform: Applies only to Ubuntu
CVE_CHECK_IGNORE += "CVE-2024-2312"
DEPENDS = "flex-native bison-native gettext-native"

View File

@@ -0,0 +1,56 @@
From 1406fc918977bba4dac0af5e22e63a5553aa6aff Mon Sep 17 00:00:00 2001
From: Paul HENRYS <paul.henrys_ext@softathome.com>
Date: Thu, 9 Oct 2025 17:43:28 +0200
Subject: [PATCH] net: bootp: Prevent buffer overflow to avoid leaking the RAM
content
CVE-2024-42040 describes a possible buffer overflow when calling
bootp_process_vendor() in bootp_handler() since the total length
of the packet is passed to bootp_process_vendor() without being
reduced to len-(offsetof(struct bootp_hdr,bp_vend)+4).
The packet length is also checked against its minimum size to avoid
reading data from struct bootp_hdr outside of the packet length.
Signed-off-by: Paul HENRYS <paul.henrys_ext@softathome.com>
Signed-off-by: Philippe Reynes <philippe.reynes@softathome.com>
CVE: CVE-2024-42040
Upstream-Status: Backport [https://source.denx.de/u-boot/u-boot/-/commit/81e5708cc2c865df606e49aed5415adb2a662171]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
net/bootp.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/net/bootp.c b/net/bootp.c
index 68002909634..843180d296c 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -362,6 +362,14 @@ static void bootp_handler(uchar *pkt, unsigned dest, struct in_addr sip,
debug("got BOOTP packet (src=%d, dst=%d, len=%d want_len=%zu)\n",
src, dest, len, sizeof(struct bootp_hdr));
+ /* Check the minimum size of a BOOTP packet is respected.
+ * A BOOTP packet is between 300 bytes and 576 bytes big
+ */
+ if (len < offsetof(struct bootp_hdr, bp_vend) + 64) {
+ printf("Error: got an invalid BOOTP packet (len=%u)\n", len);
+ return;
+ }
+
bp = (struct bootp_hdr *)pkt;
/* Filter out pkts we don't want */
@@ -379,7 +387,8 @@ static void bootp_handler(uchar *pkt, unsigned dest, struct in_addr sip,
/* Retrieve extended information (we must parse the vendor area) */
if (net_read_u32((u32 *)&bp->bp_vend[0]) == htonl(BOOTP_VENDOR_MAGIC))
- bootp_process_vendor((uchar *)&bp->bp_vend[4], len);
+ bootp_process_vendor((uchar *)&bp->bp_vend[4], len -
+ (offsetof(struct bootp_hdr, bp_vend) + 4));
net_set_timeout_handler(0, (thand_f *)0);
bootstage_mark_name(BOOTSTAGE_ID_BOOTP_STOP, "bootp_stop");
--
2.49.0

View File

@@ -14,7 +14,9 @@ PE = "1"
# repo during parse
SRCREV = "d637294e264adfeb29f390dfc393106fd4d41b17"
SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master"
SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master \
file://CVE-2024-42040.patch \
"
S = "${WORKDIR}/git"
B = "${WORKDIR}/build"

View File

@@ -20,7 +20,7 @@ SRC_URI = "https://ftp.isc.org/isc/bind9/${PV}/${BPN}-${PV}.tar.xz \
file://0001-avoid-start-failure-with-bind-user.patch \
"
SRC_URI[sha256sum] = "fb373fac5ebbc41c645160afd5a9fb451918f6c0e69ab1d9474154e2b515de40"
SRC_URI[sha256sum] = "6ddc1d981511c4da0b203b0513af131e5d15e5f1c261145736fe1f35dd1fe79d"
UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
# follow the ESV versions divisible by 2

View File

@@ -0,0 +1,38 @@
From 7224be0fe2f4beb916b7b69141f478facd0f0634 Mon Sep 17 00:00:00 2001
From: Denis Ovsienko <denis@ovsienko.info>
Date: Sat, 27 Dec 2025 21:36:11 +0000
Subject: [PATCH] Rename one of the xdtoi() copies to simplify backporting.
CVE: CVE-2025-11961
Upstream-Status: Backport [https://github.com/the-tcpdump-group/libpcap/commit/7224be0fe2f4beb916b7b69141f478facd0f0634]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
nametoaddr.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/nametoaddr.c b/nametoaddr.c
index dc75495c..bdaacbf1 100644
--- a/nametoaddr.c
+++ b/nametoaddr.c
@@ -646,7 +646,7 @@ pcap_nametollc(const char *s)
/* Hex digit to 8-bit unsigned integer. */
static inline u_char
-xdtoi(u_char c)
+pcapint_xdtoi(u_char c)
{
if (c >= '0' && c <= '9')
return (u_char)(c - '0');
@@ -728,10 +728,10 @@ pcap_ether_aton(const char *s)
while (*s) {
if (*s == ':' || *s == '.' || *s == '-')
s += 1;
- d = xdtoi(*s++);
+ d = pcapint_xdtoi(*s++);
if (PCAP_ISXDIGIT(*s)) {
d <<= 4;
- d |= xdtoi(*s++);
+ d |= pcapint_xdtoi(*s++);
}
*ep++ = d;
}

View File

@@ -0,0 +1,433 @@
From b2d2f9a9a0581c40780bde509f7cc715920f1c02 Mon Sep 17 00:00:00 2001
From: Denis Ovsienko <denis@ovsienko.info>
Date: Fri, 19 Dec 2025 17:31:13 +0000
Subject: [PATCH] CVE-2025-11961: Fix OOBR and OOBW in pcap_ether_aton().
pcap_ether_aton() has for a long time required its string argument to be
a well-formed MAC-48 address, which is always the case when the argument
comes from other libpcap code, so the function has never validated the
input and used a simple loop to parse any of the three common MAC-48
address formats. However, the function has also been a part of the
public API, so calling it directly with a malformed address can cause
the loop to read beyond the end of the input string and/or to write
beyond the end of the allocated output buffer.
To handle invalid input more appropriately, replace the simple loop with
new functions and require the input to match a supported address format.
This problem was reported by Jin Wei, Kunwei Qian and Ping Chen.
(backported from commit dd08e53e9380e217ae7c7768da9cc3d7bf37bf83)
CVE: CVE-2025-11961
Upstream-Status: Backport [https://github.com/the-tcpdump-group/libpcap/commit/b2d2f9a9a0581c40780bde509f7cc715920f1c02]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
gencode.c | 5 +
nametoaddr.c | 367 +++++++++++++++++++++++++++++++++++++++++++++++----
2 files changed, 349 insertions(+), 23 deletions(-)
diff --git a/gencode.c b/gencode.c
index 3ddd15f8..76fb2d82 100644
--- a/gencode.c
+++ b/gencode.c
@@ -7206,6 +7206,11 @@ gen_ecode(compiler_state_t *cstate, const char *s, struct qual q)
return (NULL);
if ((q.addr == Q_HOST || q.addr == Q_DEFAULT) && q.proto == Q_LINK) {
+ /*
+ * Because the lexer guards the input string format, in this
+ * context the function returns NULL iff the implicit malloc()
+ * has failed.
+ */
cstate->e = pcap_ether_aton(s);
if (cstate->e == NULL)
bpf_error(cstate, "malloc");
diff --git a/nametoaddr.c b/nametoaddr.c
index f9fcd288..f50d0da5 100644
--- a/nametoaddr.c
+++ b/nametoaddr.c
@@ -703,39 +703,360 @@ __pcap_atodn(const char *s, bpf_u_int32 *addr)
return(32);
}
+// Man page: "xxxxxxxxxxxx", regexp: "^[0-9a-fA-F]{12}$".
+static u_char
+pcapint_atomac48_xxxxxxxxxxxx(const char *s, uint8_t *addr)
+{
+ if (strlen(s) == 12 &&
+ PCAP_ISXDIGIT(s[0]) &&
+ PCAP_ISXDIGIT(s[1]) &&
+ PCAP_ISXDIGIT(s[2]) &&
+ PCAP_ISXDIGIT(s[3]) &&
+ PCAP_ISXDIGIT(s[4]) &&
+ PCAP_ISXDIGIT(s[5]) &&
+ PCAP_ISXDIGIT(s[6]) &&
+ PCAP_ISXDIGIT(s[7]) &&
+ PCAP_ISXDIGIT(s[8]) &&
+ PCAP_ISXDIGIT(s[9]) &&
+ PCAP_ISXDIGIT(s[10]) &&
+ PCAP_ISXDIGIT(s[11])) {
+ addr[0] = pcapint_xdtoi(s[0]) << 4 | pcapint_xdtoi(s[1]);
+ addr[1] = pcapint_xdtoi(s[2]) << 4 | pcapint_xdtoi(s[3]);
+ addr[2] = pcapint_xdtoi(s[4]) << 4 | pcapint_xdtoi(s[5]);
+ addr[3] = pcapint_xdtoi(s[6]) << 4 | pcapint_xdtoi(s[7]);
+ addr[4] = pcapint_xdtoi(s[8]) << 4 | pcapint_xdtoi(s[9]);
+ addr[5] = pcapint_xdtoi(s[10]) << 4 | pcapint_xdtoi(s[11]);
+ return 1;
+ }
+ return 0;
+}
+
+// Man page: "xxxx.xxxx.xxxx", regexp: "^[0-9a-fA-F]{4}(\.[0-9a-fA-F]{4}){2}$".
+static u_char
+pcapint_atomac48_xxxx_3_times(const char *s, uint8_t *addr)
+{
+ const char sep = '.';
+ if (strlen(s) == 14 &&
+ PCAP_ISXDIGIT(s[0]) &&
+ PCAP_ISXDIGIT(s[1]) &&
+ PCAP_ISXDIGIT(s[2]) &&
+ PCAP_ISXDIGIT(s[3]) &&
+ s[4] == sep &&
+ PCAP_ISXDIGIT(s[5]) &&
+ PCAP_ISXDIGIT(s[6]) &&
+ PCAP_ISXDIGIT(s[7]) &&
+ PCAP_ISXDIGIT(s[8]) &&
+ s[9] == sep &&
+ PCAP_ISXDIGIT(s[10]) &&
+ PCAP_ISXDIGIT(s[11]) &&
+ PCAP_ISXDIGIT(s[12]) &&
+ PCAP_ISXDIGIT(s[13])) {
+ addr[0] = pcapint_xdtoi(s[0]) << 4 | pcapint_xdtoi(s[1]);
+ addr[1] = pcapint_xdtoi(s[2]) << 4 | pcapint_xdtoi(s[3]);
+ addr[2] = pcapint_xdtoi(s[5]) << 4 | pcapint_xdtoi(s[6]);
+ addr[3] = pcapint_xdtoi(s[7]) << 4 | pcapint_xdtoi(s[8]);
+ addr[4] = pcapint_xdtoi(s[10]) << 4 | pcapint_xdtoi(s[11]);
+ addr[5] = pcapint_xdtoi(s[12]) << 4 | pcapint_xdtoi(s[13]);
+ return 1;
+ }
+ return 0;
+}
+
/*
- * Convert 's', which can have the one of the forms:
+ * Man page: "xx:xx:xx:xx:xx:xx", regexp: "^[0-9a-fA-F]{1,2}(:[0-9a-fA-F]{1,2}){5}$".
+ * Man page: "xx-xx-xx-xx-xx-xx", regexp: "^[0-9a-fA-F]{1,2}(-[0-9a-fA-F]{1,2}){5}$".
+ * Man page: "xx.xx.xx.xx.xx.xx", regexp: "^[0-9a-fA-F]{1,2}(\.[0-9a-fA-F]{1,2}){5}$".
+ * (Any "xx" above can be "x", which is equivalent to "0x".)
*
- * "xx:xx:xx:xx:xx:xx"
- * "xx.xx.xx.xx.xx.xx"
- * "xx-xx-xx-xx-xx-xx"
- * "xxxx.xxxx.xxxx"
- * "xxxxxxxxxxxx"
+ * An equivalent (and parametrisable for EUI-64) FSM could be implemented using
+ * a smaller graph, but that graph would be neither acyclic nor planar nor
+ * trivial to verify.
*
- * (or various mixes of ':', '.', and '-') into a new
- * ethernet address. Assumes 's' is well formed.
+ * |
+ * [.] v
+ * +<---------- START
+ * | |
+ * | | [0-9a-fA-F]
+ * | [.] v
+ * +<--------- BYTE0_X ----------+
+ * | | |
+ * | | [0-9a-fA-F] |
+ * | [.] v |
+ * +<--------- BYTE0_XX | [:\.-]
+ * | | |
+ * | | [:\.-] |
+ * | [.] v |
+ * +<----- BYTE0_SEP_BYTE1 <-----+
+ * | |
+ * | | [0-9a-fA-F]
+ * | [.] v
+ * +<--------- BYTE1_X ----------+
+ * | | |
+ * | | [0-9a-fA-F] |
+ * | [.] v |
+ * +<--------- BYTE1_XX | <sep>
+ * | | |
+ * | | <sep> |
+ * | [.] v |
+ * +<----- BYTE1_SEP_BYTE2 <-----+
+ * | |
+ * | | [0-9a-fA-F]
+ * | [.] v
+ * +<--------- BYTE2_X ----------+
+ * | | |
+ * | | [0-9a-fA-F] |
+ * | [.] v |
+ * +<--------- BYTE2_XX | <sep>
+ * | | |
+ * | | <sep> |
+ * | [.] v |
+ * +<----- BYTE2_SEP_BYTE3 <-----+
+ * | |
+ * | | [0-9a-fA-F]
+ * | [.] v
+ * +<--------- BYTE3_X ----------+
+ * | | |
+ * | | [0-9a-fA-F] |
+ * | [.] v |
+ * +<--------- BYTE3_XX | <sep>
+ * | | |
+ * | | <sep> |
+ * | [.] v |
+ * +<----- BYTE3_SEP_BYTE4 <-----+
+ * | |
+ * | | [0-9a-fA-F]
+ * | [.] v
+ * +<--------- BYTE4_X ----------+
+ * | | |
+ * | | [0-9a-fA-F] |
+ * | [.] v |
+ * +<--------- BYTE4_XX | <sep>
+ * | | |
+ * | | <sep> |
+ * | [.] v |
+ * +<----- BYTE4_SEP_BYTE5 <-----+
+ * | |
+ * | | [0-9a-fA-F]
+ * | [.] v
+ * +<--------- BYTE5_X ----------+
+ * | | |
+ * | | [0-9a-fA-F] |
+ * | [.] v |
+ * +<--------- BYTE5_XX | \0
+ * | | |
+ * | | \0 |
+ * | | v
+ * +--> (reject) +---------> (accept)
+ *
+ */
+static u_char
+pcapint_atomac48_x_xx_6_times(const char *s, uint8_t *addr)
+{
+ enum {
+ START,
+ BYTE0_X,
+ BYTE0_XX,
+ BYTE0_SEP_BYTE1,
+ BYTE1_X,
+ BYTE1_XX,
+ BYTE1_SEP_BYTE2,
+ BYTE2_X,
+ BYTE2_XX,
+ BYTE2_SEP_BYTE3,
+ BYTE3_X,
+ BYTE3_XX,
+ BYTE3_SEP_BYTE4,
+ BYTE4_X,
+ BYTE4_XX,
+ BYTE4_SEP_BYTE5,
+ BYTE5_X,
+ BYTE5_XX,
+ } fsm_state = START;
+ uint8_t buf[6];
+ const char *seplist = ":.-";
+ char sep;
+
+ while (*s) {
+ switch (fsm_state) {
+ case START:
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[0] = pcapint_xdtoi(*s);
+ fsm_state = BYTE0_X;
+ break;
+ }
+ goto reject;
+ case BYTE0_X:
+ if (strchr(seplist, *s)) {
+ sep = *s;
+ fsm_state = BYTE0_SEP_BYTE1;
+ break;
+ }
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[0] = buf[0] << 4 | pcapint_xdtoi(*s);
+ fsm_state = BYTE0_XX;
+ break;
+ }
+ goto reject;
+ case BYTE0_XX:
+ if (strchr(seplist, *s)) {
+ sep = *s;
+ fsm_state = BYTE0_SEP_BYTE1;
+ break;
+ }
+ goto reject;
+ case BYTE0_SEP_BYTE1:
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[1] = pcapint_xdtoi(*s);
+ fsm_state = BYTE1_X;
+ break;
+ }
+ goto reject;
+ case BYTE1_X:
+ if (*s == sep) {
+ fsm_state = BYTE1_SEP_BYTE2;
+ break;
+ }
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[1] = buf[1] << 4 | pcapint_xdtoi(*s);
+ fsm_state = BYTE1_XX;
+ break;
+ }
+ goto reject;
+ case BYTE1_XX:
+ if (*s == sep) {
+ fsm_state = BYTE1_SEP_BYTE2;
+ break;
+ }
+ goto reject;
+ case BYTE1_SEP_BYTE2:
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[2] = pcapint_xdtoi(*s);
+ fsm_state = BYTE2_X;
+ break;
+ }
+ goto reject;
+ case BYTE2_X:
+ if (*s == sep) {
+ fsm_state = BYTE2_SEP_BYTE3;
+ break;
+ }
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[2] = buf[2] << 4 | pcapint_xdtoi(*s);
+ fsm_state = BYTE2_XX;
+ break;
+ }
+ goto reject;
+ case BYTE2_XX:
+ if (*s == sep) {
+ fsm_state = BYTE2_SEP_BYTE3;
+ break;
+ }
+ goto reject;
+ case BYTE2_SEP_BYTE3:
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[3] = pcapint_xdtoi(*s);
+ fsm_state = BYTE3_X;
+ break;
+ }
+ goto reject;
+ case BYTE3_X:
+ if (*s == sep) {
+ fsm_state = BYTE3_SEP_BYTE4;
+ break;
+ }
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[3] = buf[3] << 4 | pcapint_xdtoi(*s);
+ fsm_state = BYTE3_XX;
+ break;
+ }
+ goto reject;
+ case BYTE3_XX:
+ if (*s == sep) {
+ fsm_state = BYTE3_SEP_BYTE4;
+ break;
+ }
+ goto reject;
+ case BYTE3_SEP_BYTE4:
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[4] = pcapint_xdtoi(*s);
+ fsm_state = BYTE4_X;
+ break;
+ }
+ goto reject;
+ case BYTE4_X:
+ if (*s == sep) {
+ fsm_state = BYTE4_SEP_BYTE5;
+ break;
+ }
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[4] = buf[4] << 4 | pcapint_xdtoi(*s);
+ fsm_state = BYTE4_XX;
+ break;
+ }
+ goto reject;
+ case BYTE4_XX:
+ if (*s == sep) {
+ fsm_state = BYTE4_SEP_BYTE5;
+ break;
+ }
+ goto reject;
+ case BYTE4_SEP_BYTE5:
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[5] = pcapint_xdtoi(*s);
+ fsm_state = BYTE5_X;
+ break;
+ }
+ goto reject;
+ case BYTE5_X:
+ if (PCAP_ISXDIGIT(*s)) {
+ buf[5] = buf[5] << 4 | pcapint_xdtoi(*s);
+ fsm_state = BYTE5_XX;
+ break;
+ }
+ goto reject;
+ case BYTE5_XX:
+ goto reject;
+ } // switch
+ s++;
+ } // while
+
+ if (fsm_state == BYTE5_X || fsm_state == BYTE5_XX) {
+ // accept
+ memcpy(addr, buf, sizeof(buf));
+ return 1;
+ }
+
+reject:
+ return 0;
+}
+
+// The 'addr' argument must point to an array of at least 6 elements.
+static int
+pcapint_atomac48(const char *s, uint8_t *addr)
+{
+ return s && (
+ pcapint_atomac48_xxxxxxxxxxxx(s, addr) ||
+ pcapint_atomac48_xxxx_3_times(s, addr) ||
+ pcapint_atomac48_x_xx_6_times(s, addr)
+ );
+}
+
+/*
+ * If 's' is a MAC-48 address in one of the forms documented in pcap-filter(7)
+ * for "ether host", return a pointer to an allocated buffer with the binary
+ * value of the address. Return NULL on any error.
*/
u_char *
pcap_ether_aton(const char *s)
{
- register u_char *ep, *e;
- register u_char d;
+ uint8_t tmp[6];
+ if (! pcapint_atomac48(s, tmp))
+ return (NULL);
- e = ep = (u_char *)malloc(6);
+ u_char *e = malloc(6);
if (e == NULL)
return (NULL);
-
- while (*s) {
- if (*s == ':' || *s == '.' || *s == '-')
- s += 1;
- d = pcapint_xdtoi(*s++);
- if (PCAP_ISXDIGIT(*s)) {
- d <<= 4;
- d |= pcapint_xdtoi(*s++);
- }
- *ep++ = d;
- }
-
+ memcpy(e, tmp, sizeof(tmp));
return (e);
}

View File

@@ -0,0 +1,33 @@
From 7fabf607f2319a36a0bd78444247180acb838e69 Mon Sep 17 00:00:00 2001
From: Guy Harris <gharris@sonic.net>
Date: Sun, 7 Sep 2025 12:51:56 -0700
Subject: [PATCH] Fix a copy-and-pasteo in utf_16le_to_utf_8_truncated().
For the four octets of UTF-8 case, it was decrementing the remaining
buffer length by 3, not 4.
Thanks to a team of developers from the Univesity of Waterloo for
reporting this.
(cherry picked from commit aebfca1aea2fc8c177760a26e8f4de27b51d1b3b)
CVE: CVE-2025-11964
Upstream-Status: Backport [https://github.com/the-tcpdump-group/libpcap/commit/7fabf607f2319a36a0bd78444247180acb838e69]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
fmtutils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fmtutils.c b/fmtutils.c
index a5a4fe62..78a0f8b7 100644
--- a/fmtutils.c
+++ b/fmtutils.c
@@ -235,7 +235,7 @@ utf_16le_to_utf_8_truncated(const wchar_t *utf_16, char *utf_8,
*utf_8++ = ((uc >> 12) & 0x3F) | 0x80;
*utf_8++ = ((uc >> 6) & 0x3F) | 0x80;
*utf_8++ = ((uc >> 0) & 0x3F) | 0x80;
- utf_8_len -= 3;
+ utf_8_len -= 4;
}
}

View File

@@ -17,6 +17,9 @@ SRC_URI = "https://www.tcpdump.org/release/${BP}.tar.gz \
file://CVE-2023-7256-pre4.patch \
file://CVE-2023-7256.patch \
file://CVE-2024-8006.patch \
file://CVE-2025-11961-01.patch \
file://CVE-2025-11961-02.patch \
file://CVE-2025-11964.patch \
"
SRC_URI[sha256sum] = "ed285f4accaf05344f90975757b3dbfe772ba41d1c401c2648b7fa45b711bdd4"

View File

@@ -0,0 +1,98 @@
From 35d5917652106aede47621bb3f64044604164043 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Thu, 4 Sep 2025 00:29:09 +0000
Subject: [PATCH] upstream: Improve rules for %-expansion of username.
Usernames passed on the commandline will no longer be subject to
% expansion. Some tools invoke ssh with connection information
(i.e. usernames and host names) supplied from untrusted sources.
These may contain % expansion sequences which could yield
unexpected results.
Since openssh-9.6, all usernames have been subject to validity
checking. This change tightens the validity checks by refusing
usernames that include control characters (again, these can cause
surprises when supplied adversarially).
This change also relaxes the validity checks in one small way:
usernames supplied via the configuration file as literals (i.e.
include no % expansion characters) are not subject to these
validity checks. This allows usernames that contain arbitrary
characters to be used, but only via configuration files. This
is done on the basis that ssh's configuration is trusted.
Pointed out by David Leadbeater, ok deraadt@
OpenBSD-Commit-ID: e2f0c871fbe664aba30607321575e7c7fc798362
CVE: CVE-2025-61984
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/35d5917652106aede47621bb3f64044604164043]
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
---
ssh.c | 11 +++++++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/ssh.c b/ssh.c
index 82ed15f..d4e2040 100644
--- a/ssh.c
+++ b/ssh.c
@@ -634,6 +634,8 @@ valid_ruser(const char *s)
if (*s == '-')
return 0;
for (i = 0; s[i] != 0; i++) {
+ if (iscntrl((u_char)s[i]))
+ return 0;
if (strchr("'`\";&<>|(){}", s[i]) != NULL)
return 0;
/* Disallow '-' after whitespace */
@@ -655,6 +657,7 @@ main(int ac, char **av)
struct ssh *ssh = NULL;
int i, r, opt, exit_status, use_syslog, direct, timeout_ms;
int was_addr, config_test = 0, opt_terminated = 0, want_final_pass = 0;
+ int user_on_commandline = 0, user_was_default = 0, user_expanded = 0;
char *p, *cp, *line, *argv0, *logfile, *host_arg;
char cname[NI_MAXHOST], thishost[NI_MAXHOST];
struct stat st;
@@ -995,8 +998,10 @@ main(int ac, char **av)
}
break;
case 'l':
- if (options.user == NULL)
+ if (options.user == NULL) {
options.user = optarg;
+ user_on_commandline = 1;
+ }
break;
case 'L':
@@ -1099,6 +1104,7 @@ main(int ac, char **av)
if (options.user == NULL) {
options.user = tuser;
tuser = NULL;
+ user_on_commandline = 1;
}
free(tuser);
if (options.port == -1 && tport != -1)
@@ -1113,6 +1119,7 @@ main(int ac, char **av)
if (options.user == NULL) {
options.user = p;
p = NULL;
+ user_on_commandline = 1;
}
*cp++ = '\0';
host = xstrdup(cp);
@@ -1265,8 +1272,10 @@ main(int ac, char **av)
if (fill_default_options(&options) != 0)
cleanup_exit(255);
- if (options.user == NULL)
+ if (options.user == NULL) {
+ user_was_default = 1;
options.user = xstrdup(pw->pw_name);
+ }
/*
* If ProxyJump option specified, then construct a ProxyCommand now.
--
2.50.1

View File

@@ -0,0 +1,35 @@
From 54928cb9eaa7143ff17f463efa7ed3109afdbf30 Mon Sep 17 00:00:00 2001
From: "djm@openbsd.org" <djm@openbsd.org>
Date: Thu, 4 Sep 2025 00:30:06 +0000
Subject: [PATCH] upstream: don't allow \0 characters in url-encoded strings.
Suggested by David Leadbeater, ok deraadt@
OpenBSD-Commit-ID: c92196cef0f970ceabc1e8007a80b01e9b7cd49c
CVE: CVE-2025-61985
Upstream-Status: Backport [https://github.com/openssh/openssh-portable/commit/43b3bff47bb029f2299bacb6a36057981b39fdb0]
Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
---
misc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/misc.c b/misc.c
index 6135b15..3d133b5 100644
--- a/misc.c
+++ b/misc.c
@@ -934,9 +934,10 @@ urldecode(const char *src)
*dst++ = ' ';
break;
case '%':
+ /* note: don't allow \0 characters */
if (!isxdigit((unsigned char)src[1]) ||
!isxdigit((unsigned char)src[2]) ||
- (ch = hexchar(src + 1)) == -1) {
+ (ch = hexchar(src + 1)) == -1 || ch == 0) {
free(ret);
return NULL;
}
--
2.40.0

View File

@@ -39,6 +39,8 @@ SRC_URI = "http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-${PV}.tar
file://CVE-2024-6387.patch \
file://CVE-2025-26465.patch \
file://CVE-2025-32728.patch \
file://CVE-2025-61985.patch \
file://CVE-2025-61984.patch \
"
SRC_URI[sha256sum] = "fd497654b7ab1686dac672fb83dfb4ba4096e8b5ffcdaccd262380ae58bec5e7"

View File

@@ -25,7 +25,7 @@ SRC_URI:append:class-nativesdk = " \
file://environment.d-openssl.sh \
"
SRC_URI[sha256sum] = "dfdd77e4ea1b57ff3a6dbde6b0bdc3f31db5ac99e7fdd4eaf9e1fbb6ec2db8ce"
SRC_URI[sha256sum] = "d80c34f5cf902dccf1f1b5df5ebb86d0392e37049e5d73df1b3abae72e4ffe8b"
inherit lib_package multilib_header multilib_script ptest perlnative
MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"

View File

@@ -0,0 +1,79 @@
From 726432d7622cc0088ac353d073b59628b590ea44 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 25 Jan 2025 11:21:16 +0200
Subject: [PATCH] RADIUS: Drop pending request only when accepting the response
The case of an invalid authenticator in a RADIUS response could imply
that the response is not from the correct RADIUS server and as such,
such a response should be discarded without changing internal state for
the pending request. The case of an unknown response (RADIUS_RX_UNKNOWN)
is somewhat more complex since it could have been indicated before
validating the authenticator. In any case, it seems better to change the
state for the pending request only when we have fully accepted the
response.
Allowing the internal state of pending RADIUS request to change based on
responses that are not fully validation could have allow at least a
theoretical DoS attack if an attacker were to have means for injecting
RADIUS messages to the network using the IP address of the real RADIUS
server and being able to do so more quickly than the real server and
with the matching identifier from the request header (i.e., either by
flooding 256 responses quickly or by having means to capture the RADIUS
request). These should not really be realistic options in a properly
protected deployment, but nevertheless it is good to be more careful in
processing RADIUS responses.
Remove a pending RADIUS request from the internal list only when having
fully accepted a matching RADIUS response, i.e., after one of the
registered handlers has confirmed that the authenticator is valid and
processing of the response has succeeded.
Signed-off-by: Jouni Malinen <j@w1.fi>
CVE: CVE-2025-24912
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=726432d7622cc0088ac353d073b59628b590ea44]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/radius/radius_client.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/src/radius/radius_client.c b/src/radius/radius_client.c
index 2a7f36170..7909b29a7 100644
--- a/src/radius/radius_client.c
+++ b/src/radius/radius_client.c
@@ -922,13 +922,6 @@ static void radius_client_receive(int sock, void *eloop_ctx, void *sock_ctx)
roundtrip / 100, roundtrip % 100);
rconf->round_trip_time = roundtrip;
- /* Remove ACKed RADIUS packet from retransmit list */
- if (prev_req)
- prev_req->next = req->next;
- else
- radius->msgs = req->next;
- radius->num_msgs--;
-
for (i = 0; i < num_handlers; i++) {
RadiusRxResult res;
res = handlers[i].handler(msg, req->msg, req->shared_secret,
@@ -939,6 +932,13 @@ static void radius_client_receive(int sock, void *eloop_ctx, void *sock_ctx)
radius_msg_free(msg);
/* fall through */
case RADIUS_RX_QUEUED:
+ /* Remove ACKed RADIUS packet from retransmit list */
+ if (prev_req)
+ prev_req->next = req->next;
+ else
+ radius->msgs = req->next;
+ radius->num_msgs--;
+
radius_client_msg_free(req);
return;
case RADIUS_RX_INVALID_AUTHENTICATOR:
@@ -960,7 +960,6 @@ static void radius_client_receive(int sock, void *eloop_ctx, void *sock_ctx)
msg_type, hdr->code, hdr->identifier,
invalid_authenticator ? " [INVALID AUTHENTICATOR]" :
"");
- radius_client_msg_free(req);
fail:
radius_msg_free(msg);

View File

@@ -0,0 +1,70 @@
From 339a334551ca911187cc870f4f97ef08e11db109 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <quic_jouni@quicinc.com>
Date: Wed, 5 Feb 2025 19:23:39 +0200
Subject: [PATCH] RADIUS: Fix pending request dropping
A recent change to this moved the place where the processed RADIUS
request was removed from the pending list to happen after the message
handler had been called. This did not take into account possibility of
the handler adding a new pending request in the list and the prev_req
pointer not necessarily pointing to the correct entry anymore. As such,
some of the pending requests could have been lost and that would result
in not being able to process responses to those requests and also, to a
memory leak.
Fix this by determining prev_req at the point when the pending request
is being removed, i.e., after the handler function has already added a
new entry.
Fixes: 726432d7622c ("RADIUS: Drop pending request only when accepting the response")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
CVE: CVE-2025-24912
Upstream-Status: Backport [https://w1.fi/cgit/hostap/commit/?id=339a334551ca911187cc870f4f97ef08e11db109]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
src/radius/radius_client.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/radius/radius_client.c b/src/radius/radius_client.c
index 7909b29a7..d4faa7936 100644
--- a/src/radius/radius_client.c
+++ b/src/radius/radius_client.c
@@ -824,7 +824,7 @@ static void radius_client_receive(int sock, void *eloop_ctx, void *sock_ctx)
struct radius_hdr *hdr;
struct radius_rx_handler *handlers;
size_t num_handlers, i;
- struct radius_msg_list *req, *prev_req;
+ struct radius_msg_list *req, *prev_req, *r;
struct os_reltime now;
struct hostapd_radius_server *rconf;
int invalid_authenticator = 0;
@@ -887,7 +887,6 @@ static void radius_client_receive(int sock, void *eloop_ctx, void *sock_ctx)
break;
}
- prev_req = NULL;
req = radius->msgs;
while (req) {
/* TODO: also match by src addr:port of the packet when using
@@ -899,7 +898,6 @@ static void radius_client_receive(int sock, void *eloop_ctx, void *sock_ctx)
hdr->identifier)
break;
- prev_req = req;
req = req->next;
}
@@ -933,6 +931,12 @@ static void radius_client_receive(int sock, void *eloop_ctx, void *sock_ctx)
/* fall through */
case RADIUS_RX_QUEUED:
/* Remove ACKed RADIUS packet from retransmit list */
+ prev_req = NULL;
+ for (r = radius->msgs; r; r = r->next) {
+ if (r == req)
+ break;
+ prev_req = r;
+ }
if (prev_req)
prev_req->next = req->next;
else

View File

@@ -43,6 +43,8 @@ SRC_URI = "http://w1.fi/releases/wpa_supplicant-${PV}.tar.gz \
file://CVE-2022-37660-0003.patch \
file://CVE-2022-37660-0004.patch \
file://CVE-2022-37660-0005.patch \
file://CVE-2025-24912-01.patch \
file://CVE-2025-24912-02.patch \
"
SRC_URI[sha256sum] = "20df7ae5154b3830355f8ab4269123a87affdea59fe74fe9292a91d0d7e17b2f"

View File

@@ -0,0 +1,57 @@
From f5e1bf966b19ea1821f00a8c9ecd7774598689b4 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Wed, 24 Sep 2025 03:28:47 +0200
Subject: [PATCH] archival/libarchive: sanitize filenames on output (prevent
control sequence attacks
This fixes CVE-2025-46394 (terminal escape sequence injection)
Original credit: Ian.Norton at entrust.com
function old new delta
header_list 9 15 +6
header_verbose_list 239 244 +5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 11/0) Total: 11 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
CVE: CVE-2025-46394
Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=f5e1bf966b19ea1821f00a8c9ecd7774598689b4]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
archival/libarchive/header_list.c | 2 +-
archival/libarchive/header_verbose_list.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/archival/libarchive/header_list.c b/archival/libarchive/header_list.c
index 0621aa406..9490b3635 100644
--- a/archival/libarchive/header_list.c
+++ b/archival/libarchive/header_list.c
@@ -8,5 +8,5 @@
void FAST_FUNC header_list(const file_header_t *file_header)
{
//TODO: cpio -vp DIR should output "DIR/NAME", not just "NAME" */
- puts(file_header->name);
+ puts(printable_string(file_header->name));
}
diff --git a/archival/libarchive/header_verbose_list.c b/archival/libarchive/header_verbose_list.c
index a575a08a0..e7a09430d 100644
--- a/archival/libarchive/header_verbose_list.c
+++ b/archival/libarchive/header_verbose_list.c
@@ -57,13 +57,13 @@ void FAST_FUNC header_verbose_list(const file_header_t *file_header)
ptm->tm_hour,
ptm->tm_min,
ptm->tm_sec,
- file_header->name);
+ printable_string(file_header->name));
#endif /* FEATURE_TAR_UNAME_GNAME */
/* NB: GNU tar shows "->" for symlinks and "link to" for hardlinks */
if (file_header->link_target) {
- printf(" -> %s", file_header->link_target);
+ printf(" -> %s", printable_string(file_header->link_target));
}
bb_putchar('\n');
}

View File

@@ -0,0 +1,32 @@
From 7378db981d87b4a2264e14d60340a7fb5c67ae59 Mon Sep 17 00:00:00 2001
From: Peter Marko <peter.marko@siemens.com>
Date: Fri, 3 Oct 2025 16:12:56 +0200
Subject: [PATCH] testsuite/tar.tests: fix test after CVE-2025-46394
tar now sanitizes output and this test needs to expect that.
Signed-off-by: Peter Marko <peter.marko@siemens.com>
CVE: CVE-2025-46394
Upstream-Status: Submitted [https://lists.busybox.net/pipermail/busybox/2025-October/091743.html]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
testsuite/tar.tests | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/testsuite/tar.tests b/testsuite/tar.tests
index 0f2e89112..48fc38114 100755
--- a/testsuite/tar.tests
+++ b/testsuite/tar.tests
@@ -325,9 +325,9 @@ unset LANG
rm -rf etc usr
' "\
etc/ssl/certs/3b2716e5.0
-etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.pem
+etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??.pem
etc/ssl/certs/f80cc7f6.0
-usr/share/ca-certificates/mozilla/EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.crt
+usr/share/ca-certificates/mozilla/EBG_Elektronik_Sertifika_Hizmet_Sa??lay??c??s??.crt
0
etc/ssl/certs/3b2716e5.0 -> EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.pem
etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.pem -> /usr/share/ca-certificates/mozilla/EBG_Elektronik_Sertifika_Hizmet_Sağlayıcısı.crt

View File

@@ -59,6 +59,8 @@ SRC_URI = "https://busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
file://CVE-2023-42366.patch \
file://0001-cut-Fix-s-flag-to-omit-blank-lines.patch \
file://CVE-2023-39810.patch \
file://CVE-2025-46394-01.patch \
file://CVE-2025-46394-02.patch \
"
SRC_URI:append:libc-musl = " file://musl.cfg "

View File

@@ -34,6 +34,7 @@ SRC_URI = "http://matt.ucc.asn.au/dropbear/releases/dropbear-${PV}.tar.bz2 \
file://0001-Add-m_snprintf-that-won-t-return-negative.patch \
file://0001-Handle-arbitrary-length-paths-and-commands-in-multih.patch \
file://CVE-2025-47203.patch \
file://CVE-2019-6111.patch \
"
PAM_SRC_URI = "file://0005-dropbear-enable-pam.patch \

View File

@@ -0,0 +1,157 @@
From 48a17cff6aa104b8e806ddb2191f83f1024060f1 Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Tue, 9 Dec 2025 22:59:19 +0900
Subject: [PATCH] scp CVE-2019-6111 fix
Cherry-pick from OpenSSH portable
391ffc4b9d31 ("upstream: check in scp client that filenames sent during")
upstream: check in scp client that filenames sent during
remote->local directory copies satisfy the wildcard specified by the user.
This checking provides some protection against a malicious server
sending unexpected filenames, but it comes at a risk of rejecting wanted
files due to differences between client and server wildcard expansion rules.
For this reason, this also adds a new -T flag to disable the check.
reported by Harry Sintonen
fix approach suggested by markus@;
has been in snaps for ~1wk courtesy deraadt@
CVE: CVE-2019-6111
Upstream-Status: Backport [https://github.com/mkj/dropbear/commit/48a17cff6aa104b8e806ddb2191f83f1024060f1]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
scp.c | 38 +++++++++++++++++++++++++++++---------
1 file changed, 29 insertions(+), 9 deletions(-)
diff --git a/scp.c b/scp.c
index 384f2cb..bf98986 100644
--- a/scp.c
+++ b/scp.c
@@ -76,6 +76,8 @@
#include "includes.h"
/*RCSID("$OpenBSD: scp.c,v 1.130 2006/01/31 10:35:43 djm Exp $");*/
+#include <fnmatch.h>
+
#include "atomicio.h"
#include "compat.h"
#include "scpmisc.h"
@@ -291,14 +293,14 @@ void verifydir(char *);
uid_t userid;
int errs, remin, remout;
-int pflag, iamremote, iamrecursive, targetshouldbedirectory;
+int Tflag, pflag, iamremote, iamrecursive, targetshouldbedirectory;
#define CMDNEEDS 64
char cmd[CMDNEEDS]; /* must hold "rcp -r -p -d\0" */
int response(void);
void rsource(char *, struct stat *);
-void sink(int, char *[]);
+void sink(int, char *[], const char *);
void source(int, char *[]);
void tolocal(int, char *[]);
void toremote(char *, int, char *[]);
@@ -325,8 +327,8 @@ main(int argc, char **argv)
args.list = NULL;
addargs(&args, "%s", ssh_program);
- fflag = tflag = 0;
- while ((ch = getopt(argc, argv, "dfl:prtvBCc:i:P:q1246S:o:F:")) != -1)
+ fflag = Tflag = tflag = 0;
+ while ((ch = getopt(argc, argv, "dfl:prtTvBCc:i:P:q1246S:o:F:")) != -1)
switch (ch) {
/* User-visible flags. */
case '1':
@@ -389,9 +391,12 @@ main(int argc, char **argv)
setmode(0, O_BINARY);
#endif
break;
+ case 'T':
+ Tflag = 1;
+ break;
default:
usage();
- }
+ }
argc -= optind;
argv += optind;
@@ -409,7 +414,7 @@ main(int argc, char **argv)
}
if (tflag) {
/* Receive data. */
- sink(argc, argv);
+ sink(argc, argv, NULL);
exit(errs != 0);
}
if (argc < 2)
@@ -590,7 +595,7 @@ tolocal(int argc, char **argv)
continue;
}
xfree(bp);
- sink(1, argv + argc - 1);
+ sink(1, argv + argc - 1, src);
(void) close(remin);
remin = remout = -1;
}
@@ -823,7 +828,7 @@ bwlimit(int amount)
}
void
-sink(int argc, char **argv)
+sink(int argc, char **argv, const char *src)
{
static BUF buffer;
struct stat stb;
@@ -837,6 +842,7 @@ sink(int argc, char **argv)
off_t size, statbytes;
int setimes, targisdir, wrerrno = 0;
char ch, *cp, *np, *targ, *why, *vect[1], buf[2048];
+ char *src_copy = NULL, *restrict_pattern = NULL;
struct timeval tv[2];
#define atime tv[0]
@@ -858,6 +864,17 @@ sink(int argc, char **argv)
(void) atomicio(vwrite, remout, "", 1);
if (stat(targ, &stb) == 0 && S_ISDIR(stb.st_mode))
targisdir = 1;
+ if (src != NULL && !iamrecursive && !Tflag) {
+ /*
+ * Prepare to try to restrict incoming filenames to match
+ * the requested destination file glob.
+ */
+ if ((src_copy = strdup(src)) == NULL)
+ fatal("strdup failed");
+ if ((restrict_pattern = strrchr(src_copy, '/')) != NULL) {
+ *restrict_pattern++ = '\0';
+ }
+ }
for (first = 1;; first = 0) {
cp = buf;
if (atomicio(read, remin, cp, 1) != 1)
@@ -940,6 +957,9 @@ sink(int argc, char **argv)
run_err("error: unexpected filename: %s", cp);
exit(1);
}
+ if (restrict_pattern != NULL &&
+ fnmatch(restrict_pattern, cp, 0) != 0)
+ SCREWUP("filename does not match request");
if (targisdir) {
static char *namebuf = NULL;
static size_t cursize = 0;
@@ -978,7 +998,7 @@ sink(int argc, char **argv)
goto bad;
}
vect[0] = xstrdup(np);
- sink(1, vect);
+ sink(1, vect, src);
if (setimes) {
setimes = 0;
if (utimes(vect[0], tv) < 0)

View File

@@ -0,0 +1,125 @@
From f28340ee62c655487972ad3c632d231ee098fb7f Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Thu, 13 Nov 2025 18:27:22 +0000
Subject: [PATCH] gconvert: Error out if g_escape_uri_string() would overflow
If the string to escape contains a very large number of unacceptable
characters (which would need escaping), the calculation of the length of
the escaped string could overflow, leading to a potential write off the
end of the newly allocated string.
In addition to that, the number of unacceptable characters was counted
in a signed integer, which would overflow to become negative, making it
easier for an attacker to craft an input string which would cause an
out-of-bounds write.
Fix that by validating the allocation length, and using an unsigned
integer to count the number of unacceptable characters.
Spotted by treeplus. Thanks to the Sovereign Tech Resilience programme
from the Sovereign Tech Agency. ID: #YWH-PGM9867-134
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Fixes: #3827
CVE: CVE-2025-13601
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/f28340ee62c655487972ad3c632d231ee098fb7f]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
glib/gconvert.c | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/glib/gconvert.c b/glib/gconvert.c
index b066dd5a8..a02d2ea73 100644
--- a/glib/gconvert.c
+++ b/glib/gconvert.c
@@ -1425,8 +1425,9 @@ static const gchar hex[] = "0123456789ABCDEF";
/* Note: This escape function works on file: URIs, but if you want to
* escape something else, please read RFC-2396 */
static gchar *
-g_escape_uri_string (const gchar *string,
- UnsafeCharacterSet mask)
+g_escape_uri_string (const gchar *string,
+ UnsafeCharacterSet mask,
+ GError **error)
{
#define ACCEPTABLE(a) ((a)>=32 && (a)<128 && (acceptable[(a)-32] & use_mask))
@@ -1434,7 +1435,7 @@ g_escape_uri_string (const gchar *string,
gchar *q;
gchar *result;
int c;
- gint unacceptable;
+ size_t unacceptable;
UnsafeCharacterSet use_mask;
g_return_val_if_fail (mask == UNSAFE_ALL
@@ -1451,7 +1452,14 @@ g_escape_uri_string (const gchar *string,
if (!ACCEPTABLE (c))
unacceptable++;
}
-
+
+ if (unacceptable >= (G_MAXSIZE - (p - string)) / 2)
+ {
+ g_set_error_literal (error, G_CONVERT_ERROR, G_CONVERT_ERROR_BAD_URI,
+ _("The URI is too long"));
+ return NULL;
+ }
+
result = g_malloc (p - string + unacceptable * 2 + 1);
use_mask = mask;
@@ -1476,12 +1484,13 @@ g_escape_uri_string (const gchar *string,
static gchar *
-g_escape_file_uri (const gchar *hostname,
- const gchar *pathname)
+g_escape_file_uri (const gchar *hostname,
+ const gchar *pathname,
+ GError **error)
{
char *escaped_hostname = NULL;
- char *escaped_path;
- char *res;
+ char *escaped_path = NULL;
+ char *res = NULL;
#ifdef G_OS_WIN32
char *p, *backslash;
@@ -1502,10 +1511,14 @@ g_escape_file_uri (const gchar *hostname,
if (hostname && *hostname != '\0')
{
- escaped_hostname = g_escape_uri_string (hostname, UNSAFE_HOST);
+ escaped_hostname = g_escape_uri_string (hostname, UNSAFE_HOST, error);
+ if (escaped_hostname == NULL)
+ goto out;
}
- escaped_path = g_escape_uri_string (pathname, UNSAFE_PATH);
+ escaped_path = g_escape_uri_string (pathname, UNSAFE_PATH, error);
+ if (escaped_path == NULL)
+ goto out;
res = g_strconcat ("file://",
(escaped_hostname) ? escaped_hostname : "",
@@ -1513,6 +1526,7 @@ g_escape_file_uri (const gchar *hostname,
escaped_path,
NULL);
+out:
#ifdef G_OS_WIN32
g_free ((char *) pathname);
#endif
@@ -1832,7 +1846,7 @@ g_filename_to_uri (const gchar *filename,
hostname = NULL;
#endif
- escaped_uri = g_escape_file_uri (hostname, filename);
+ escaped_uri = g_escape_file_uri (hostname, filename, error);
return escaped_uri;
}

View File

@@ -0,0 +1,128 @@
From 7bd3fc372040cdf8eada7f65c32c30da52a7461d Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Thu, 13 Nov 2025 18:31:43 +0000
Subject: [PATCH] fuzzing: Add fuzz tests for g_filename_{to,from}_uri()
These functions could be called on untrusted input data, and since they
do URI escaping/unescaping, they have non-trivial string handling code.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
See: #3827
CVE: CVE-2025-13601
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/7bd3fc372040cdf8eada7f65c32c30da52a7461d]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
fuzzing/fuzz_filename_from_uri.c | 40 ++++++++++++++++++++++++++++++++
fuzzing/fuzz_filename_to_uri.c | 40 ++++++++++++++++++++++++++++++++
fuzzing/meson.build | 2 ++
3 files changed, 82 insertions(+)
create mode 100644 fuzzing/fuzz_filename_from_uri.c
create mode 100644 fuzzing/fuzz_filename_to_uri.c
diff --git a/fuzzing/fuzz_filename_from_uri.c b/fuzzing/fuzz_filename_from_uri.c
new file mode 100644
index 000000000..9b7a715f0
--- /dev/null
+++ b/fuzzing/fuzz_filename_from_uri.c
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2025 GNOME Foundation, Inc.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+ unsigned char *nul_terminated_data = NULL;
+ char *filename = NULL;
+ GError *local_error = NULL;
+
+ fuzz_set_logging_func ();
+
+ /* ignore @size (g_filename_from_uri() doesnt support it); ensure @data is nul-terminated */
+ nul_terminated_data = (unsigned char *) g_strndup ((const char *) data, size);
+ filename = g_filename_from_uri ((const char *) nul_terminated_data, NULL, &local_error);
+ g_free (nul_terminated_data);
+
+ g_free (filename);
+ g_clear_error (&local_error);
+
+ return 0;
+}
diff --git a/fuzzing/fuzz_filename_to_uri.c b/fuzzing/fuzz_filename_to_uri.c
new file mode 100644
index 000000000..acb319203
--- /dev/null
+++ b/fuzzing/fuzz_filename_to_uri.c
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2025 GNOME Foundation, Inc.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "fuzz.h"
+
+int
+LLVMFuzzerTestOneInput (const unsigned char *data, size_t size)
+{
+ unsigned char *nul_terminated_data = NULL;
+ char *uri = NULL;
+ GError *local_error = NULL;
+
+ fuzz_set_logging_func ();
+
+ /* ignore @size (g_filename_to_uri() doesnt support it); ensure @data is nul-terminated */
+ nul_terminated_data = (unsigned char *) g_strndup ((const char *) data, size);
+ uri = g_filename_to_uri ((const char *) nul_terminated_data, NULL, &local_error);
+ g_free (nul_terminated_data);
+
+ g_free (uri);
+ g_clear_error (&local_error);
+
+ return 0;
+}
diff --git a/fuzzing/meson.build b/fuzzing/meson.build
index addbe9071..05f936eeb 100644
--- a/fuzzing/meson.build
+++ b/fuzzing/meson.build
@@ -4,6 +4,8 @@ fuzz_targets = [
'fuzz_date_parse',
'fuzz_date_time_new_from_iso8601',
'fuzz_dbus_message',
+ 'fuzz_filename_from_uri',
+ 'fuzz_filename_to_uri',
'fuzz_inet_address_mask_new_from_string',
'fuzz_inet_address_new_from_string',
'fuzz_inet_socket_address_new_from_string',

View File

@@ -0,0 +1,69 @@
From 31f82e22e21bae520b7228f7f57d357fb20df8a4 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Tue, 25 Nov 2025 19:02:56 +0000
Subject: [PATCH] gvariant-parser: Fix potential integer overflow parsing
(byte)strings
The termination condition for parsing string and bytestring literals in
GVariant text format input was subject to an integer overflow for input
string (or bytestring) literals longer than `INT_MAX`.
Fix that by counting as a `size_t` rather than as an `int`. The counter
can never correctly be negative.
Spotted by treeplus. Thanks to the Sovereign Tech Resilience programme
from the Sovereign Tech Agency. ID: #YWH-PGM9867-145
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Fixes: #3834
CVE: CVE-2025-14087
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/31f82e22e21bae520b7228f7f57d357fb20df8a4]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
glib/gvariant-parser.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c
index 2f1d3db9f..2d6e9856f 100644
--- a/glib/gvariant-parser.c
+++ b/glib/gvariant-parser.c
@@ -594,7 +594,7 @@ ast_resolve (AST *ast,
{
GVariant *value;
gchar *pattern;
- gint i, j = 0;
+ size_t i, j = 0;
pattern = ast_get_pattern (ast, error);
@@ -1555,9 +1555,9 @@ string_free (AST *ast)
* No leading/trailing space allowed. */
static gboolean
unicode_unescape (const gchar *src,
- gint *src_ofs,
+ size_t *src_ofs,
gchar *dest,
- gint *dest_ofs,
+ size_t *dest_ofs,
gsize length,
SourceRef *ref,
GError **error)
@@ -1618,7 +1618,7 @@ string_parse (TokenStream *stream,
gsize length;
gchar quote;
gchar *str;
- gint i, j;
+ size_t i, j;
token_stream_start_ref (stream, &ref);
token = token_stream_get (stream);
@@ -1748,7 +1748,7 @@ bytestring_parse (TokenStream *stream,
gsize length;
gchar quote;
gchar *str;
- gint i, j;
+ size_t i, j;
token_stream_start_ref (stream, &ref);
token = token_stream_get (stream);

View File

@@ -0,0 +1,240 @@
From ac9de0871281cf734f6e269988f90a2521582a08 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Tue, 25 Nov 2025 19:19:16 +0000
Subject: [PATCH] gvariant-parser: Use size_t to count numbers of child
elements
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Rather than using `gint`, which could overflow for arrays (or dicts, or
tuples) longer than `INT_MAX`. There may be other limits which prevent
parsed containers becoming that long, but we might as well make the type
system reflect the programmers intention as best it can anyway.
For arrays and tuples this is straightforward. For dictionaries, its
slightly complicated by the fact that the code used
`dict->n_children == -1` to indicate that the `Dictionary` struct in
question actually represented a single freestanding dict entry. In
GVariant text format, that would be `{1, "one"}`.
The implementation previously didnt define the semantics of
`dict->n_children < -1`.
Now, instead, change `Dictionary.n_children` to `size_t`, and define a
magic value `DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY` to indicate that
the `Dictionary` represents a single freestanding dict entry.
This magic value is `SIZE_MAX`, and given that a dictionary entry takes
more than one byte to represent in GVariant text format, that means its
not possible to have that many entries in a parsed dictionary, so this
magic value wont be hit by a normal dictionary. An assertion checks
this anyway.
Spotted while working on #3834.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
CVE: CVE-2025-14087
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/ac9de0871281cf734f6e269988f90a2521582a08]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
glib/gvariant-parser.c | 58 ++++++++++++++++++++++++------------------
1 file changed, 33 insertions(+), 25 deletions(-)
diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c
index 2d6e9856f..519baa3f3 100644
--- a/glib/gvariant-parser.c
+++ b/glib/gvariant-parser.c
@@ -647,9 +647,9 @@ static AST *parse (TokenStream *stream,
GError **error);
static void
-ast_array_append (AST ***array,
- gint *n_items,
- AST *ast)
+ast_array_append (AST ***array,
+ size_t *n_items,
+ AST *ast)
{
if ((*n_items & (*n_items - 1)) == 0)
*array = g_renew (AST *, *array, *n_items ? 2 ** n_items : 1);
@@ -658,10 +658,10 @@ ast_array_append (AST ***array,
}
static void
-ast_array_free (AST **array,
- gint n_items)
+ast_array_free (AST **array,
+ size_t n_items)
{
- gint i;
+ size_t i;
for (i = 0; i < n_items; i++)
ast_free (array[i]);
@@ -670,11 +670,11 @@ ast_array_free (AST **array,
static gchar *
ast_array_get_pattern (AST **array,
- gint n_items,
+ size_t n_items,
GError **error)
{
gchar *pattern;
- gint i;
+ size_t i;
/* Find the pattern which applies to all children in the array, by l-folding a
* coalesce operation.
@@ -706,7 +706,7 @@ ast_array_get_pattern (AST **array,
* pair of values.
*/
{
- int j = 0;
+ size_t j = 0;
while (TRUE)
{
@@ -891,7 +891,7 @@ typedef struct
AST ast;
AST **children;
- gint n_children;
+ size_t n_children;
} Array;
static gchar *
@@ -924,7 +924,7 @@ array_get_value (AST *ast,
Array *array = (Array *) ast;
const GVariantType *childtype;
GVariantBuilder builder;
- gint i;
+ size_t i;
if (!g_variant_type_is_array (type))
return ast_type_error (ast, type, error);
@@ -1010,7 +1010,7 @@ typedef struct
AST ast;
AST **children;
- gint n_children;
+ size_t n_children;
} Tuple;
static gchar *
@@ -1020,7 +1020,7 @@ tuple_get_pattern (AST *ast,
Tuple *tuple = (Tuple *) ast;
gchar *result = NULL;
gchar **parts;
- gint i;
+ size_t i;
parts = g_new (gchar *, tuple->n_children + 4);
parts[tuple->n_children + 1] = (gchar *) ")";
@@ -1050,7 +1050,7 @@ tuple_get_value (AST *ast,
Tuple *tuple = (Tuple *) ast;
const GVariantType *childtype;
GVariantBuilder builder;
- gint i;
+ size_t i;
if (!g_variant_type_is_tuple (type))
return ast_type_error (ast, type, error);
@@ -1242,9 +1242,16 @@ typedef struct
AST **keys;
AST **values;
- gint n_children;
+
+ /* Iff this is DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY then this struct
+ * represents a single freestanding dict entry (`{1, "one"}`) rather than a
+ * full dict. In the freestanding case, @keys and @values have exactly one
+ * member each. */
+ size_t n_children;
} Dictionary;
+#define DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY ((size_t) -1)
+
static gchar *
dictionary_get_pattern (AST *ast,
GError **error)
@@ -1259,7 +1266,7 @@ dictionary_get_pattern (AST *ast,
return g_strdup ("Ma{**}");
key_pattern = ast_array_get_pattern (dict->keys,
- abs (dict->n_children),
+ (dict->n_children == DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY) ? 1 : dict->n_children,
error);
if (key_pattern == NULL)
@@ -1290,7 +1297,7 @@ dictionary_get_pattern (AST *ast,
return NULL;
result = g_strdup_printf ("M%s{%c%s}",
- dict->n_children > 0 ? "a" : "",
+ (dict->n_children > 0 && dict->n_children != DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY) ? "a" : "",
key_char, value_pattern);
g_free (value_pattern);
@@ -1304,7 +1311,7 @@ dictionary_get_value (AST *ast,
{
Dictionary *dict = (Dictionary *) ast;
- if (dict->n_children == -1)
+ if (dict->n_children == DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY)
{
const GVariantType *subtype;
GVariantBuilder builder;
@@ -1337,7 +1344,7 @@ dictionary_get_value (AST *ast,
{
const GVariantType *entry, *key, *val;
GVariantBuilder builder;
- gint i;
+ size_t i;
if (!g_variant_type_is_subtype_of (type, G_VARIANT_TYPE_DICTIONARY))
return ast_type_error (ast, type, error);
@@ -1378,12 +1385,12 @@ static void
dictionary_free (AST *ast)
{
Dictionary *dict = (Dictionary *) ast;
- gint n_children;
+ size_t n_children;
- if (dict->n_children > -1)
- n_children = dict->n_children;
- else
+ if (dict->n_children == DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY)
n_children = 1;
+ else
+ n_children = dict->n_children;
ast_array_free (dict->keys, n_children);
ast_array_free (dict->values, n_children);
@@ -1401,7 +1408,7 @@ dictionary_parse (TokenStream *stream,
maybe_wrapper, dictionary_get_value,
dictionary_free
};
- gint n_keys, n_values;
+ size_t n_keys, n_values;
gboolean only_one;
Dictionary *dict;
AST *first;
@@ -1444,7 +1451,7 @@ dictionary_parse (TokenStream *stream,
goto error;
g_assert (n_keys == 1 && n_values == 1);
- dict->n_children = -1;
+ dict->n_children = DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY;
return (AST *) dict;
}
@@ -1477,6 +1484,7 @@ dictionary_parse (TokenStream *stream,
}
g_assert (n_keys == n_values);
+ g_assert (n_keys != DICTIONARY_N_CHILDREN_FREESTANDING_ENTRY);
dict->n_children = n_keys;
return (AST *) dict;

View File

@@ -0,0 +1,150 @@
From acaabfedff42e974334dd5368e6103d2845aaba6 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Tue, 25 Nov 2025 19:25:58 +0000
Subject: [PATCH] gvariant-parser: Convert error handling code to use size_t
The error handling code allows for printing out the range of input bytes
related to a parsing error. This was previously done using `gint`, but
the input could be longer than `INT_MAX`, so it should really be done
using `size_t`.
Spotted while working on #3834.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
CVE: CVE-2025-14087
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/acaabfedff42e974334dd5368e6103d2845aaba6]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
glib/gvariant-parser.c | 36 +++++++++++++++++++++++-------------
1 file changed, 23 insertions(+), 13 deletions(-)
diff --git a/glib/gvariant-parser.c b/glib/gvariant-parser.c
index 519baa3f3..1b1ddd654 100644
--- a/glib/gvariant-parser.c
+++ b/glib/gvariant-parser.c
@@ -88,7 +88,9 @@ g_variant_parser_get_error_quark (void)
typedef struct
{
- gint start, end;
+ /* Offsets from the start of the input, in bytes. Can be equal when referring
+ * to a point rather than a range. The invariant `end >= start` always holds. */
+ size_t start, end;
} SourceRef;
G_GNUC_PRINTF(5, 0)
@@ -103,14 +105,16 @@ parser_set_error_va (GError **error,
GString *msg = g_string_new (NULL);
if (location->start == location->end)
- g_string_append_printf (msg, "%d", location->start);
+ g_string_append_printf (msg, "%" G_GSIZE_FORMAT, location->start);
else
- g_string_append_printf (msg, "%d-%d", location->start, location->end);
+ g_string_append_printf (msg, "%" G_GSIZE_FORMAT "-%" G_GSIZE_FORMAT,
+ location->start, location->end);
if (other != NULL)
{
g_assert (other->start != other->end);
- g_string_append_printf (msg, ",%d-%d", other->start, other->end);
+ g_string_append_printf (msg, ",%" G_GSIZE_FORMAT "-%" G_GSIZE_FORMAT,
+ other->start, other->end);
}
g_string_append_c (msg, ':');
@@ -137,11 +141,15 @@ parser_set_error (GError **error,
typedef struct
{
+ /* We should always have the following ordering constraint:
+ * start <= this <= stream <= end
+ * Additionally, unless in an error or EOF state, `this < stream`.
+ */
const gchar *start;
const gchar *stream;
const gchar *end;
- const gchar *this;
+ const gchar *this; /* (nullable) */
} TokenStream;
@@ -172,7 +180,7 @@ token_stream_set_error (TokenStream *stream,
static gboolean
token_stream_prepare (TokenStream *stream)
{
- gint brackets = 0;
+ gssize brackets = 0;
const gchar *end;
if (stream->this != NULL)
@@ -402,7 +410,7 @@ static void
pattern_copy (gchar **out,
const gchar **in)
{
- gint brackets = 0;
+ gssize brackets = 0;
while (**in == 'a' || **in == 'm' || **in == 'M')
*(*out)++ = *(*in)++;
@@ -2666,7 +2674,7 @@ g_variant_builder_add_parsed (GVariantBuilder *builder,
static gboolean
parse_num (const gchar *num,
const gchar *limit,
- guint *result)
+ size_t *result)
{
gchar *endptr;
gint64 bignum;
@@ -2676,10 +2684,12 @@ parse_num (const gchar *num,
if (endptr != limit)
return FALSE;
+ /* The upper bound here is more restrictive than it technically needs to be,
+ * but should be enough for any practical situation: */
if (bignum < 0 || bignum > G_MAXINT)
return FALSE;
- *result = (guint) bignum;
+ *result = (size_t) bignum;
return TRUE;
}
@@ -2690,7 +2700,7 @@ add_last_line (GString *err,
{
const gchar *last_nl;
gchar *chomped;
- gint i;
+ size_t i;
/* This is an error at the end of input. If we have a file
* with newlines, that's probably the empty string after the
@@ -2835,7 +2845,7 @@ g_variant_parse_error_print_context (GError *error,
if (dash == NULL || colon < dash)
{
- guint point;
+ size_t point;
/* we have a single point */
if (!parse_num (error->message, colon, &point))
@@ -2853,7 +2863,7 @@ g_variant_parse_error_print_context (GError *error,
/* We have one or two ranges... */
if (comma && comma < colon)
{
- guint start1, end1, start2, end2;
+ size_t start1, end1, start2, end2;
const gchar *dash2;
/* Two ranges */
@@ -2869,7 +2879,7 @@ g_variant_parse_error_print_context (GError *error,
}
else
{
- guint start, end;
+ size_t start, end;
/* One range */
if (!parse_num (error->message, dash, &start) || !parse_num (dash + 1, colon, &end))

View File

@@ -0,0 +1,70 @@
From 1909d8ea9297287f1ff6862968608dcf06e60523 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Thu, 4 Dec 2025 16:37:19 +0000
Subject: [PATCH] gfileattribute: Fix integer overflow calculating escaping for
byte strings
The number of invalid characters in the byte string (characters which
would have to be percent-encoded) was only stored in an `int`, which
gave the possibility of a long string largely full of invalid
characters overflowing this and allowing an attacker-controlled buffer
size to be allocated.
This could be triggered by an attacker controlled file attribute (of
type `G_FILE_ATTRIBUTE_TYPE_BYTE_STRING`), such as
`G_FILE_ATTRIBUTE_THUMBNAIL_PATH` or `G_FILE_ATTRIBUTE_STANDARD_NAME`,
being read by user code.
Spotted by Codean Labs.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Fixes: #3845
CVE: CVE-2025-14512
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/1909d8ea9297287f1ff6862968608dcf06e60523]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
gio/gfileattribute.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/gio/gfileattribute.c b/gio/gfileattribute.c
index c6fde60fa..d3083e5bd 100644
--- a/gio/gfileattribute.c
+++ b/gio/gfileattribute.c
@@ -20,6 +20,7 @@
#include "config.h"
+#include <stdint.h>
#include <string.h>
#include "gfileattribute.h"
@@ -271,11 +272,12 @@ valid_char (char c)
return c >= 32 && c <= 126 && c != '\\';
}
+/* Returns NULL on error */
static char *
escape_byte_string (const char *str)
{
size_t i, len;
- int num_invalid;
+ size_t num_invalid;
char *escaped_val, *p;
unsigned char c;
const char hex_digits[] = "0123456789abcdef";
@@ -293,7 +295,12 @@ escape_byte_string (const char *str)
return g_strdup (str);
else
{
- escaped_val = g_malloc (len + num_invalid*3 + 1);
+ /* Check for overflow. We want to check the inequality:
+ * !(len + num_invalid * 3 + 1 > SIZE_MAX) */
+ if (num_invalid >= (SIZE_MAX - len) / 3)
+ return NULL;
+
+ escaped_val = g_malloc (len + num_invalid * 3 + 1);
p = escaped_val;
for (i = 0; i < len; i++)

View File

@@ -64,6 +64,12 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
file://CVE-2025-4373-02.patch \
file://CVE-2025-7039-01.patch \
file://CVE-2025-7039-02.patch \
file://CVE-2025-13601-01.patch \
file://CVE-2025-13601-02.patch \
file://CVE-2025-14087-01.patch \
file://CVE-2025-14087-02.patch \
file://CVE-2025-14087-03.patch \
file://CVE-2025-14512.patch \
"
SRC_URI:append:class-native = " file://relocate-modules.patch"

View File

@@ -0,0 +1,83 @@
From 4dd540505d40babe488404f3174ec39f49a84485 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Mon, 4 Aug 2025 15:10:21 -0500
Subject: [PATCH] openssl: properly check return value when writing to BIO
objects
In particular, we will read out of bounds, and then write the invalid
memory, if BIO_write() fails when getting the PROP_CERTIFICATE_PEM
property. Here we attempt to check the return value, but the check is
not correct.
This also fixes a leak of the BIO in the same place.
Also add error checking to PROP_SUBJECT_NAME and PROP_ISSUER_NAME, for
good measure.
Fixes #226
CVE: CVE-2025-60018
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib-networking/-/commit/4dd540505d40babe488404f3174ec39f49a84485]
Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
---
tls/openssl/gtlscertificate-openssl.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/tls/openssl/gtlscertificate-openssl.c b/tls/openssl/gtlscertificate-openssl.c
index 648f3e8..b536559 100644
--- a/tls/openssl/gtlscertificate-openssl.c
+++ b/tls/openssl/gtlscertificate-openssl.c
@@ -362,15 +362,12 @@ g_tls_certificate_openssl_get_property (GObject *object,
case PROP_CERTIFICATE_PEM:
bio = BIO_new (BIO_s_mem ());
- if (!PEM_write_bio_X509 (bio, openssl->cert) || !BIO_write (bio, "\0", 1))
- certificate_pem = NULL;
- else
+ if (PEM_write_bio_X509 (bio, openssl->cert) == 1 && BIO_write (bio, "\0", 1) == 1)
{
BIO_get_mem_data (bio, &certificate_pem);
g_value_set_string (value, certificate_pem);
-
- BIO_free_all (bio);
}
+ BIO_free_all (bio);
break;
case PROP_PRIVATE_KEY:
@@ -411,8 +408,12 @@ g_tls_certificate_openssl_get_property (GObject *object,
case PROP_SUBJECT_NAME:
bio = BIO_new (BIO_s_mem ());
name = X509_get_subject_name (openssl->cert);
- X509_NAME_print_ex (bio, name, 0, XN_FLAG_SEP_COMMA_PLUS);
- BIO_write (bio, "\0", 1);
+ if (X509_NAME_print_ex (bio, name, 0, XN_FLAG_SEP_COMMA_PLUS) < 0 ||
+ BIO_write (bio, "\0", 1) != 1)
+ {
+ BIO_free_all (bio);
+ break;
+ }
BIO_get_mem_data (bio, (char **)&name_string);
g_value_set_string (value, name_string);
BIO_free_all (bio);
@@ -421,9 +422,13 @@ g_tls_certificate_openssl_get_property (GObject *object,
case PROP_ISSUER_NAME:
bio = BIO_new (BIO_s_mem ());
name = X509_get_issuer_name (openssl->cert);
- X509_NAME_print_ex (bio, name, 0, XN_FLAG_SEP_COMMA_PLUS);
- BIO_write (bio, "\0", 1);
- BIO_get_mem_data (bio, &name_string);
+ if (X509_NAME_print_ex (bio, name, 0, XN_FLAG_SEP_COMMA_PLUS) < 0 ||
+ BIO_write (bio, "\0", 1) != 1)
+ {
+ BIO_free_all (bio);
+ break;
+ }
+ BIO_get_mem_data (bio, (char **)&name_string);
g_value_set_string (value, name_string);
BIO_free_all (bio);
break;
--
2.48.1

View File

@@ -0,0 +1,137 @@
From 70df675dd4f5e4a593b2f95406c1aac031aa8bc7 Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Thu, 21 Aug 2025 17:21:01 -0500
Subject: [PATCH] openssl: check return values of BIO_new()
We probably need to check even more return values of even more OpenSSL
functions, but these ones allocate memory and that's particularly
important to get right.
CVE: CVE-2025-60019
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib-networking/-/commit/70df675dd4f5e4a593b2f95406c1aac031aa8bc7]
Signed-off-by: Rajeshkumar Ramasamy <rajeshkumar.ramasamy@windriver.com>
---
tls/openssl/gtlscertificate-openssl.c | 39 ++++++++++++++++++++-------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/tls/openssl/gtlscertificate-openssl.c b/tls/openssl/gtlscertificate-openssl.c
index 8f828a7..f7fde51 100644
--- a/tls/openssl/gtlscertificate-openssl.c
+++ b/tls/openssl/gtlscertificate-openssl.c
@@ -156,6 +156,9 @@ export_privkey_to_der (GTlsCertificateOpenssl *openssl,
goto err;
bio = BIO_new (BIO_s_mem ());
+ if (!bio)
+ goto err;
+
if (i2d_PKCS8_PRIV_KEY_INFO_bio (bio, pkcs8) == 0)
goto err;
@@ -189,6 +192,9 @@ export_privkey_to_pem (GTlsCertificateOpenssl *openssl)
return NULL;
bio = BIO_new (BIO_s_mem ());
+ if (!bio)
+ goto out;
+
ret = PEM_write_bio_PKCS8PrivateKey (bio, openssl->key, NULL, NULL, 0, NULL, NULL);
if (ret == 0)
goto out;
@@ -201,7 +207,7 @@ export_privkey_to_pem (GTlsCertificateOpenssl *openssl)
result = g_strdup (data);
out:
- BIO_free_all (bio);
+ g_clear_pointer (&bio, BIO_free_all);
return result;
}
@@ -216,7 +222,7 @@ g_tls_certificate_openssl_get_property (GObject *object,
guint8 *data;
BIO *bio;
GByteArray *byte_array;
- char *certificate_pem;
+ const char *certificate_pem;
long size;
const ASN1_TIME *time_asn1;
@@ -251,12 +257,12 @@ g_tls_certificate_openssl_get_property (GObject *object,
case PROP_CERTIFICATE_PEM:
bio = BIO_new (BIO_s_mem ());
- if (PEM_write_bio_X509 (bio, openssl->cert) == 1 && BIO_write (bio, "\0", 1) == 1)
+ if (bio && PEM_write_bio_X509 (bio, openssl->cert) == 1 && BIO_write (bio, "\0", 1) == 1)
{
BIO_get_mem_data (bio, &certificate_pem);
g_value_set_string (value, certificate_pem);
}
- BIO_free_all (bio);
+ g_clear_pointer (&bio, BIO_free_all);
break;
case PROP_PRIVATE_KEY:
@@ -296,6 +302,8 @@ g_tls_certificate_openssl_get_property (GObject *object,
case PROP_SUBJECT_NAME:
bio = BIO_new (BIO_s_mem ());
+ if (!bio)
+ break;
name = X509_get_subject_name (openssl->cert);
if (X509_NAME_print_ex (bio, name, 0, XN_FLAG_SEP_COMMA_PLUS) < 0 ||
BIO_write (bio, "\0", 1) != 1)
@@ -310,6 +318,8 @@ g_tls_certificate_openssl_get_property (GObject *object,
case PROP_ISSUER_NAME:
bio = BIO_new (BIO_s_mem ());
+ if (!bio)
+ break;
name = X509_get_issuer_name (openssl->cert);
if (X509_NAME_print_ex (bio, name, 0, XN_FLAG_SEP_COMMA_PLUS) < 0 ||
BIO_write (bio, "\0", 1) != 1)
@@ -377,8 +387,11 @@ g_tls_certificate_openssl_set_property (GObject *object,
break;
g_return_if_fail (openssl->have_cert == FALSE);
bio = BIO_new_mem_buf ((gpointer)string, -1);
- openssl->cert = PEM_read_bio_X509 (bio, NULL, NULL, NULL);
- BIO_free (bio);
+ if (bio)
+ {
+ openssl->cert = PEM_read_bio_X509 (bio, NULL, NULL, NULL);
+ BIO_free (bio);
+ }
if (openssl->cert)
openssl->have_cert = TRUE;
else if (!openssl->construct_error)
@@ -397,8 +410,11 @@ g_tls_certificate_openssl_set_property (GObject *object,
break;
g_return_if_fail (openssl->have_key == FALSE);
bio = BIO_new_mem_buf (bytes->data, bytes->len);
- openssl->key = d2i_PrivateKey_bio (bio, NULL);
- BIO_free (bio);
+ if (bio)
+ {
+ openssl->key = d2i_PrivateKey_bio (bio, NULL);
+ BIO_free (bio);
+ }
if (openssl->key)
openssl->have_key = TRUE;
else if (!openssl->construct_error)
@@ -417,8 +433,11 @@ g_tls_certificate_openssl_set_property (GObject *object,
break;
g_return_if_fail (openssl->have_key == FALSE);
bio = BIO_new_mem_buf ((gpointer)string, -1);
- openssl->key = PEM_read_bio_PrivateKey (bio, NULL, NULL, NULL);
- BIO_free (bio);
+ if (bio)
+ {
+ openssl->key = PEM_read_bio_PrivateKey (bio, NULL, NULL, NULL);
+ BIO_free (bio);
+ }
if (openssl->key)
openssl->have_key = TRUE;
else if (!openssl->construct_error)
--
2.48.1

View File

@@ -24,6 +24,8 @@ GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gettext upstream-version-is-even gio-module-cache ptest-gnome
SRC_URI += "file://run-ptest"
SRC_URI += "file://CVE-2025-60018.patch"
SRC_URI += "file://CVE-2025-60019.patch"
FILES:${PN} += "\
${libdir}/gio/modules/libgio*.so \

View File

@@ -1,6 +1,6 @@
SRCBRANCH ?= "release/2.35/master"
PV = "2.35"
SRCREV_glibc ?= "a66bc3941ff298e474d5f02d0c3303401951141f"
SRCREV_glibc ?= "4e50046821f05ada5f14c76803845125ddb3ed7d"
SRCREV_localedef ?= "794da69788cbf9bf57b59a852f9f11307663fa87"
GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"

View File

@@ -1,6 +1,6 @@
From 31d9848830e496f57d4182b518467c4c63bfd4bd Mon Sep 17 00:00:00 2001
From 0402999b82f697011de388f61bad68da26060bef Mon Sep 17 00:00:00 2001
From: Frank Barrus <frankbarrus_sw@shaggy.cc>
Date: Mon, 16 Jun 2025 22:37:54 -0700
Date: Tue, 14 Oct 2025 03:55:17 -0700
Subject: [PATCH] pthreads NPTL: lost wakeup fix 2
This fixes the lost wakeup (from a bug in signal stealing) with a change
@@ -65,18 +65,19 @@ full wakeup from a G1/G2 switch.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
Commit : 1db84775f831a1494993ce9c118deaf9537cc50a
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=1db84775f831a1494993ce9c118deaf9537cc50a]
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002277.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
nptl/pthread_cond_common.c | 106 +++++++++------------------
nptl/pthread_cond_common.c | 105 +++++++++------------------
nptl/pthread_cond_wait.c | 144 ++++++++++++-------------------------
2 files changed, 81 insertions(+), 169 deletions(-)
2 files changed, 81 insertions(+), 168 deletions(-)
diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c
index fb035f72c3..8dd7037923 100644
index fb035f72..a55eee3e 100644
--- a/nptl/pthread_cond_common.c
+++ b/nptl/pthread_cond_common.c
@@ -201,7 +201,6 @@ static bool __attribute__ ((unused))
@@ -87,7 +88,7 @@ index fb035f72c3..8dd7037923 100644
unsigned int g1 = *g1index;
/* If there is no waiter in G2, we don't do anything. The expression may
@@ -222,85 +221,46 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
@@ -222,84 +221,46 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
* New waiters arriving concurrently with the group switching will all go
into G2 until we atomically make the switch. Waiters existing in G2
are not affected.
@@ -176,7 +177,6 @@ index fb035f72c3..8dd7037923 100644
- that this is now a new group (see __pthread_cond_wait_common for the
- matching acquire MO loads). */
- atomic_store_release (cond->__data.__g_signals + g1, 0);
-
+ unsigned int lowseq = ((old_g1_start + old_orig_size) << 1) & ~1U;
+
+ /* If any waiters still hold group references (and thus could be blocked),
@@ -201,10 +201,10 @@ index fb035f72c3..8dd7037923 100644
+
+ futex_wake (cond->__data.__g_signals + g1, INT_MAX, private);
+ }
/* At this point, the old G1 is now a valid new G2 (but not in use yet).
No old waiter can neither grab a signal nor acquire a reference without
noticing that __g1_start is larger.
@@ -311,6 +271,10 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
@@ -311,6 +272,10 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
g1 ^= 1;
*g1index ^= 1;
@@ -216,7 +216,7 @@ index fb035f72c3..8dd7037923 100644
lock. */
unsigned int orig_size = wseq - (old_g1_start + old_orig_size);
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index 20c348a503..1cb3dbf7b0 100644
index 20c348a5..1cb3dbf7 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -238,9 +238,7 @@ __condvar_cleanup_waiting (void *arg)

View File

@@ -0,0 +1,54 @@
From 4f78382dd671f381db6d1f452e6f1593d17b177e Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Tue, 14 Oct 2025 06:53:40 -0700
Subject: [PATCH] nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41
versions (bug 32786)
The new initializer and struct layout does not initialize the
__g_signals field in the old struct layout before the change in
commit c36fc50781995e6758cae2b6927839d0157f213c ("nptl: Remove
g_refs from condition variables"). Bring back fields at the end
of struct __pthread_cond_s, so that they are again zero-initialized.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
commit: dbc5a50d12eff4cb3f782129029d04b8a76f58e7
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002282.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
sysdeps/nptl/bits/thread-shared-types.h | 2 ++
sysdeps/nptl/pthread.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h
index 6f17afa4..2354ea21 100644
--- a/sysdeps/nptl/bits/thread-shared-types.h
+++ b/sysdeps/nptl/bits/thread-shared-types.h
@@ -99,6 +99,8 @@ struct __pthread_cond_s
unsigned int __g1_orig_size;
unsigned int __wrefs;
unsigned int __g_signals[2];
+ unsigned int __unused_initialized_1;
+ unsigned int __unused_initialized_2;
};
typedef unsigned int __tss_t;
diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h
index bbb36540..8d6d24ff 100644
--- a/sysdeps/nptl/pthread.h
+++ b/sysdeps/nptl/pthread.h
@@ -152,7 +152,7 @@ enum
/* Conditional variable handling. */
-#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0} } }
+#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } }
/* Cleanup buffers */
--
2.49.0

View File

@@ -1,6 +1,6 @@
From 6aab1191e35a3da66e8c49d95178a9d77c119a1f Mon Sep 17 00:00:00 2001
From 306ea7810f5f6709ef3942a7be75077203b5d201 Mon Sep 17 00:00:00 2001
From: Malte Skarupke <malteskarupke@fastmail.fm>
Date: Mon, 16 Jun 2025 23:17:53 -0700
Date: Tue, 14 Oct 2025 04:27:19 -0700
Subject: [PATCH] nptl: Update comments and indentation for new condvar
implementation
@@ -9,9 +9,10 @@ Also fixing indentation where it was using spaces instead of tabs.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
commit: 0cc973160c23bb67f895bc887dd6942d29f8fee3
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=0cc973160c23bb67f895bc887dd6942d29f8fee3]
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002275.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
@@ -20,7 +21,7 @@ Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
2 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c
index 8dd7037923..306a207dd6 100644
index a55eee3e..350a16fa 100644
--- a/nptl/pthread_cond_common.c
+++ b/nptl/pthread_cond_common.c
@@ -221,8 +221,9 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
@@ -36,7 +37,7 @@ index 8dd7037923..306a207dd6 100644
__g_signals since it provides enough signals for all possible
remaining waiters. As a result, they can each consume a signal
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index 1cb3dbf7b0..cee1968756 100644
index 1cb3dbf7..cee19687 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -249,7 +249,7 @@ __condvar_cleanup_waiting (void *arg)

View File

@@ -1,6 +1,6 @@
From 28a5082045429fdc5a4744d45fdc5b5202528eaa Mon Sep 17 00:00:00 2001
From 5f22e8cf95cf6b3b2e16ddb03820ae3e77fd420d Mon Sep 17 00:00:00 2001
From: Malte Skarupke <malteskarupke@fastmail.fm>
Date: Mon, 16 Jun 2025 23:29:49 -0700
Date: Tue, 14 Oct 2025 04:47:48 -0700
Subject: [PATCH] nptl: Remove unnecessary catch-all-wake in condvar group
switch
@@ -15,17 +15,18 @@ switch g1 when it should, so we wouldn't even have entered this code path.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
commit: b42cc6af11062c260c7dfa91f1c89891366fed3e
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=b42cc6af11062c260c7dfa91f1c89891366fed3e]
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002274.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
nptl/pthread_cond_common.c | 30 +-----------------------------
1 file changed, 1 insertion(+), 29 deletions(-)
nptl/pthread_cond_common.c | 31 +------------------------------
1 file changed, 1 insertion(+), 30 deletions(-)
diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c
index 306a207dd6..f976a533a1 100644
index 350a16fa..f976a533 100644
--- a/nptl/pthread_cond_common.c
+++ b/nptl/pthread_cond_common.c
@@ -221,13 +221,7 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
@@ -43,7 +44,7 @@ index 306a207dd6..f976a533a1 100644
/* Update __g1_start, which finishes closing this group. The value we add
will never be negative because old_orig_size can only be zero when we
@@ -240,28 +234,6 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
@@ -240,29 +234,6 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
unsigned int lowseq = ((old_g1_start + old_orig_size) << 1) & ~1U;
@@ -69,6 +70,7 @@ index 306a207dd6..f976a533a1 100644
-
- futex_wake (cond->__data.__g_signals + g1, INT_MAX, private);
- }
-
/* At this point, the old G1 is now a valid new G2 (but not in use yet).
No old waiter can neither grab a signal nor acquire a reference without
noticing that __g1_start is larger.

View File

@@ -1,6 +1,6 @@
From 16b9af737c77b153fca4f36cbdbe94f7416c0b42 Mon Sep 17 00:00:00 2001
From d714165c8bb3cac420077cfa61e3df87ea7f8b2c Mon Sep 17 00:00:00 2001
From: Malte Skarupke <malteskarupke@fastmail.fm>
Date: Mon, 16 Jun 2025 23:38:40 -0700
Date: Tue, 14 Oct 2025 05:34:06 -0700
Subject: [PATCH] nptl: Remove unnecessary quadruple check in pthread_cond_wait
pthread_cond_wait was checking whether it was in a closed group no less than
@@ -22,9 +22,10 @@ Removing the duplicate checks clarifies the code.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
commit: 4f7b051f8ee3feff1b53b27a906f245afaa9cee1
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=4f7b051f8ee3feff1b53b27a906f245afaa9cee1]
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002276.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
@@ -32,7 +33,7 @@ Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
1 file changed, 49 deletions(-)
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index cee1968756..47e834cade 100644
index cee19687..47e834ca 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -366,7 +366,6 @@ static __always_inline int

View File

@@ -1,105 +1,188 @@
From d9ffb50dc55f77e584a5d0275eea758c7a6b04e3 Mon Sep 17 00:00:00 2001
From f904a81ff8d0469ceaf3220329e716c03fcbd2d3 Mon Sep 17 00:00:00 2001
From: Malte Skarupke <malteskarupke@fastmail.fm>
Date: Mon, 16 Jun 2025 23:53:35 -0700
Subject: [PATCH] nptl: Use a single loop in pthread_cond_wait instaed of a
nested loop
Date: Tue, 14 Oct 2025 05:59:02 -0700
Subject: [PATCH] nptl: Remove g_refs from condition variables
The loop was a little more complicated than necessary. There was only one
break statement out of the inner loop, and the outer loop was nearly empty.
So just remove the outer loop, moving its code to the one break statement in
the inner loop. This allows us to replace all gotos with break statements.
This variable used to be needed to wait in group switching until all sleepers
have confirmed that they have woken. This is no longer needed. Nothing waits
on this variable so there is no need to track how many threads are currently
asleep in each group.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
cmmit: c36fc50781995e6758cae2b6927839d0157f213c
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=929a4764ac90382616b6a21f099192b2475da674]
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002278.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
nptl/pthread_cond_wait.c | 41 +++++++++++++++++++---------------------
1 file changed, 19 insertions(+), 22 deletions(-)
nptl/pthread_cond_wait.c | 52 +------------------------
nptl/tst-cond22.c | 12 +++---
sysdeps/nptl/bits/thread-shared-types.h | 3 +-
sysdeps/nptl/pthread.h | 2 +-
4 files changed, 9 insertions(+), 60 deletions(-)
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index 47e834cade..5c86880105 100644
index 47e834ca..8a9219e0 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -410,17 +410,15 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
return err;
@@ -143,23 +143,6 @@ __condvar_cancel_waiting (pthread_cond_t *cond, uint64_t seq, unsigned int g,
}
}
- /* Now wait until a signal is available in our group or it is closed.
- Acquire MO so that if we observe (signals == lowseq) after group
- switching in __condvar_quiesce_and_switch_g1, we synchronize with that
- store and will see the prior update of __g1_start done while switching
- groups too. */
- unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
-
- do
-/* Wake up any signalers that might be waiting. */
-static void
-__condvar_dec_grefs (pthread_cond_t *cond, unsigned int g, int private)
-{
- /* Release MO to synchronize-with the acquire load in
- __condvar_quiesce_and_switch_g1. */
- if (atomic_fetch_add_release (cond->__data.__g_refs + g, -2) == 3)
- {
+
while (1)
{
+ /* Now wait until a signal is available in our group or it is closed.
+ Acquire MO so that if we observe (signals == lowseq) after group
+ switching in __condvar_quiesce_and_switch_g1, we synchronize with that
+ store and will see the prior update of __g1_start done while switching
+ groups too. */
+ unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
@@ -429,7 +427,7 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
/* If the group is closed already,
then this waiter originally had enough extra signals to
consume, up until the time its group was closed. */
- goto done;
+ break;
}
/* If there is an available signal, don't block.
@@ -438,8 +436,16 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
G2, but in either case we're allowed to consume the available
signal and should not block anymore. */
if ((int)(signals - lowseq) >= 2)
- break;
- /* Clear the wake-up request flag before waking up. We do not need more
- than relaxed MO and it doesn't matter if we apply this for an aliased
- group because we wake all futex waiters right after clearing the
- flag. */
- atomic_fetch_and_relaxed (cond->__data.__g_refs + g, ~(unsigned int) 1);
- futex_wake (cond->__data.__g_refs + g, INT_MAX, private);
- }
-}
-
+ {
+ /* Try to grab a signal. See above for MO. (if we do another loop
+ iteration we need to see the correct value of g1_start) */
+ if (atomic_compare_exchange_weak_acquire (
+ cond->__data.__g_signals + g,
+ &signals, signals - 2))
+ break;
+ else
+ continue;
+ }
/* No signals available after spinning, so prepare to block.
We first acquire a group reference and use acquire MO for that so
that we synchronize with the dummy read-modify-write in
@@ -479,21 +485,12 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
the lock during cancellation is not possible. */
/* Clean-up for cancellation of waiters waiting for normal signals. We cancel
our registration as a waiter, confirm we have woken up, and re-acquire the
mutex. */
@@ -171,8 +154,6 @@ __condvar_cleanup_waiting (void *arg)
pthread_cond_t *cond = cbuffer->cond;
unsigned g = cbuffer->wseq & 1;
- __condvar_dec_grefs (cond, g, cbuffer->private);
-
__condvar_cancel_waiting (cond, cbuffer->wseq >> 1, g, cbuffer->private);
/* FIXME With the current cancellation implementation, it is possible that
a thread is cancelled after it has returned from a syscall. This could
@@ -327,15 +308,6 @@ __condvar_cleanup_waiting (void *arg)
sufficient because if a waiter can see a sufficiently large value, it could
have also consume a signal in the waiters group.
- It is essential that the last field in pthread_cond_t is __g_signals[1]:
- The previous condvar used a pointer-sized field in pthread_cond_t, so a
- PTHREAD_COND_INITIALIZER from that condvar implementation might only
- initialize 4 bytes to zero instead of the 8 bytes we need (i.e., 44 bytes
- in total instead of the 48 we need). __g_signals[1] is not accessed before
- the first group switch (G2 starts at index 0), which will set its value to
- zero after a harmless fetch-or whose return value is ignored. This
- effectively completes initialization.
-
Limitations:
* This condvar isn't designed to allow for more than
@@ -440,21 +412,6 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
if ((int)(signals - lowseq) >= 2)
break;
- /* No signals available after spinning, so prepare to block.
- We first acquire a group reference and use acquire MO for that so
- that we synchronize with the dummy read-modify-write in
- __condvar_quiesce_and_switch_g1 if we read from that. In turn,
- in this case this will make us see the advancement of __g_signals
- to the upcoming new g1_start that occurs with a concurrent
- attempt to reuse the group's slot.
- We use acquire MO for the __g_signals check to make the
- __g1_start check work (see spinning above).
- Note that the group reference acquisition will not mask the
- release MO when decrementing the reference count because we use
- an atomic read-modify-write operation and thus extend the release
- sequence. */
- atomic_fetch_add_acquire (cond->__data.__g_refs + g, 2);
-
// Now block.
struct _pthread_cleanup_buffer buffer;
struct _condvar_cleanup_buffer cbuffer;
@@ -471,18 +428,11 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
if (__glibc_unlikely (err == ETIMEDOUT || err == EOVERFLOW))
{
- __condvar_dec_grefs (cond, g, private);
- /* If we timed out, we effectively cancel waiting. Note that
- we have decremented __g_refs before cancellation, so that a
- deadlock between waiting for quiescence of our group in
- __condvar_quiesce_and_switch_g1 and us trying to acquire
- the lock during cancellation is not possible. */
+ /* If we timed out, we effectively cancel waiting. */
__condvar_cancel_waiting (cond, seq, g, private);
result = err;
- goto done;
+ break;
goto done;
}
else
__condvar_dec_grefs (cond, g, private);
- else
- __condvar_dec_grefs (cond, g, private);
- /* Reload signals. See above for MO. */
- signals = atomic_load_acquire (cond->__data.__g_signals + g);
}
- }
- /* Try to grab a signal. See above for MO. (if we do another loop
- iteration we need to see the correct value of g1_start) */
- while (!atomic_compare_exchange_weak_acquire (cond->__data.__g_signals + g,
- &signals, signals - 2));
-
- done:
/* Reload signals. See above for MO. */
signals = atomic_load_acquire (cond->__data.__g_signals + g);
diff --git a/nptl/tst-cond22.c b/nptl/tst-cond22.c
index 1336e9c7..bdcb45c5 100644
--- a/nptl/tst-cond22.c
+++ b/nptl/tst-cond22.c
@@ -106,13 +106,13 @@ do_test (void)
status = 1;
}
/* Confirm that we have been woken. We do that before acquiring the mutex
to allow for execution of pthread_cond_destroy while having acquired the
- printf ("cond = { 0x%x:%x, 0x%x:%x, %u/%u/%u, %u/%u/%u, %u, %u }\n",
+ printf ("cond = { 0x%x:%x, 0x%x:%x, %u/%u, %u/%u, %u, %u }\n",
c.__data.__wseq.__value32.__high,
c.__data.__wseq.__value32.__low,
c.__data.__g1_start.__value32.__high,
c.__data.__g1_start.__value32.__low,
- c.__data.__g_signals[0], c.__data.__g_refs[0], c.__data.__g_size[0],
- c.__data.__g_signals[1], c.__data.__g_refs[1], c.__data.__g_size[1],
+ c.__data.__g_signals[0], c.__data.__g_size[0],
+ c.__data.__g_signals[1], c.__data.__g_size[1],
c.__data.__g1_orig_size, c.__data.__wrefs);
if (pthread_create (&th, NULL, tf, (void *) 1l) != 0)
@@ -152,13 +152,13 @@ do_test (void)
status = 1;
}
- printf ("cond = { 0x%x:%x, 0x%x:%x, %u/%u/%u, %u/%u/%u, %u, %u }\n",
+ printf ("cond = { 0x%x:%x, 0x%x:%x, %u/%u, %u/%u, %u, %u }\n",
c.__data.__wseq.__value32.__high,
c.__data.__wseq.__value32.__low,
c.__data.__g1_start.__value32.__high,
c.__data.__g1_start.__value32.__low,
- c.__data.__g_signals[0], c.__data.__g_refs[0], c.__data.__g_size[0],
- c.__data.__g_signals[1], c.__data.__g_refs[1], c.__data.__g_size[1],
+ c.__data.__g_signals[0], c.__data.__g_size[0],
+ c.__data.__g_signals[1], c.__data.__g_size[1],
c.__data.__g1_orig_size, c.__data.__wrefs);
return status;
diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h
index 5653507e..6f17afa4 100644
--- a/sysdeps/nptl/bits/thread-shared-types.h
+++ b/sysdeps/nptl/bits/thread-shared-types.h
@@ -95,8 +95,7 @@ struct __pthread_cond_s
{
__atomic_wide_counter __wseq;
__atomic_wide_counter __g1_start;
- unsigned int __g_refs[2] __LOCK_ALIGNMENT;
- unsigned int __g_size[2];
+ unsigned int __g_size[2] __LOCK_ALIGNMENT;
unsigned int __g1_orig_size;
unsigned int __wrefs;
unsigned int __g_signals[2];
diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h
index dedad4ec..bbb36540 100644
--- a/sysdeps/nptl/pthread.h
+++ b/sysdeps/nptl/pthread.h
@@ -152,7 +152,7 @@ enum
/* Conditional variable handling. */
-#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } }
+#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0} } }
/* Cleanup buffers */
--
2.49.0

View File

@@ -1,166 +1,100 @@
From a2faee6d0dac6e5232255da9afda4d9ed6cfb6e5 Mon Sep 17 00:00:00 2001
From bbd7c84a1a14bf93bf1e5976d8a1540aabbf901b Mon Sep 17 00:00:00 2001
From: Malte Skarupke <malteskarupke@fastmail.fm>
Date: Tue, 17 Jun 2025 01:37:12 -0700
Subject: [PATCH] nptl: Fix indentation
Date: Tue, 14 Oct 2025 06:19:02 -0700
Subject: [PATCH] nptl: Use a single loop in pthread_cond_wait instaed of a
nested loop
In my previous change I turned a nested loop into a simple loop. I'm doing
the resulting indentation changes in a separate commit to make the diff on
the previous commit easier to review.
The loop was a little more complicated than necessary. There was only one
break statement out of the inner loop, and the outer loop was nearly empty.
So just remove the outer loop, moving its code to the one break statement in
the inner loop. This allows us to replace all gotos with break statements.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
commit: 929a4764ac90382616b6a21f099192b2475da674
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=ee6c14ed59d480720721aaacc5fb03213dc153da]
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002279.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
nptl/pthread_cond_wait.c | 132 ++++++++++++++++-----------------------
1 file changed, 54 insertions(+), 78 deletions(-)
nptl/pthread_cond_wait.c | 41 +++++++++++++++++++---------------------
1 file changed, 19 insertions(+), 22 deletions(-)
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index 5c86880105..104ebd48ca 100644
index 8a9219e0..c8c99bbf 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -410,87 +410,63 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
@@ -382,17 +382,15 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
return err;
}
- /* Now wait until a signal is available in our group or it is closed.
- Acquire MO so that if we observe (signals == lowseq) after group
- switching in __condvar_quiesce_and_switch_g1, we synchronize with that
- store and will see the prior update of __g1_start done while switching
- groups too. */
- unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
-
- while (1)
- {
- /* Now wait until a signal is available in our group or it is closed.
- Acquire MO so that if we observe (signals == lowseq) after group
- switching in __condvar_quiesce_and_switch_g1, we synchronize with that
- store and will see the prior update of __g1_start done while switching
- groups too. */
- unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
- uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
- unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
-
- if (seq < (g1_start >> 1))
- {
- /* If the group is closed already,
- then this waiter originally had enough extra signals to
- consume, up until the time its group was closed. */
- break;
- }
-
- /* If there is an available signal, don't block.
- If __g1_start has advanced at all, then we must be in G1
- by now, perhaps in the process of switching back to an older
- G2, but in either case we're allowed to consume the available
- signal and should not block anymore. */
- if ((int)(signals - lowseq) >= 2)
- {
- /* Try to grab a signal. See above for MO. (if we do another loop
- iteration we need to see the correct value of g1_start) */
- if (atomic_compare_exchange_weak_acquire (
- cond->__data.__g_signals + g,
+ while (1)
+ {
+ /* Now wait until a signal is available in our group or it is closed.
+ Acquire MO so that if we observe (signals == lowseq) after group
+ switching in __condvar_quiesce_and_switch_g1, we synchronize with that
+ store and will see the prior update of __g1_start done while switching
+ groups too. */
+ unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
+ uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
+ unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
- do
- {
+
+ if (seq < (g1_start >> 1))
+ {
+ /* If the group is closed already,
+ then this waiter originally had enough extra signals to
+ consume, up until the time its group was closed. */
+ break;
+ }
+
+ /* If there is an available signal, don't block.
+ If __g1_start has advanced at all, then we must be in G1
+ by now, perhaps in the process of switching back to an older
+ G2, but in either case we're allowed to consume the available
+ signal and should not block anymore. */
+ if ((int)(signals - lowseq) >= 2)
+ {
+ /* Try to grab a signal. See above for MO. (if we do another loop
+ iteration we need to see the correct value of g1_start) */
+ if (atomic_compare_exchange_weak_acquire (
+ cond->__data.__g_signals + g,
&signals, signals - 2))
- break;
- else
- continue;
- }
- /* No signals available after spinning, so prepare to block.
- We first acquire a group reference and use acquire MO for that so
- that we synchronize with the dummy read-modify-write in
- __condvar_quiesce_and_switch_g1 if we read from that. In turn,
- in this case this will make us see the advancement of __g_signals
- to the upcoming new g1_start that occurs with a concurrent
- attempt to reuse the group's slot.
- We use acquire MO for the __g_signals check to make the
- __g1_start check work (see spinning above).
- Note that the group reference acquisition will not mask the
- release MO when decrementing the reference count because we use
- an atomic read-modify-write operation and thus extend the release
- sequence. */
- atomic_fetch_add_acquire (cond->__data.__g_refs + g, 2);
while (1)
{
+ /* Now wait until a signal is available in our group or it is closed.
+ Acquire MO so that if we observe (signals == lowseq) after group
+ switching in __condvar_quiesce_and_switch_g1, we synchronize with that
+ store and will see the prior update of __g1_start done while switching
+ groups too. */
+ unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
@@ -401,7 +399,7 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
/* If the group is closed already,
then this waiter originally had enough extra signals to
consume, up until the time its group was closed. */
- goto done;
+ break;
}
/* If there is an available signal, don't block.
@@ -410,7 +408,16 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
G2, but in either case we're allowed to consume the available
signal and should not block anymore. */
if ((int)(signals - lowseq) >= 2)
- break;
+ {
+ /* Try to grab a signal. See above for MO. (if we do another loop
+ iteration we need to see the correct value of g1_start) */
+ if (atomic_compare_exchange_weak_acquire (
+ cond->__data.__g_signals + g,
+ &signals, signals - 2))
+ break;
+ else
+ continue;
+ }
// Now block.
struct _pthread_cleanup_buffer buffer;
@@ -431,19 +438,9 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
/* If we timed out, we effectively cancel waiting. */
__condvar_cancel_waiting (cond, seq, g, private);
result = err;
- goto done;
+ break;
}
-
- // Now block.
- struct _pthread_cleanup_buffer buffer;
- struct _condvar_cleanup_buffer cbuffer;
- cbuffer.wseq = wseq;
- cbuffer.cond = cond;
- cbuffer.mutex = mutex;
- cbuffer.private = private;
- __pthread_cleanup_push (&buffer, __condvar_cleanup_waiting, &cbuffer);
-
- err = __futex_abstimed_wait_cancelable64 (
- cond->__data.__g_signals + g, signals, clockid, abstime, private);
-
- __pthread_cleanup_pop (&buffer, 0);
-
- if (__glibc_unlikely (err == ETIMEDOUT || err == EOVERFLOW))
- {
- __condvar_dec_grefs (cond, g, private);
- /* If we timed out, we effectively cancel waiting. Note that
- we have decremented __g_refs before cancellation, so that a
- deadlock between waiting for quiescence of our group in
- __condvar_quiesce_and_switch_g1 and us trying to acquire
- the lock during cancellation is not possible. */
- __condvar_cancel_waiting (cond, seq, g, private);
- result = err;
break;
- }
- else
- __condvar_dec_grefs (cond, g, private);
-
+ else
+ continue;
- /* Reload signals. See above for MO. */
- signals = atomic_load_acquire (cond->__data.__g_signals + g);
}
+ // Now block.
+ struct _pthread_cleanup_buffer buffer;
+ struct _condvar_cleanup_buffer cbuffer;
+ cbuffer.wseq = wseq;
+ cbuffer.cond = cond;
+ cbuffer.mutex = mutex;
+ cbuffer.private = private;
+ __pthread_cleanup_push (&buffer, __condvar_cleanup_waiting, &cbuffer);
+
+ err = __futex_abstimed_wait_cancelable64 (
+ cond->__data.__g_signals + g, signals, clockid, abstime, private);
+
+ __pthread_cleanup_pop (&buffer, 0);
+
+ if (__glibc_unlikely (err == ETIMEDOUT || err == EOVERFLOW))
+ {
+ /* If we timed out, we effectively cancel waiting. */
+ __condvar_cancel_waiting (cond, seq, g, private);
+ result = err;
+ break;
+ }
+ }
- }
- /* Try to grab a signal. See above for MO. (if we do another loop
- iteration we need to see the correct value of g1_start) */
- while (!atomic_compare_exchange_weak_acquire (cond->__data.__g_signals + g,
- &signals, signals - 2));
-
- done:
/* Confirm that we have been woken. We do that before acquiring the mutex
to allow for execution of pthread_cond_destroy while having acquired the

View File

@@ -1,160 +1,149 @@
From 2a601ac9041e2ca645acad2c174b1c545cfceafe Mon Sep 17 00:00:00 2001
From 1077953950d1e8864c63222967141c67f51297f8 Mon Sep 17 00:00:00 2001
From: Malte Skarupke <malteskarupke@fastmail.fm>
Date: Tue, 17 Jun 2025 01:53:25 -0700
Subject: [PATCH] nptl: rename __condvar_quiesce_and_switch_g1
Date: Tue, 14 Oct 2025 06:27:04 -0700
Subject: [PATCH] nptl: Fix indentation
This function no longer waits for threads to leave g1, so rename it to
__condvar_switch_g1
In my previous change I turned a nested loop into a simple loop. I'm doing
the resulting indentation changes in a separate commit to make the diff on
the previous commit easier to review.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
commit: ee6c14ed59d480720721aaacc5fb03213dc153da
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=4b79e27a5073c02f6bff9aa8f4791230a0ab1867]
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002280.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
nptl/pthread_cond_broadcast.c | 4 ++--
nptl/pthread_cond_common.c | 26 ++++++++++++--------------
nptl/pthread_cond_signal.c | 17 ++++++++---------
nptl/pthread_cond_wait.c | 9 ++++-----
4 files changed, 26 insertions(+), 30 deletions(-)
nptl/pthread_cond_wait.c | 110 +++++++++++++++++++--------------------
1 file changed, 55 insertions(+), 55 deletions(-)
diff --git a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
index 5ae141ac81..a07435589a 100644
--- a/nptl/pthread_cond_broadcast.c
+++ b/nptl/pthread_cond_broadcast.c
@@ -60,7 +60,7 @@ ___pthread_cond_broadcast (pthread_cond_t *cond)
cond->__data.__g_size[g1] << 1);
cond->__data.__g_size[g1] = 0;
- /* We need to wake G1 waiters before we quiesce G1 below. */
+ /* We need to wake G1 waiters before we switch G1 below. */
/* TODO Only set it if there are indeed futex waiters. We could
also try to move this out of the critical section in cases when
G2 is empty (and we don't need to quiesce). */
@@ -69,7 +69,7 @@ ___pthread_cond_broadcast (pthread_cond_t *cond)
/* G1 is complete. Step (2) is next unless there are no waiters in G2, in
which case we can stop. */
- if (__condvar_quiesce_and_switch_g1 (cond, wseq, &g1, private))
+ if (__condvar_switch_g1 (cond, wseq, &g1, private))
{
/* Step (3): Send signals to all waiters in the old G2 / new G1. */
atomic_fetch_add_relaxed (cond->__data.__g_signals + g1,
diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c
index f976a533a1..3baac4dabc 100644
--- a/nptl/pthread_cond_common.c
+++ b/nptl/pthread_cond_common.c
@@ -189,16 +189,15 @@ __condvar_get_private (int flags)
return FUTEX_SHARED;
}
-/* This closes G1 (whose index is in G1INDEX), waits for all futex waiters to
- leave G1, converts G1 into a fresh G2, and then switches group roles so that
- the former G2 becomes the new G1 ending at the current __wseq value when we
- eventually make the switch (WSEQ is just an observation of __wseq by the
- signaler).
+/* This closes G1 (whose index is in G1INDEX), converts G1 into a fresh G2,
+ and then switches group roles so that the former G2 becomes the new G1
+ ending at the current __wseq value when we eventually make the switch
+ (WSEQ is just an observation of __wseq by the signaler).
If G2 is empty, it will not switch groups because then it would create an
empty G1 which would require switching groups again on the next signal.
Returns false iff groups were not switched because G2 was empty. */
static bool __attribute__ ((unused))
-__condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
+__condvar_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
unsigned int *g1index, int private)
{
unsigned int g1 = *g1index;
@@ -214,8 +213,7 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
+ cond->__data.__g_size[g1 ^ 1]) == 0)
return false;
- /* Now try to close and quiesce G1. We have to consider the following kinds
- of waiters:
+ /* We have to consider the following kinds of waiters:
* Waiters from less recent groups than G1 are not affected because
nothing will change for them apart from __g1_start getting larger.
* New waiters arriving concurrently with the group switching will all go
@@ -223,12 +221,12 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
are not affected.
* Waiters in G1 have already received a signal and been woken. */
- /* Update __g1_start, which finishes closing this group. The value we add
- will never be negative because old_orig_size can only be zero when we
- switch groups the first time after a condvar was initialized, in which
- case G1 will be at index 1 and we will add a value of 1.
- Relaxed MO is fine because the change comes with no additional
- constraints that others would have to observe. */
+ /* Update __g1_start, which closes this group. The value we add will never
+ be negative because old_orig_size can only be zero when we switch groups
+ the first time after a condvar was initialized, in which case G1 will be
+ at index 1 and we will add a value of 1. Relaxed MO is fine because the
+ change comes with no additional constraints that others would have to
+ observe. */
__condvar_add_g1_start_relaxed (cond,
(old_orig_size << 1) + (g1 == 1 ? 1 : - 1));
diff --git a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
index 14800ba00b..a9bc10dcca 100644
--- a/nptl/pthread_cond_signal.c
+++ b/nptl/pthread_cond_signal.c
@@ -69,18 +69,17 @@ ___pthread_cond_signal (pthread_cond_t *cond)
bool do_futex_wake = false;
/* If G1 is still receiving signals, we put the signal there. If not, we
- check if G2 has waiters, and if so, quiesce and switch G1 to the former
- G2; if this results in a new G1 with waiters (G2 might have cancellations
- already, see __condvar_quiesce_and_switch_g1), we put the signal in the
- new G1. */
+ check if G2 has waiters, and if so, switch G1 to the former G2; if this
+ results in a new G1 with waiters (G2 might have cancellations already,
+ see __condvar_switch_g1), we put the signal in the new G1. */
if ((cond->__data.__g_size[g1] != 0)
- || __condvar_quiesce_and_switch_g1 (cond, wseq, &g1, private))
+ || __condvar_switch_g1 (cond, wseq, &g1, private))
{
/* Add a signal. Relaxed MO is fine because signaling does not need to
- establish a happens-before relation (see above). We do not mask the
- release-MO store when initializing a group in
- __condvar_quiesce_and_switch_g1 because we use an atomic
- read-modify-write and thus extend that store's release sequence. */
+ establish a happens-before relation (see above). We do not mask the
+ release-MO store when initializing a group in __condvar_switch_g1
+ because we use an atomic read-modify-write and thus extend that
+ store's release sequence. */
atomic_fetch_add_relaxed (cond->__data.__g_signals + g1, 2);
cond->__data.__g_size[g1]--;
/* TODO Only set it if there are indeed futex waiters. */
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index 104ebd48ca..bb46f3605d 100644
index c8c99bbf..adf26a80 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -382,8 +382,7 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
because we do not need to establish any happens-before relation with
signalers (see __pthread_cond_signal); modification order alone
establishes a total order of waiters/signals. We do need acquire MO
- to synchronize with group reinitialization in
- __condvar_quiesce_and_switch_g1. */
+ to synchronize with group reinitialization in __condvar_switch_g1. */
uint64_t wseq = __condvar_fetch_add_wseq_acquire (cond, 2);
/* Find our group's index. We always go into what was G2 when we acquired
our position. */
@@ -414,9 +413,9 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
{
/* Now wait until a signal is available in our group or it is closed.
Acquire MO so that if we observe (signals == lowseq) after group
- switching in __condvar_quiesce_and_switch_g1, we synchronize with that
- store and will see the prior update of __g1_start done while switching
- groups too. */
+ switching in __condvar_switch_g1, we synchronize with that store and
+ will see the prior update of __g1_start done while switching groups
+ too. */
unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
@@ -383,65 +383,65 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
}
- while (1)
- {
- /* Now wait until a signal is available in our group or it is closed.
- Acquire MO so that if we observe (signals == lowseq) after group
- switching in __condvar_quiesce_and_switch_g1, we synchronize with that
- store and will see the prior update of __g1_start done while switching
- groups too. */
- unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
- uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
- unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
-
- if (seq < (g1_start >> 1))
- {
- /* If the group is closed already,
- then this waiter originally had enough extra signals to
- consume, up until the time its group was closed. */
- break;
- }
-
- /* If there is an available signal, don't block.
- If __g1_start has advanced at all, then we must be in G1
- by now, perhaps in the process of switching back to an older
- G2, but in either case we're allowed to consume the available
- signal and should not block anymore. */
- if ((int)(signals - lowseq) >= 2)
- {
- /* Try to grab a signal. See above for MO. (if we do another loop
- iteration we need to see the correct value of g1_start) */
- if (atomic_compare_exchange_weak_acquire (
- cond->__data.__g_signals + g,
+ while (1)
+ {
+ /* Now wait until a signal is available in our group or it is closed.
+ Acquire MO so that if we observe (signals == lowseq) after group
+ switching in __condvar_quiesce_and_switch_g1, we synchronize with that
+ store and will see the prior update of __g1_start done while switching
+ groups too. */
+ unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
+ uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
+ unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
+
+ if (seq < (g1_start >> 1))
+ {
+ /* If the group is closed already,
+ then this waiter originally had enough extra signals to
+ consume, up until the time its group was closed. */
+ break;
+ }
+
+ /* If there is an available signal, don't block.
+ If __g1_start has advanced at all, then we must be in G1
+ by now, perhaps in the process of switching back to an older
+ G2, but in either case we're allowed to consume the available
+ signal and should not block anymore. */
+ if ((int)(signals - lowseq) >= 2)
+ {
+ /* Try to grab a signal. See above for MO. (if we do another loop
+ iteration we need to see the correct value of g1_start) */
+ if (atomic_compare_exchange_weak_acquire (
+ cond->__data.__g_signals + g,
&signals, signals - 2))
- break;
- else
- continue;
- }
-
- // Now block.
- struct _pthread_cleanup_buffer buffer;
- struct _condvar_cleanup_buffer cbuffer;
- cbuffer.wseq = wseq;
- cbuffer.cond = cond;
- cbuffer.mutex = mutex;
- cbuffer.private = private;
- __pthread_cleanup_push (&buffer, __condvar_cleanup_waiting, &cbuffer);
-
- err = __futex_abstimed_wait_cancelable64 (
- cond->__data.__g_signals + g, signals, clockid, abstime, private);
-
- __pthread_cleanup_pop (&buffer, 0);
-
- if (__glibc_unlikely (err == ETIMEDOUT || err == EOVERFLOW))
- {
- /* If we timed out, we effectively cancel waiting. */
- __condvar_cancel_waiting (cond, seq, g, private);
- result = err;
break;
- }
+ else
+ continue;
}
+ // Now block.
+ struct _pthread_cleanup_buffer buffer;
+ struct _condvar_cleanup_buffer cbuffer;
+ cbuffer.wseq = wseq;
+ cbuffer.cond = cond;
+ cbuffer.mutex = mutex;
+ cbuffer.private = private;
+ __pthread_cleanup_push (&buffer, __condvar_cleanup_waiting, &cbuffer);
+
+ err = __futex_abstimed_wait_cancelable64 (
+ cond->__data.__g_signals + g, signals, clockid, abstime, private);
+
+ __pthread_cleanup_pop (&buffer, 0);
+
+ if (__glibc_unlikely (err == ETIMEDOUT || err == EOVERFLOW))
+ {
+ /* If we timed out, we effectively cancel waiting. */
+ __condvar_cancel_waiting (cond, seq, g, private);
+ result = err;
+ break;
+ }
+ }
+
/* Confirm that we have been woken. We do that before acquiring the mutex
to allow for execution of pthread_cond_destroy while having acquired the
mutex. */
--
2.49.0

View File

@@ -1,192 +1,161 @@
From fc074de88796eb2036fbe9bade638e00adfd5cb2 Mon Sep 17 00:00:00 2001
From 20d84dfa0b9a32f88259269bbeaae588744ae4ae Mon Sep 17 00:00:00 2001
From: Malte Skarupke <malteskarupke@fastmail.fm>
Date: Tue, 17 Jun 2025 02:08:36 -0700
Subject: [PATCH] nptl: Use all of g1_start and g_signals
Date: Tue, 14 Oct 2025 06:33:50 -0700
Subject: [PATCH] nptl: rename __condvar_quiesce_and_switch_g1
The LSB of g_signals was unused. The LSB of g1_start was used to indicate
which group is G2. This was used to always go to sleep in pthread_cond_wait
if a waiter is in G2. A comment earlier in the file says that this is not
correct to do:
"Waiters cannot determine whether they are currently in G2 or G1 -- but they
do not have to because all they are interested in is whether there are
available signals"
I either would have had to update the comment, or get rid of the check. I
chose to get rid of the check. In fact I don't quite know why it was there.
There will never be available signals for group G2, so we didn't need the
special case. Even if there were, this would just be a spurious wake. This
might have caught some cases where the count has wrapped around, but it
wouldn't reliably do that, (and even if it did, why would you want to force a
sleep in that case?) and we don't support that many concurrent waiters
anyway. Getting rid of it allows us to use one more bit, making us more
robust to wraparound.
This function no longer waits for threads to leave g1, so rename it to
__condvar_switch_g1
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
commit: 4b79e27a5073c02f6bff9aa8f4791230a0ab1867
Upstream-Status: Backport
[https://sourceware.org/git/?p=glibc.git;a=commit;h=91bb902f58264a2fd50fbce8f39a9a290dd23706]
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002281.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
nptl/pthread_cond_broadcast.c | 4 ++--
nptl/pthread_cond_common.c | 26 ++++++++++----------------
nptl/pthread_cond_signal.c | 2 +-
nptl/pthread_cond_wait.c | 14 +++++---------
4 files changed, 18 insertions(+), 28 deletions(-)
nptl/pthread_cond_common.c | 26 ++++++++++++--------------
nptl/pthread_cond_signal.c | 17 ++++++++---------
nptl/pthread_cond_wait.c | 9 ++++-----
4 files changed, 26 insertions(+), 30 deletions(-)
diff --git a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
index a07435589a..ef0943cdc5 100644
index 5ae141ac..a0743558 100644
--- a/nptl/pthread_cond_broadcast.c
+++ b/nptl/pthread_cond_broadcast.c
@@ -57,7 +57,7 @@ ___pthread_cond_broadcast (pthread_cond_t *cond)
{
/* Add as many signals as the remaining size of the group. */
atomic_fetch_add_relaxed (cond->__data.__g_signals + g1,
- cond->__data.__g_size[g1] << 1);
+ cond->__data.__g_size[g1]);
@@ -60,7 +60,7 @@ ___pthread_cond_broadcast (pthread_cond_t *cond)
cond->__data.__g_size[g1] << 1);
cond->__data.__g_size[g1] = 0;
/* We need to wake G1 waiters before we switch G1 below. */
@@ -73,7 +73,7 @@ ___pthread_cond_broadcast (pthread_cond_t *cond)
- /* We need to wake G1 waiters before we quiesce G1 below. */
+ /* We need to wake G1 waiters before we switch G1 below. */
/* TODO Only set it if there are indeed futex waiters. We could
also try to move this out of the critical section in cases when
G2 is empty (and we don't need to quiesce). */
@@ -69,7 +69,7 @@ ___pthread_cond_broadcast (pthread_cond_t *cond)
/* G1 is complete. Step (2) is next unless there are no waiters in G2, in
which case we can stop. */
- if (__condvar_quiesce_and_switch_g1 (cond, wseq, &g1, private))
+ if (__condvar_switch_g1 (cond, wseq, &g1, private))
{
/* Step (3): Send signals to all waiters in the old G2 / new G1. */
atomic_fetch_add_relaxed (cond->__data.__g_signals + g1,
- cond->__data.__g_size[g1] << 1);
+ cond->__data.__g_size[g1]);
cond->__data.__g_size[g1] = 0;
/* TODO Only set it if there are indeed futex waiters. */
do_futex_wake = true;
diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c
index 3baac4dabc..e48f914321 100644
index f976a533..3baac4da 100644
--- a/nptl/pthread_cond_common.c
+++ b/nptl/pthread_cond_common.c
@@ -208,9 +208,9 @@ __condvar_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
behavior.
Note that this works correctly for a zero-initialized condvar too. */
unsigned int old_orig_size = __condvar_get_orig_size (cond);
- uint64_t old_g1_start = __condvar_load_g1_start_relaxed (cond) >> 1;
- if (((unsigned) (wseq - old_g1_start - old_orig_size)
- + cond->__data.__g_size[g1 ^ 1]) == 0)
+ uint64_t old_g1_start = __condvar_load_g1_start_relaxed (cond);
+ uint64_t new_g1_start = old_g1_start + old_orig_size;
+ if (((unsigned) (wseq - new_g1_start) + cond->__data.__g_size[g1 ^ 1]) == 0)
@@ -189,16 +189,15 @@ __condvar_get_private (int flags)
return FUTEX_SHARED;
}
-/* This closes G1 (whose index is in G1INDEX), waits for all futex waiters to
- leave G1, converts G1 into a fresh G2, and then switches group roles so that
- the former G2 becomes the new G1 ending at the current __wseq value when we
- eventually make the switch (WSEQ is just an observation of __wseq by the
- signaler).
+/* This closes G1 (whose index is in G1INDEX), converts G1 into a fresh G2,
+ and then switches group roles so that the former G2 becomes the new G1
+ ending at the current __wseq value when we eventually make the switch
+ (WSEQ is just an observation of __wseq by the signaler).
If G2 is empty, it will not switch groups because then it would create an
empty G1 which would require switching groups again on the next signal.
Returns false iff groups were not switched because G2 was empty. */
static bool __attribute__ ((unused))
-__condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
+__condvar_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
unsigned int *g1index, int private)
{
unsigned int g1 = *g1index;
@@ -214,8 +213,7 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
+ cond->__data.__g_size[g1 ^ 1]) == 0)
return false;
/* We have to consider the following kinds of waiters:
@@ -221,16 +221,10 @@ __condvar_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
- /* Now try to close and quiesce G1. We have to consider the following kinds
- of waiters:
+ /* We have to consider the following kinds of waiters:
* Waiters from less recent groups than G1 are not affected because
nothing will change for them apart from __g1_start getting larger.
* New waiters arriving concurrently with the group switching will all go
@@ -223,12 +221,12 @@ __condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
are not affected.
* Waiters in G1 have already received a signal and been woken. */
- /* Update __g1_start, which closes this group. The value we add will never
- be negative because old_orig_size can only be zero when we switch groups
- the first time after a condvar was initialized, in which case G1 will be
- at index 1 and we will add a value of 1. Relaxed MO is fine because the
- change comes with no additional constraints that others would have to
- observe. */
- __condvar_add_g1_start_relaxed (cond,
- (old_orig_size << 1) + (g1 == 1 ? 1 : - 1));
-
- unsigned int lowseq = ((old_g1_start + old_orig_size) << 1) & ~1U;
+ /* Update __g1_start, which closes this group. Relaxed MO is fine because
+ the change comes with no additional constraints that others would have
+ to observe. */
+ __condvar_add_g1_start_relaxed (cond, old_orig_size);
- /* Update __g1_start, which finishes closing this group. The value we add
- will never be negative because old_orig_size can only be zero when we
- switch groups the first time after a condvar was initialized, in which
- case G1 will be at index 1 and we will add a value of 1.
- Relaxed MO is fine because the change comes with no additional
- constraints that others would have to observe. */
+ /* Update __g1_start, which closes this group. The value we add will never
+ be negative because old_orig_size can only be zero when we switch groups
+ the first time after a condvar was initialized, in which case G1 will be
+ at index 1 and we will add a value of 1. Relaxed MO is fine because the
+ change comes with no additional constraints that others would have to
+ observe. */
__condvar_add_g1_start_relaxed (cond,
(old_orig_size << 1) + (g1 == 1 ? 1 : - 1));
/* At this point, the old G1 is now a valid new G2 (but not in use yet).
No old waiter can neither grab a signal nor acquire a reference without
@@ -242,13 +236,13 @@ __condvar_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
g1 ^= 1;
*g1index ^= 1;
- /* Now advance the new G1 g_signals to the new lowseq, giving it
+ /* Now advance the new G1 g_signals to the new g1_start, giving it
an effective signal count of 0 to start. */
- atomic_store_release (cond->__data.__g_signals + g1, lowseq);
+ atomic_store_release (cond->__data.__g_signals + g1, (unsigned)new_g1_start);
/* These values are just observed by signalers, and thus protected by the
lock. */
- unsigned int orig_size = wseq - (old_g1_start + old_orig_size);
+ unsigned int orig_size = wseq - new_g1_start;
__condvar_set_orig_size (cond, orig_size);
/* Use and addition to not loose track of cancellations in what was
previously G2. */
diff --git a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
index a9bc10dcca..07427369aa 100644
index 14800ba0..a9bc10dc 100644
--- a/nptl/pthread_cond_signal.c
+++ b/nptl/pthread_cond_signal.c
@@ -80,7 +80,7 @@ ___pthread_cond_signal (pthread_cond_t *cond)
release-MO store when initializing a group in __condvar_switch_g1
because we use an atomic read-modify-write and thus extend that
store's release sequence. */
- atomic_fetch_add_relaxed (cond->__data.__g_signals + g1, 2);
+ atomic_fetch_add_relaxed (cond->__data.__g_signals + g1, 1);
@@ -69,18 +69,17 @@ ___pthread_cond_signal (pthread_cond_t *cond)
bool do_futex_wake = false;
/* If G1 is still receiving signals, we put the signal there. If not, we
- check if G2 has waiters, and if so, quiesce and switch G1 to the former
- G2; if this results in a new G1 with waiters (G2 might have cancellations
- already, see __condvar_quiesce_and_switch_g1), we put the signal in the
- new G1. */
+ check if G2 has waiters, and if so, switch G1 to the former G2; if this
+ results in a new G1 with waiters (G2 might have cancellations already,
+ see __condvar_switch_g1), we put the signal in the new G1. */
if ((cond->__data.__g_size[g1] != 0)
- || __condvar_quiesce_and_switch_g1 (cond, wseq, &g1, private))
+ || __condvar_switch_g1 (cond, wseq, &g1, private))
{
/* Add a signal. Relaxed MO is fine because signaling does not need to
- establish a happens-before relation (see above). We do not mask the
- release-MO store when initializing a group in
- __condvar_quiesce_and_switch_g1 because we use an atomic
- read-modify-write and thus extend that store's release sequence. */
+ establish a happens-before relation (see above). We do not mask the
+ release-MO store when initializing a group in __condvar_switch_g1
+ because we use an atomic read-modify-write and thus extend that
+ store's release sequence. */
atomic_fetch_add_relaxed (cond->__data.__g_signals + g1, 2);
cond->__data.__g_size[g1]--;
/* TODO Only set it if there are indeed futex waiters. */
do_futex_wake = true;
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index bb46f3605d..430cbe8a35 100644
index adf26a80..40a74342 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -84,7 +84,7 @@ __condvar_cancel_waiting (pthread_cond_t *cond, uint64_t seq, unsigned int g,
not hold a reference on the group. */
__condvar_acquire_lock (cond, private);
- uint64_t g1_start = __condvar_load_g1_start_relaxed (cond) >> 1;
+ uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
if (g1_start > seq)
@@ -354,8 +354,7 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
because we do not need to establish any happens-before relation with
signalers (see __pthread_cond_signal); modification order alone
establishes a total order of waiters/signals. We do need acquire MO
- to synchronize with group reinitialization in
- __condvar_quiesce_and_switch_g1. */
+ to synchronize with group reinitialization in __condvar_switch_g1. */
uint64_t wseq = __condvar_fetch_add_wseq_acquire (cond, 2);
/* Find our group's index. We always go into what was G2 when we acquired
our position. */
@@ -387,9 +386,9 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
{
/* Our group is closed, so someone provided enough signals for it.
@@ -278,7 +278,6 @@ __condvar_cleanup_waiting (void *arg)
* Waiters fetch-add while having acquire the mutex associated with the
condvar. Signalers load it and fetch-xor it concurrently.
__g1_start: Starting position of G1 (inclusive)
- * LSB is index of current G2.
* Modified by signalers while having acquired the condvar-internal lock
and observed concurrently by waiters.
__g1_orig_size: Initial size of G1
@@ -299,11 +298,9 @@ __condvar_cleanup_waiting (void *arg)
* Reference count used by waiters concurrently with signalers that have
acquired the condvar-internal lock.
__g_signals: The number of signals that can still be consumed, relative to
- the current g1_start. (i.e. bits 31 to 1 of __g_signals are bits
- 31 to 1 of g1_start with the signal count added)
+ the current g1_start. (i.e. g1_start with the signal count added)
* Used as a futex word by waiters. Used concurrently by waiters and
signalers.
- * LSB is currently reserved and 0.
__g_size: Waiters remaining in this group (i.e., which have not been
signaled yet.
* Accessed by signalers and waiters that cancel waiting (both do so only
@@ -418,9 +415,8 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
too. */
/* Now wait until a signal is available in our group or it is closed.
Acquire MO so that if we observe (signals == lowseq) after group
- switching in __condvar_quiesce_and_switch_g1, we synchronize with that
- store and will see the prior update of __g1_start done while switching
- groups too. */
+ switching in __condvar_switch_g1, we synchronize with that store and
+ will see the prior update of __g1_start done while switching groups
+ too. */
unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
- unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
- if (seq < (g1_start >> 1))
+ if (seq < g1_start)
{
/* If the group is closed already,
then this waiter originally had enough extra signals to
@@ -433,13 +429,13 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
by now, perhaps in the process of switching back to an older
G2, but in either case we're allowed to consume the available
signal and should not block anymore. */
- if ((int)(signals - lowseq) >= 2)
+ if ((int)(signals - (unsigned int)g1_start) > 0)
{
/* Try to grab a signal. See above for MO. (if we do another loop
iteration we need to see the correct value of g1_start) */
if (atomic_compare_exchange_weak_acquire (
cond->__data.__g_signals + g,
- &signals, signals - 2))
+ &signals, signals - 1))
break;
else
continue;
unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
--
2.49.0

View File

@@ -0,0 +1,193 @@
From c2677e68956bb9677d8de4ee6c5341b1a744d490 Mon Sep 17 00:00:00 2001
From: Malte Skarupke <malteskarupke@fastmail.fm>
Date: Tue, 14 Oct 2025 06:40:57 -0700
Subject: [PATCH] nptl: Use all of g1_start and g_signals
The LSB of g_signals was unused. The LSB of g1_start was used to indicate
which group is G2. This was used to always go to sleep in pthread_cond_wait
if a waiter is in G2. A comment earlier in the file says that this is not
correct to do:
"Waiters cannot determine whether they are currently in G2 or G1 -- but they
do not have to because all they are interested in is whether there are
available signals"
I either would have had to update the comment, or get rid of the check. I
chose to get rid of the check. In fact I don't quite know why it was there.
There will never be available signals for group G2, so we didn't need the
special case. Even if there were, this would just be a spurious wake. This
might have caught some cases where the count has wrapped around, but it
wouldn't reliably do that, (and even if it did, why would you want to force a
sleep in that case?) and we don't support that many concurrent waiters
anyway. Getting rid of it allows us to use one more bit, making us more
robust to wraparound.
The following commits have been cherry-picked from Glibc master branch:
Bug : https://sourceware.org/bugzilla/show_bug.cgi?id=25847
commit: 91bb902f58264a2fd50fbce8f39a9a290dd23706
Upstream-Status: Submitted
[https://sourceware.org/pipermail/libc-stable/2025-July/002283.html]
Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
---
nptl/pthread_cond_broadcast.c | 4 ++--
nptl/pthread_cond_common.c | 26 ++++++++++----------------
nptl/pthread_cond_signal.c | 2 +-
nptl/pthread_cond_wait.c | 14 +++++---------
4 files changed, 18 insertions(+), 28 deletions(-)
diff --git a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
index a0743558..ef0943cd 100644
--- a/nptl/pthread_cond_broadcast.c
+++ b/nptl/pthread_cond_broadcast.c
@@ -57,7 +57,7 @@ ___pthread_cond_broadcast (pthread_cond_t *cond)
{
/* Add as many signals as the remaining size of the group. */
atomic_fetch_add_relaxed (cond->__data.__g_signals + g1,
- cond->__data.__g_size[g1] << 1);
+ cond->__data.__g_size[g1]);
cond->__data.__g_size[g1] = 0;
/* We need to wake G1 waiters before we switch G1 below. */
@@ -73,7 +73,7 @@ ___pthread_cond_broadcast (pthread_cond_t *cond)
{
/* Step (3): Send signals to all waiters in the old G2 / new G1. */
atomic_fetch_add_relaxed (cond->__data.__g_signals + g1,
- cond->__data.__g_size[g1] << 1);
+ cond->__data.__g_size[g1]);
cond->__data.__g_size[g1] = 0;
/* TODO Only set it if there are indeed futex waiters. */
do_futex_wake = true;
diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c
index 3baac4da..e48f9143 100644
--- a/nptl/pthread_cond_common.c
+++ b/nptl/pthread_cond_common.c
@@ -208,9 +208,9 @@ __condvar_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
behavior.
Note that this works correctly for a zero-initialized condvar too. */
unsigned int old_orig_size = __condvar_get_orig_size (cond);
- uint64_t old_g1_start = __condvar_load_g1_start_relaxed (cond) >> 1;
- if (((unsigned) (wseq - old_g1_start - old_orig_size)
- + cond->__data.__g_size[g1 ^ 1]) == 0)
+ uint64_t old_g1_start = __condvar_load_g1_start_relaxed (cond);
+ uint64_t new_g1_start = old_g1_start + old_orig_size;
+ if (((unsigned) (wseq - new_g1_start) + cond->__data.__g_size[g1 ^ 1]) == 0)
return false;
/* We have to consider the following kinds of waiters:
@@ -221,16 +221,10 @@ __condvar_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
are not affected.
* Waiters in G1 have already received a signal and been woken. */
- /* Update __g1_start, which closes this group. The value we add will never
- be negative because old_orig_size can only be zero when we switch groups
- the first time after a condvar was initialized, in which case G1 will be
- at index 1 and we will add a value of 1. Relaxed MO is fine because the
- change comes with no additional constraints that others would have to
- observe. */
- __condvar_add_g1_start_relaxed (cond,
- (old_orig_size << 1) + (g1 == 1 ? 1 : - 1));
-
- unsigned int lowseq = ((old_g1_start + old_orig_size) << 1) & ~1U;
+ /* Update __g1_start, which closes this group. Relaxed MO is fine because
+ the change comes with no additional constraints that others would have
+ to observe. */
+ __condvar_add_g1_start_relaxed (cond, old_orig_size);
/* At this point, the old G1 is now a valid new G2 (but not in use yet).
No old waiter can neither grab a signal nor acquire a reference without
@@ -242,13 +236,13 @@ __condvar_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
g1 ^= 1;
*g1index ^= 1;
- /* Now advance the new G1 g_signals to the new lowseq, giving it
+ /* Now advance the new G1 g_signals to the new g1_start, giving it
an effective signal count of 0 to start. */
- atomic_store_release (cond->__data.__g_signals + g1, lowseq);
+ atomic_store_release (cond->__data.__g_signals + g1, (unsigned)new_g1_start);
/* These values are just observed by signalers, and thus protected by the
lock. */
- unsigned int orig_size = wseq - (old_g1_start + old_orig_size);
+ unsigned int orig_size = wseq - new_g1_start;
__condvar_set_orig_size (cond, orig_size);
/* Use and addition to not loose track of cancellations in what was
previously G2. */
diff --git a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
index a9bc10dc..07427369 100644
--- a/nptl/pthread_cond_signal.c
+++ b/nptl/pthread_cond_signal.c
@@ -80,7 +80,7 @@ ___pthread_cond_signal (pthread_cond_t *cond)
release-MO store when initializing a group in __condvar_switch_g1
because we use an atomic read-modify-write and thus extend that
store's release sequence. */
- atomic_fetch_add_relaxed (cond->__data.__g_signals + g1, 2);
+ atomic_fetch_add_relaxed (cond->__data.__g_signals + g1, 1);
cond->__data.__g_size[g1]--;
/* TODO Only set it if there are indeed futex waiters. */
do_futex_wake = true;
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
index 40a74342..d7e073ab 100644
--- a/nptl/pthread_cond_wait.c
+++ b/nptl/pthread_cond_wait.c
@@ -84,7 +84,7 @@ __condvar_cancel_waiting (pthread_cond_t *cond, uint64_t seq, unsigned int g,
not hold a reference on the group. */
__condvar_acquire_lock (cond, private);
- uint64_t g1_start = __condvar_load_g1_start_relaxed (cond) >> 1;
+ uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
if (g1_start > seq)
{
/* Our group is closed, so someone provided enough signals for it.
@@ -259,7 +259,6 @@ __condvar_cleanup_waiting (void *arg)
* Waiters fetch-add while having acquire the mutex associated with the
condvar. Signalers load it and fetch-xor it concurrently.
__g1_start: Starting position of G1 (inclusive)
- * LSB is index of current G2.
* Modified by signalers while having acquired the condvar-internal lock
and observed concurrently by waiters.
__g1_orig_size: Initial size of G1
@@ -280,11 +279,9 @@ __condvar_cleanup_waiting (void *arg)
* Reference count used by waiters concurrently with signalers that have
acquired the condvar-internal lock.
__g_signals: The number of signals that can still be consumed, relative to
- the current g1_start. (i.e. bits 31 to 1 of __g_signals are bits
- 31 to 1 of g1_start with the signal count added)
+ the current g1_start. (i.e. g1_start with the signal count added)
* Used as a futex word by waiters. Used concurrently by waiters and
signalers.
- * LSB is currently reserved and 0.
__g_size: Waiters remaining in this group (i.e., which have not been
signaled yet.
* Accessed by signalers and waiters that cancel waiting (both do so only
@@ -391,9 +388,8 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
too. */
unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
- unsigned int lowseq = (g1_start & 1) == g ? signals : g1_start & ~1U;
- if (seq < (g1_start >> 1))
+ if (seq < g1_start)
{
/* If the group is closed already,
then this waiter originally had enough extra signals to
@@ -406,13 +402,13 @@ __pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
by now, perhaps in the process of switching back to an older
G2, but in either case we're allowed to consume the available
signal and should not block anymore. */
- if ((int)(signals - lowseq) >= 2)
+ if ((int)(signals - (unsigned int)g1_start) > 0)
{
/* Try to grab a signal. See above for MO. (if we do another loop
iteration we need to see the correct value of g1_start) */
if (atomic_compare_exchange_weak_acquire (
cond->__data.__g_signals + g,
- &signals, signals - 2))
+ &signals, signals - 1))
break;
else
continue;
--
2.49.0

View File

@@ -70,6 +70,8 @@ SRC_URI = "${GLIBC_GIT_URI};branch=${SRCBRANCH};name=glibc \
file://0026-PR25847-6.patch \
file://0026-PR25847-7.patch \
file://0026-PR25847-8.patch \
file://0026-PR25847-9.patch \
file://0026-PR25847-10.patch \
\
file://0001-Revert-Linux-Implement-a-useful-version-of-_startup_.patch \
file://0002-get_nscd_addresses-Fix-subscript-typos-BZ-29605.patch \

View File

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

View File

@@ -0,0 +1,802 @@
From 87786d6200ae1f5ac98d21f04d451e17ff25a216 Mon Sep 17 00:00:00 2001
From: David Kilzer <ddkilzer@apple.com>
Reviewed-By: Aron Xu <aron@debian.org>
Date: Mon, 23 Jun 2025 14:41:56 -0700
Subject: [PATCH] libxslt: heap-use-after-free in xmlFreeID caused by `atype`
corruption
* include/libxml/tree.h:
(XML_ATTR_CLEAR_ATYPE): Add.
(XML_ATTR_GET_ATYPE): Add.
(XML_ATTR_SET_ATYPE): Add.
(XML_NODE_ADD_EXTRA): Add.
(XML_NODE_CLEAR_EXTRA): Add.
(XML_NODE_GET_EXTRA): Add.
(XML_NODE_SET_EXTRA): Add.
(XML_DOC_ADD_PROPERTIES): Add.
(XML_DOC_CLEAR_PROPERTIES): Add.
(XML_DOC_GET_PROPERTIES): Add.
(XML_DOC_SET_PROPERTIES): Add.
- Add macros for accessing fields with upper bits that may be set by
libxslt.
* HTMLparser.c:
(htmlNewDocNoDtD):
* SAX2.c:
(xmlSAX2StartDocument):
(xmlSAX2EndDocument):
* parser.c:
(xmlParseEntityDecl):
(xmlParseExternalSubset):
(xmlParseReference):
(xmlCtxtParseDtd):
* runxmlconf.c:
(xmlconfTestInvalid):
(xmlconfTestValid):
* tree.c:
(xmlNewDoc):
(xmlFreeProp):
(xmlNodeSetDoc):
(xmlSetNsProp):
(xmlDOMWrapAdoptBranch):
* valid.c:
(xmlFreeID):
(xmlAddIDInternal):
(xmlValidateAttributeValueInternal):
(xmlValidateOneAttribute):
(xmlValidateRef):
* xmlreader.c:
(xmlTextReaderStartElement):
(xmlTextReaderStartElementNs):
(xmlTextReaderValidateEntity):
(xmlTextReaderRead):
(xmlTextReaderNext):
(xmlTextReaderIsEmptyElement):
(xmlTextReaderPreserve):
* xmlschemas.c:
(xmlSchemaPValAttrNodeID):
* xmlschemastypes.c:
(xmlSchemaValAtomicType):
- Adopt macros by renaming the struct fields, recompiling and fixing
compiler failures, then changing the struct field names back.
Origin: https://launchpad.net/ubuntu/+source/libxml2/2.9.14+dfsg-1.3ubuntu3.6
Ref : https://security-tracker.debian.org/tracker/CVE-2025-7425
CVE: CVE-2025-7425
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxslt/-/issues/140]
Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
---
HTMLparser.c | 1 +
SAX2.c | 6 ++--
include/libxml/tree.h | 14 ++++++++-
parser.c | 8 ++---
runxmlconf.c | 4 +--
tree.c | 20 ++++++-------
valid.c | 68 +++++++++++++++++++++----------------------
xmlreader.c | 30 +++++++++----------
xmlschemas.c | 4 +--
xmlschemastypes.c | 12 ++++----
10 files changed, 90 insertions(+), 77 deletions(-)
diff --git a/HTMLparser.c b/HTMLparser.c
index e720bb2..1307f71 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -2514,6 +2514,7 @@ htmlNewDocNoDtD(const xmlChar *URI, const xmlChar *ExternalID) {
cur->refs = NULL;
cur->_private = NULL;
cur->charset = XML_CHAR_ENCODING_UTF8;
+ XML_DOC_SET_PROPERTIES(cur, XML_DOC_HTML | XML_DOC_USERBUILT);
cur->properties = XML_DOC_HTML | XML_DOC_USERBUILT;
if ((ExternalID != NULL) ||
(URI != NULL))
diff --git a/SAX2.c b/SAX2.c
index f7c77c2..0d8e84a 100644
--- a/SAX2.c
+++ b/SAX2.c
@@ -970,7 +970,7 @@ xmlSAX2StartDocument(void *ctx)
xmlSAX2ErrMemory(ctxt, "xmlSAX2StartDocument");
return;
}
- ctxt->myDoc->properties = XML_DOC_HTML;
+ XML_DOC_SET_PROPERTIES(ctxt->myDoc, XML_DOC_HTML);
ctxt->myDoc->parseFlags = ctxt->options;
#else
xmlGenericError(xmlGenericErrorContext,
@@ -983,9 +983,9 @@ xmlSAX2StartDocument(void *ctx)
} else {
doc = ctxt->myDoc = xmlNewDoc(ctxt->version);
if (doc != NULL) {
- doc->properties = 0;
+ XML_DOC_CLEAR_PROPERTIES(doc);
if (ctxt->options & XML_PARSE_OLD10)
- doc->properties |= XML_DOC_OLD10;
+ XML_DOC_ADD_PROPERTIES(doc, XML_DOC_OLD10);
doc->parseFlags = ctxt->options;
if (ctxt->encoding != NULL)
doc->encoding = xmlStrdup(ctxt->encoding);
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index 1e79be9..61178b2 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -365,7 +365,6 @@ struct _xmlElement {
#endif
};
-
/**
* XML_LOCAL_NAMESPACE:
*
@@ -446,6 +445,10 @@ struct _xmlAttr {
void *psvi; /* for type/PSVI information */
};
+#define XML_ATTR_CLEAR_ATYPE(attr) (((attr)->atype) = 0)
+#define XML_ATTR_GET_ATYPE(attr) (((attr)->atype) & ~(15U << 27))
+#define XML_ATTR_SET_ATYPE(attr, type) ((attr)->atype = ((((attr)->atype) & (15U << 27)) | ((type) & ~(15U << 27))))
+
/**
* xmlID:
*
@@ -507,6 +510,11 @@ struct _xmlNode {
unsigned short extra; /* extra data for XPath/XSLT */
};
+#define XML_NODE_ADD_EXTRA(node, type) ((node)->extra |= ((type) & ~(15U << 12)))
+#define XML_NODE_CLEAR_EXTRA(node) (((node)->extra) = 0)
+#define XML_NODE_GET_EXTRA(node) (((node)->extra) & ~(15U << 12))
+#define XML_NODE_SET_EXTRA(node, type) ((node)->extra = ((((node)->extra) & (15U << 12)) | ((type) & ~(15U << 12))))
+
/**
* XML_GET_CONTENT:
*
@@ -585,6 +593,10 @@ struct _xmlDoc {
set at the end of parsing */
};
+#define XML_DOC_ADD_PROPERTIES(doc, type) ((doc)->properties |= ((type) & ~(15U << 27)))
+#define XML_DOC_CLEAR_PROPERTIES(doc) (((doc)->properties) = 0)
+#define XML_DOC_GET_PROPERTIES(doc) (((doc)->properties) & ~(15U << 27))
+#define XML_DOC_SET_PROPERTIES(doc, type) ((doc)->properties = ((((doc)->properties) & (15U << 27)) | ((type) & ~(15U << 27))))
typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
diff --git a/parser.c b/parser.c
index 738dbee..772d883 100644
--- a/parser.c
+++ b/parser.c
@@ -5523,7 +5523,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) {
xmlErrMemory(ctxt, "New Doc failed");
return;
}
- ctxt->myDoc->properties = XML_DOC_INTERNAL;
+ XML_DOC_SET_PROPERTIES(ctxt->myDoc, XML_DOC_INTERNAL);
}
if (ctxt->myDoc->intSubset == NULL)
ctxt->myDoc->intSubset = xmlNewDtd(ctxt->myDoc,
@@ -5594,7 +5594,7 @@ xmlParseEntityDecl(xmlParserCtxtPtr ctxt) {
xmlErrMemory(ctxt, "New Doc failed");
return;
}
- ctxt->myDoc->properties = XML_DOC_INTERNAL;
+ XML_DOC_SET_PROPERTIES(ctxt->myDoc, XML_DOC_INTERNAL);
}
if (ctxt->myDoc->intSubset == NULL)
@@ -7035,7 +7035,7 @@ xmlParseExternalSubset(xmlParserCtxtPtr ctxt, const xmlChar *ExternalID,
xmlErrMemory(ctxt, "New Doc failed");
return;
}
- ctxt->myDoc->properties = XML_DOC_INTERNAL;
+ XML_DOC_SET_PROPERTIES(ctxt->myDoc, XML_DOC_INTERNAL);
}
if ((ctxt->myDoc != NULL) && (ctxt->myDoc->intSubset == NULL))
xmlCreateIntSubset(ctxt->myDoc, NULL, ExternalID, SystemID);
@@ -7419,7 +7419,7 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
(nw != NULL) &&
(nw->type == XML_ELEMENT_NODE) &&
(nw->children == NULL))
- nw->extra = 1;
+ XML_NODE_SET_EXTRA(nw, 1);
break;
}
diff --git a/runxmlconf.c b/runxmlconf.c
index f43fdd3..82b7241 100644
--- a/runxmlconf.c
+++ b/runxmlconf.c
@@ -197,7 +197,7 @@ xmlconfTestInvalid(const char *id, const char *filename, int options) {
id, filename);
} else {
/* invalidity should be reported both in the context and in the document */
- if ((ctxt->valid != 0) || (doc->properties & XML_DOC_DTDVALID)) {
+ if ((ctxt->valid != 0) || (XML_DOC_GET_PROPERTIES(doc) & XML_DOC_DTDVALID)) {
test_log("test %s : %s failed to detect invalid document\n",
id, filename);
nb_errors++;
@@ -229,7 +229,7 @@ xmlconfTestValid(const char *id, const char *filename, int options) {
ret = 0;
} else {
/* validity should be reported both in the context and in the document */
- if ((ctxt->valid == 0) || ((doc->properties & XML_DOC_DTDVALID) == 0)) {
+ if ((ctxt->valid == 0) || ((XML_DOC_GET_PROPERTIES(doc) & XML_DOC_DTDVALID) == 0)) {
test_log("test %s : %s failed to validate a valid document\n",
id, filename);
nb_errors++;
diff --git a/tree.c b/tree.c
index cdf863c..3bac0b8 100644
--- a/tree.c
+++ b/tree.c
@@ -1192,7 +1192,7 @@ xmlNewDoc(const xmlChar *version) {
cur->compression = -1; /* not initialized */
cur->doc = cur;
cur->parseFlags = 0;
- cur->properties = XML_DOC_USERBUILT;
+ XML_DOC_SET_PROPERTIES(cur, XML_DOC_USERBUILT);
/*
* The in memory encoding is always UTF8
* This field will never change and would
@@ -2119,7 +2119,7 @@ xmlFreeProp(xmlAttrPtr cur) {
xmlDeregisterNodeDefaultValue((xmlNodePtr)cur);
/* Check for ID removal -> leading to invalid references ! */
- if ((cur->doc != NULL) && (cur->atype == XML_ATTRIBUTE_ID)) {
+ if ((cur->doc != NULL) && (XML_ATTR_GET_ATYPE(cur) == XML_ATTRIBUTE_ID)) {
xmlRemoveID(cur->doc, cur);
}
if (cur->children != NULL) xmlFreeNodeList(cur->children);
@@ -2838,7 +2838,7 @@ xmlSetTreeDoc(xmlNodePtr tree, xmlDocPtr doc) {
if(tree->type == XML_ELEMENT_NODE) {
prop = tree->properties;
while (prop != NULL) {
- if (prop->atype == XML_ATTRIBUTE_ID) {
+ if (XML_ATTR_GET_ATYPE(prop) == XML_ATTRIBUTE_ID) {
xmlRemoveID(tree->doc, prop);
}
@@ -6953,9 +6953,9 @@ xmlSetNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name,
/*
* Modify the attribute's value.
*/
- if (prop->atype == XML_ATTRIBUTE_ID) {
+ if (XML_ATTR_GET_ATYPE(prop) == XML_ATTRIBUTE_ID) {
xmlRemoveID(node->doc, prop);
- prop->atype = XML_ATTRIBUTE_ID;
+ XML_ATTR_SET_ATYPE(prop, XML_ATTRIBUTE_ID);
}
if (prop->children != NULL)
xmlFreeNodeList(prop->children);
@@ -6975,7 +6975,7 @@ xmlSetNsProp(xmlNodePtr node, xmlNsPtr ns, const xmlChar *name,
tmp = tmp->next;
}
}
- if (prop->atype == XML_ATTRIBUTE_ID)
+ if (XML_ATTR_GET_ATYPE(prop) == XML_ATTRIBUTE_ID)
xmlAddID(NULL, node->doc, value, prop);
return(prop);
}
@@ -9252,7 +9252,7 @@ ns_end:
if (cur->type == XML_ELEMENT_NODE) {
cur->psvi = NULL;
cur->line = 0;
- cur->extra = 0;
+ XML_NODE_CLEAR_EXTRA(cur);
/*
* Walk attributes.
*/
@@ -9268,11 +9268,11 @@ ns_end:
* Attributes.
*/
if ((sourceDoc != NULL) &&
- (((xmlAttrPtr) cur)->atype == XML_ATTRIBUTE_ID))
+ (XML_ATTR_GET_ATYPE((xmlAttrPtr) cur) == XML_ATTRIBUTE_ID))
{
xmlRemoveID(sourceDoc, (xmlAttrPtr) cur);
}
- ((xmlAttrPtr) cur)->atype = 0;
+ XML_ATTR_CLEAR_ATYPE((xmlAttrPtr) cur);
((xmlAttrPtr) cur)->psvi = NULL;
}
break;
@@ -9992,7 +9992,7 @@ xmlDOMWrapAdoptAttr(xmlDOMWrapCtxtPtr ctxt,
}
XML_TREE_ADOPT_STR(attr->name);
- attr->atype = 0;
+ XML_ATTR_CLEAR_ATYPE(attr);
attr->psvi = NULL;
/*
* Walk content.
diff --git a/valid.c b/valid.c
index 36a0435..8e76cfa 100644
--- a/valid.c
+++ b/valid.c
@@ -1906,7 +1906,7 @@ xmlScanIDAttributeDecl(xmlValidCtxtPtr ctxt, xmlElementPtr elem, int err) {
if (elem == NULL) return(0);
cur = elem->attributes;
while (cur != NULL) {
- if (cur->atype == XML_ATTRIBUTE_ID) {
+ if (XML_ATTR_GET_ATYPE(cur) == XML_ATTRIBUTE_ID) {
ret ++;
if ((ret > 1) && (err))
xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_MULTIPLE_ID,
@@ -2279,7 +2279,7 @@ xmlDumpAttributeDecl(xmlBufferPtr buf, xmlAttributePtr attr) {
xmlBufferWriteChar(buf, ":");
}
xmlBufferWriteCHAR(buf, attr->name);
- switch (attr->atype) {
+ switch (XML_ATTR_GET_ATYPE(attr)) {
case XML_ATTRIBUTE_CDATA:
xmlBufferWriteChar(buf, " CDATA");
break;
@@ -2758,7 +2758,7 @@ xmlAddID(xmlValidCtxtPtr ctxt, xmlDocPtr doc, const xmlChar *value,
return(NULL);
}
if (attr != NULL)
- attr->atype = XML_ATTRIBUTE_ID;
+ XML_ATTR_SET_ATYPE(attr, XML_ATTRIBUTE_ID);
return(ret);
}
@@ -2837,7 +2837,7 @@ xmlIsID(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) {
if ((fullelemname != felem) && (fullelemname != elem->name))
xmlFree(fullelemname);
- if ((attrDecl != NULL) && (attrDecl->atype == XML_ATTRIBUTE_ID))
+ if ((attrDecl != NULL) && (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_ID))
return(1);
}
return(0);
@@ -2878,7 +2878,7 @@ xmlRemoveID(xmlDocPtr doc, xmlAttrPtr attr) {
xmlHashRemoveEntry(table, ID, xmlFreeIDTableEntry);
xmlFree(ID);
- attr->atype = 0;
+ XML_ATTR_CLEAR_ATYPE(attr);
return(0);
}
@@ -3157,8 +3157,8 @@ xmlIsRef(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) {
elem->name, attr->name);
if ((attrDecl != NULL) &&
- (attrDecl->atype == XML_ATTRIBUTE_IDREF ||
- attrDecl->atype == XML_ATTRIBUTE_IDREFS))
+ (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_IDREF ||
+ XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_IDREFS))
return(1);
}
return(0);
@@ -3532,7 +3532,7 @@ xmlIsMixedElement(xmlDocPtr doc, const xmlChar *name) {
static int
xmlIsDocNameStartChar(xmlDocPtr doc, int c) {
- if ((doc == NULL) || (doc->properties & XML_DOC_OLD10) == 0) {
+ if ((doc == NULL) || (XML_DOC_GET_PROPERTIES(doc) & XML_DOC_OLD10) == 0) {
/*
* Use the new checks of production [4] [4a] amd [5] of the
* Update 5 of XML-1.0
@@ -3562,7 +3562,7 @@ xmlIsDocNameStartChar(xmlDocPtr doc, int c) {
static int
xmlIsDocNameChar(xmlDocPtr doc, int c) {
- if ((doc == NULL) || (doc->properties & XML_DOC_OLD10) == 0) {
+ if ((doc == NULL) || (XML_DOC_GET_PROPERTIES(doc) & XML_DOC_OLD10) == 0) {
/*
* Use the new checks of production [4] [4a] amd [5] of the
* Update 5 of XML-1.0
@@ -4112,7 +4112,7 @@ xmlValidCtxtNormalizeAttributeValue(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
if (attrDecl == NULL)
return(NULL);
- if (attrDecl->atype == XML_ATTRIBUTE_CDATA)
+ if (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_CDATA)
return(NULL);
ret = xmlStrdup(value);
@@ -4174,7 +4174,7 @@ xmlValidNormalizeAttributeValue(xmlDocPtr doc, xmlNodePtr elem,
if (attrDecl == NULL)
return(NULL);
- if (attrDecl->atype == XML_ATTRIBUTE_CDATA)
+ if (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_CDATA)
return(NULL);
ret = xmlStrdup(value);
@@ -4189,7 +4189,7 @@ xmlValidateAttributeIdCallback(void *payload, void *data,
const xmlChar *name ATTRIBUTE_UNUSED) {
xmlAttributePtr attr = (xmlAttributePtr) payload;
int *count = (int *) data;
- if (attr->atype == XML_ATTRIBUTE_ID) (*count)++;
+ if (XML_ATTR_GET_ATYPE(attr) == XML_ATTRIBUTE_ID) (*count)++;
}
/**
@@ -4221,7 +4221,7 @@ xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
/* Attribute Default Legal */
/* Enumeration */
if (attr->defaultValue != NULL) {
- val = xmlValidateAttributeValueInternal(doc, attr->atype,
+ val = xmlValidateAttributeValueInternal(doc, XML_ATTR_GET_ATYPE(attr),
attr->defaultValue);
if (val == 0) {
xmlErrValidNode(ctxt, (xmlNodePtr) attr, XML_DTD_ATTRIBUTE_DEFAULT,
@@ -4232,7 +4232,7 @@ xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
}
/* ID Attribute Default */
- if ((attr->atype == XML_ATTRIBUTE_ID)&&
+ if ((XML_ATTR_GET_ATYPE(attr) == XML_ATTRIBUTE_ID)&&
(attr->def != XML_ATTRIBUTE_IMPLIED) &&
(attr->def != XML_ATTRIBUTE_REQUIRED)) {
xmlErrValidNode(ctxt, (xmlNodePtr) attr, XML_DTD_ID_FIXED,
@@ -4242,7 +4242,7 @@ xmlValidateAttributeDecl(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
}
/* One ID per Element Type */
- if (attr->atype == XML_ATTRIBUTE_ID) {
+ if (XML_ATTR_GET_ATYPE(attr) == XML_ATTRIBUTE_ID) {
int nbId;
/* the trick is that we parse DtD as their own internal subset */
@@ -4501,9 +4501,9 @@ xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
attr->name, elem->name, NULL);
return(0);
}
- attr->atype = attrDecl->atype;
+ XML_ATTR_SET_ATYPE(attr, attrDecl->atype);
- val = xmlValidateAttributeValueInternal(doc, attrDecl->atype, value);
+ val = xmlValidateAttributeValueInternal(doc, XML_ATTR_GET_ATYPE(attrDecl), value);
if (val == 0) {
xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
"Syntax of value for attribute %s of %s is not valid\n",
@@ -4522,19 +4522,19 @@ xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
}
/* Validity Constraint: ID uniqueness */
- if (attrDecl->atype == XML_ATTRIBUTE_ID) {
+ if (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_ID) {
if (xmlAddID(ctxt, doc, value, attr) == NULL)
ret = 0;
}
- if ((attrDecl->atype == XML_ATTRIBUTE_IDREF) ||
- (attrDecl->atype == XML_ATTRIBUTE_IDREFS)) {
+ if ((XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_IDREF) ||
+ (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_IDREFS)) {
if (xmlAddRef(ctxt, doc, value, attr) == NULL)
ret = 0;
}
/* Validity Constraint: Notation Attributes */
- if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) {
+ if (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_NOTATION) {
xmlEnumerationPtr tree = attrDecl->tree;
xmlNotationPtr nota;
@@ -4564,7 +4564,7 @@ xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
}
/* Validity Constraint: Enumeration */
- if (attrDecl->atype == XML_ATTRIBUTE_ENUMERATION) {
+ if (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_ENUMERATION) {
xmlEnumerationPtr tree = attrDecl->tree;
while (tree != NULL) {
if (xmlStrEqual(tree->name, value)) break;
@@ -4589,7 +4589,7 @@ xmlValidateOneAttribute(xmlValidCtxtPtr ctxt, xmlDocPtr doc,
/* Extra check for the attribute value */
ret &= xmlValidateAttributeValue2(ctxt, doc, attr->name,
- attrDecl->atype, value);
+ XML_ATTR_GET_ATYPE(attrDecl), value);
return(ret);
}
@@ -4688,7 +4688,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
return(0);
}
- val = xmlValidateAttributeValueInternal(doc, attrDecl->atype, value);
+ val = xmlValidateAttributeValueInternal(doc, XML_ATTR_GET_ATYPE(attrDecl), value);
if (val == 0) {
if (ns->prefix != NULL) {
xmlErrValidNode(ctxt, elem, XML_DTD_INVALID_DEFAULT,
@@ -4738,7 +4738,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
#endif
/* Validity Constraint: Notation Attributes */
- if (attrDecl->atype == XML_ATTRIBUTE_NOTATION) {
+ if (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_NOTATION) {
xmlEnumerationPtr tree = attrDecl->tree;
xmlNotationPtr nota;
@@ -4780,7 +4780,7 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
}
/* Validity Constraint: Enumeration */
- if (attrDecl->atype == XML_ATTRIBUTE_ENUMERATION) {
+ if (XML_ATTR_GET_ATYPE(attrDecl) == XML_ATTRIBUTE_ENUMERATION) {
xmlEnumerationPtr tree = attrDecl->tree;
while (tree != NULL) {
if (xmlStrEqual(tree->name, value)) break;
@@ -4818,10 +4818,10 @@ xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
/* Extra check for the attribute value */
if (ns->prefix != NULL) {
ret &= xmlValidateAttributeValue2(ctxt, doc, ns->prefix,
- attrDecl->atype, value);
+ XML_ATTR_GET_ATYPE(attrDecl), value);
} else {
ret &= xmlValidateAttributeValue2(ctxt, doc, BAD_CAST "xmlns",
- attrDecl->atype, value);
+ XML_ATTR_GET_ATYPE(attrDecl), value);
}
return(ret);
@@ -6574,7 +6574,7 @@ xmlValidateRef(xmlRefPtr ref, xmlValidCtxtPtr ctxt,
while (IS_BLANK_CH(*cur)) cur++;
}
xmlFree(dup);
- } else if (attr->atype == XML_ATTRIBUTE_IDREF) {
+ } else if (XML_ATTR_GET_ATYPE(attr) == XML_ATTRIBUTE_IDREF) {
id = xmlGetID(ctxt->doc, name);
if (id == NULL) {
xmlErrValidNode(ctxt, attr->parent, XML_DTD_UNKNOWN_ID,
@@ -6582,7 +6582,7 @@ xmlValidateRef(xmlRefPtr ref, xmlValidCtxtPtr ctxt,
attr->name, name, NULL);
ctxt->valid = 0;
}
- } else if (attr->atype == XML_ATTRIBUTE_IDREFS) {
+ } else if (XML_ATTR_GET_ATYPE(attr) == XML_ATTRIBUTE_IDREFS) {
xmlChar *dup, *str = NULL, *cur, save;
dup = xmlStrdup(name);
@@ -6782,7 +6782,7 @@ xmlValidateAttributeCallback(void *payload, void *data,
if (cur == NULL)
return;
- switch (cur->atype) {
+ switch (XML_ATTR_GET_ATYPE(cur)) {
case XML_ATTRIBUTE_CDATA:
case XML_ATTRIBUTE_ID:
case XML_ATTRIBUTE_IDREF :
@@ -6797,7 +6797,7 @@ xmlValidateAttributeCallback(void *payload, void *data,
if (cur->defaultValue != NULL) {
ret = xmlValidateAttributeValue2(ctxt, ctxt->doc, cur->name,
- cur->atype, cur->defaultValue);
+ XML_ATTR_GET_ATYPE(cur), cur->defaultValue);
if ((ret == 0) && (ctxt->valid == 1))
ctxt->valid = 0;
}
@@ -6805,14 +6805,14 @@ xmlValidateAttributeCallback(void *payload, void *data,
xmlEnumerationPtr tree = cur->tree;
while (tree != NULL) {
ret = xmlValidateAttributeValue2(ctxt, ctxt->doc,
- cur->name, cur->atype, tree->name);
+ cur->name, XML_ATTR_GET_ATYPE(cur), tree->name);
if ((ret == 0) && (ctxt->valid == 1))
ctxt->valid = 0;
tree = tree->next;
}
}
}
- if (cur->atype == XML_ATTRIBUTE_NOTATION) {
+ if (XML_ATTR_GET_ATYPE(cur) == XML_ATTRIBUTE_NOTATION) {
doc = cur->doc;
if (cur->elem == NULL) {
xmlErrValid(ctxt, XML_ERR_INTERNAL_ERROR,
diff --git a/xmlreader.c b/xmlreader.c
index 67ff2cd..2a1a66a 100644
--- a/xmlreader.c
+++ b/xmlreader.c
@@ -753,7 +753,7 @@ xmlTextReaderStartElement(void *ctx, const xmlChar *fullname,
if ((ctxt->node != NULL) && (ctxt->input != NULL) &&
(ctxt->input->cur != NULL) && (ctxt->input->cur[0] == '/') &&
(ctxt->input->cur[1] == '>'))
- ctxt->node->extra = NODE_IS_EMPTY;
+ XML_NODE_SET_EXTRA(ctxt->node, NODE_IS_EMPTY);
}
if (reader != NULL)
reader->state = XML_TEXTREADER_ELEMENT;
@@ -818,7 +818,7 @@ xmlTextReaderStartElementNs(void *ctx,
if ((ctxt->node != NULL) && (ctxt->input != NULL) &&
(ctxt->input->cur != NULL) && (ctxt->input->cur[0] == '/') &&
(ctxt->input->cur[1] == '>'))
- ctxt->node->extra = NODE_IS_EMPTY;
+ XML_NODE_SET_EXTRA(ctxt->node, NODE_IS_EMPTY);
}
if (reader != NULL)
reader->state = XML_TEXTREADER_ELEMENT;
@@ -1216,7 +1216,7 @@ skip_children:
xmlNodePtr tmp;
if (reader->entNr == 0) {
while ((tmp = node->last) != NULL) {
- if ((tmp->extra & NODE_IS_PRESERVED) == 0) {
+ if ((XML_NODE_GET_EXTRA(tmp) & NODE_IS_PRESERVED) == 0) {
xmlUnlinkNode(tmp);
xmlTextReaderFreeNode(reader, tmp);
} else
@@ -1467,7 +1467,7 @@ get_next_node:
if ((oldstate == XML_TEXTREADER_ELEMENT) &&
(reader->node->type == XML_ELEMENT_NODE) &&
(reader->node->children == NULL) &&
- ((reader->node->extra & NODE_IS_EMPTY) == 0)
+ ((XML_NODE_GET_EXTRA(reader->node) & NODE_IS_EMPTY) == 0)
#ifdef LIBXML_XINCLUDE_ENABLED
&& (reader->in_xinclude <= 0)
#endif
@@ -1481,7 +1481,7 @@ get_next_node:
xmlTextReaderValidatePop(reader);
#endif /* LIBXML_REGEXP_ENABLED */
if ((reader->preserves > 0) &&
- (reader->node->extra & NODE_IS_SPRESERVED))
+ (XML_NODE_GET_EXTRA(reader->node) & NODE_IS_SPRESERVED))
reader->preserves--;
reader->node = reader->node->next;
reader->state = XML_TEXTREADER_ELEMENT;
@@ -1497,7 +1497,7 @@ get_next_node:
(reader->node->prev != NULL) &&
(reader->node->prev->type != XML_DTD_NODE)) {
xmlNodePtr tmp = reader->node->prev;
- if ((tmp->extra & NODE_IS_PRESERVED) == 0) {
+ if ((XML_NODE_GET_EXTRA(tmp) & NODE_IS_PRESERVED) == 0) {
if (oldnode == tmp)
oldnode = NULL;
xmlUnlinkNode(tmp);
@@ -1510,7 +1510,7 @@ get_next_node:
if ((oldstate == XML_TEXTREADER_ELEMENT) &&
(reader->node->type == XML_ELEMENT_NODE) &&
(reader->node->children == NULL) &&
- ((reader->node->extra & NODE_IS_EMPTY) == 0)) {;
+ ((XML_NODE_GET_EXTRA(reader->node) & NODE_IS_EMPTY) == 0)) {;
reader->state = XML_TEXTREADER_END;
goto node_found;
}
@@ -1519,7 +1519,7 @@ get_next_node:
xmlTextReaderValidatePop(reader);
#endif /* LIBXML_REGEXP_ENABLED */
if ((reader->preserves > 0) &&
- (reader->node->extra & NODE_IS_SPRESERVED))
+ (XML_NODE_GET_EXTRA(reader->node) & NODE_IS_SPRESERVED))
reader->preserves--;
reader->node = reader->node->parent;
if ((reader->node == NULL) ||
@@ -1546,7 +1546,7 @@ get_next_node:
#endif
(reader->entNr == 0) &&
(oldnode->type != XML_DTD_NODE) &&
- ((oldnode->extra & NODE_IS_PRESERVED) == 0)) {
+ ((XML_NODE_GET_EXTRA(oldnode) & NODE_IS_PRESERVED) == 0)) {
xmlUnlinkNode(oldnode);
xmlTextReaderFreeNode(reader, oldnode);
}
@@ -1559,7 +1559,7 @@ get_next_node:
#endif
(reader->entNr == 0) &&
(reader->node->last != NULL) &&
- ((reader->node->last->extra & NODE_IS_PRESERVED) == 0)) {
+ ((XML_NODE_GET_EXTRA(reader->node->last) & NODE_IS_PRESERVED) == 0)) {
xmlNodePtr tmp = reader->node->last;
xmlUnlinkNode(tmp);
xmlTextReaderFreeNode(reader, tmp);
@@ -1741,7 +1741,7 @@ xmlTextReaderNext(xmlTextReaderPtr reader) {
return(xmlTextReaderRead(reader));
if (reader->state == XML_TEXTREADER_END || reader->state == XML_TEXTREADER_BACKTRACK)
return(xmlTextReaderRead(reader));
- if (cur->extra & NODE_IS_EMPTY)
+ if (XML_NODE_GET_EXTRA(cur) & NODE_IS_EMPTY)
return(xmlTextReaderRead(reader));
do {
ret = xmlTextReaderRead(reader);
@@ -3167,7 +3167,7 @@ xmlTextReaderIsEmptyElement(xmlTextReaderPtr reader) {
if (reader->in_xinclude > 0)
return(1);
#endif
- return((reader->node->extra & NODE_IS_EMPTY) != 0);
+ return((XML_NODE_GET_EXTRA(reader->node) & NODE_IS_EMPTY) != 0);
}
/**
@@ -4035,15 +4035,15 @@ xmlTextReaderPreserve(xmlTextReaderPtr reader) {
return(NULL);
if ((cur->type != XML_DOCUMENT_NODE) && (cur->type != XML_DTD_NODE)) {
- cur->extra |= NODE_IS_PRESERVED;
- cur->extra |= NODE_IS_SPRESERVED;
+ XML_NODE_ADD_EXTRA(cur, NODE_IS_PRESERVED);
+ XML_NODE_ADD_EXTRA(cur, NODE_IS_SPRESERVED);
}
reader->preserves++;
parent = cur->parent;;
while (parent != NULL) {
if (parent->type == XML_ELEMENT_NODE)
- parent->extra |= NODE_IS_PRESERVED;
+ XML_NODE_ADD_EXTRA(parent, NODE_IS_PRESERVED);
parent = parent->parent;
}
return(cur);
diff --git a/xmlschemas.c b/xmlschemas.c
index a2dd6cf..2e6c349 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -6024,7 +6024,7 @@ xmlSchemaPValAttrNodeID(xmlSchemaParserCtxtPtr ctxt, xmlAttrPtr attr)
/*
* NOTE: the IDness might have already be declared in the DTD
*/
- if (attr->atype != XML_ATTRIBUTE_ID) {
+ if (XML_ATTR_GET_ATYPE(attr) != XML_ATTRIBUTE_ID) {
xmlIDPtr res;
xmlChar *strip;
@@ -6047,7 +6047,7 @@ xmlSchemaPValAttrNodeID(xmlSchemaParserCtxtPtr ctxt, xmlAttrPtr attr)
NULL, NULL, "Duplicate value '%s' of simple "
"type 'xs:ID'", value, NULL);
} else
- attr->atype = XML_ATTRIBUTE_ID;
+ XML_ATTR_SET_ATYPE(attr, XML_ATTRIBUTE_ID);
}
} else if (ret > 0) {
ret = XML_SCHEMAP_S4S_ATTR_INVALID_VALUE;
diff --git a/xmlschemastypes.c b/xmlschemastypes.c
index af31be5..d40da49 100644
--- a/xmlschemastypes.c
+++ b/xmlschemastypes.c
@@ -2867,7 +2867,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
/*
* NOTE: the IDness might have already be declared in the DTD
*/
- if (attr->atype != XML_ATTRIBUTE_ID) {
+ if (XML_ATTR_GET_ATYPE(attr) != XML_ATTRIBUTE_ID) {
xmlIDPtr res;
xmlChar *strip;
@@ -2880,7 +2880,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
if (res == NULL) {
ret = 2;
} else {
- attr->atype = XML_ATTRIBUTE_ID;
+ XML_ATTR_SET_ATYPE(attr, XML_ATTRIBUTE_ID);
}
}
}
@@ -2905,7 +2905,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
xmlFree(strip);
} else
xmlAddRef(NULL, node->doc, value, attr);
- attr->atype = XML_ATTRIBUTE_IDREF;
+ XML_ATTR_SET_ATYPE(attr, XML_ATTRIBUTE_IDREF);
}
goto done;
case XML_SCHEMAS_IDREFS:
@@ -2919,7 +2919,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
(node->type == XML_ATTRIBUTE_NODE)) {
xmlAttrPtr attr = (xmlAttrPtr) node;
- attr->atype = XML_ATTRIBUTE_IDREFS;
+ XML_ATTR_SET_ATYPE(attr, XML_ATTRIBUTE_IDREFS);
}
goto done;
case XML_SCHEMAS_ENTITY:{
@@ -2950,7 +2950,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
(node->type == XML_ATTRIBUTE_NODE)) {
xmlAttrPtr attr = (xmlAttrPtr) node;
- attr->atype = XML_ATTRIBUTE_ENTITY;
+ XML_ATTR_SET_ATYPE(attr, XML_ATTRIBUTE_ENTITY);
}
goto done;
}
@@ -2967,7 +2967,7 @@ xmlSchemaValAtomicType(xmlSchemaTypePtr type, const xmlChar * value,
(node->type == XML_ATTRIBUTE_NODE)) {
xmlAttrPtr attr = (xmlAttrPtr) node;
- attr->atype = XML_ATTRIBUTE_ENTITIES;
+ XML_ATTR_SET_ATYPE(attr, XML_ATTRIBUTE_ENTITIES);
}
goto done;
case XML_SCHEMAS_NOTATION:{
--
2.50.1

View File

@@ -0,0 +1,117 @@
From 6ef8b9f05cc21d3fc28156fe5d1251834c29c7d7 Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer <wellnhofer@aevum.de>
Date: Thu, 28 Jul 2022 20:21:24 +0200
Subject: [PATCH] Make XPath depth check work with recursive invocations
EXSLT functions like dyn:map or dyn:evaluate invoke xmlXPathRunEval
recursively. Don't set depth to zero but keep and restore the original
value to avoid stack overflows when abusing these functions.
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/677a42645ef22b5a50741bad5facf9d8a8bc6d21]
CVE: CVE-2025-9714
Signed-off-by: Theo GAIGE <tgaige.opensource@witekio.com>
---
xpath.c | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/xpath.c b/xpath.c
index c2d845888..028471d53 100644
--- a/xpath.c
+++ b/xpath.c
@@ -13883,12 +13883,11 @@ static int
xmlXPathRunEval(xmlXPathParserContextPtr ctxt, int toBool)
{
xmlXPathCompExprPtr comp;
+ int oldDepth;
if ((ctxt == NULL) || (ctxt->comp == NULL))
return(-1);
- ctxt->context->depth = 0;
-
if (ctxt->valueTab == NULL) {
/* Allocate the value stack */
ctxt->valueTab = (xmlXPathObjectPtr *)
@@ -13942,11 +13941,13 @@ xmlXPathRunEval(xmlXPathParserContextPtr ctxt, int toBool)
"xmlXPathRunEval: last is less than zero\n");
return(-1);
}
+ oldDepth = ctxt->context->depth;
if (toBool)
return(xmlXPathCompOpEvalToBoolean(ctxt,
&comp->steps[comp->last], 0));
else
xmlXPathCompOpEval(ctxt, &comp->steps[comp->last]);
+ ctxt->context->depth = oldDepth;
return(0);
}
@@ -14217,6 +14218,7 @@ xmlXPathCompExprPtr
xmlXPathCtxtCompile(xmlXPathContextPtr ctxt, const xmlChar *str) {
xmlXPathParserContextPtr pctxt;
xmlXPathCompExprPtr comp;
+ int oldDepth = 0;
#ifdef XPATH_STREAMING
comp = xmlXPathTryStreamCompile(ctxt, str);
@@ -14230,8 +14232,10 @@ xmlXPathCtxtCompile(xmlXPathContextPtr ctxt, const xmlChar *str) {
if (pctxt == NULL)
return NULL;
if (ctxt != NULL)
- ctxt->depth = 0;
+ oldDepth = ctxt->depth;
xmlXPathCompileExpr(pctxt, 1);
+ if (ctxt != NULL)
+ ctxt->depth = oldDepth;
if( pctxt->error != XPATH_EXPRESSION_OK )
{
@@ -14252,8 +14256,10 @@ xmlXPathCtxtCompile(xmlXPathContextPtr ctxt, const xmlChar *str) {
comp = pctxt->comp;
if ((comp->nbStep > 1) && (comp->last >= 0)) {
if (ctxt != NULL)
- ctxt->depth = 0;
+ oldDepth = ctxt->depth;
xmlXPathOptimizeExpression(pctxt, &comp->steps[comp->last]);
+ if (ctxt != NULL)
+ ctxt->depth = oldDepth;
}
pctxt->comp = NULL;
}
@@ -14409,6 +14415,7 @@ xmlXPathEvalExpr(xmlXPathParserContextPtr ctxt) {
#ifdef XPATH_STREAMING
xmlXPathCompExprPtr comp;
#endif
+ int oldDepth = 0;
if (ctxt == NULL) return;
@@ -14422,8 +14429,10 @@ xmlXPathEvalExpr(xmlXPathParserContextPtr ctxt) {
#endif
{
if (ctxt->context != NULL)
- ctxt->context->depth = 0;
+ oldDepth = ctxt->context->depth;
xmlXPathCompileExpr(ctxt, 1);
+ if (ctxt->context != NULL)
+ ctxt->context->depth = oldDepth;
CHECK_ERROR;
/* Check for trailing characters. */
@@ -14432,9 +14441,11 @@ xmlXPathEvalExpr(xmlXPathParserContextPtr ctxt) {
if ((ctxt->comp->nbStep > 1) && (ctxt->comp->last >= 0)) {
if (ctxt->context != NULL)
- ctxt->context->depth = 0;
+ oldDepth = ctxt->context->depth;
xmlXPathOptimizeExpression(ctxt,
&ctxt->comp->steps[ctxt->comp->last]);
+ if (ctxt->context != NULL)
+ ctxt->context->depth = oldDepth;
}
}
--
2.43.0

View File

@@ -42,6 +42,8 @@ SRC_URI += "http://www.w3.org/XML/Test/xmlts20080827.tar;subdir=${BP};name=testt
file://CVE-2025-6021.patch \
file://CVE-2025-49794-CVE-2025-49796.patch \
file://CVE-2025-6170.patch \
file://CVE-2025-9714.patch \
file://CVE-2025-7425.patch \
"
SRC_URI[archive.sha256sum] = "60d74a257d1ccec0475e749cba2f21559e48139efba6ff28224357c7c798dfee"

View File

@@ -0,0 +1,39 @@
From 345d2a053c32f3443dbfdd313f49346ce30b92f8 Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Wed, 19 Nov 2025 13:23:38 +0100
Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder
as a result of incorrect bounds checking on the lead byte being
decoded, certain invalid inputs which should produce an encoding
error, such as "\xc8\x41", instead produced out-of-bounds loads from
the ksc table.
in a worst case, the loaded value may not be a valid unicode scalar
value, in which case, if the output encoding was UTF-8, wctomb would
return (size_t)-1, causing an overflow in the output pointer and
remaining buffer size which could clobber memory outside of the output
buffer.
bug report was submitted in private by Nick Wellnhofer on account of
potential security implications.
CVE: CVE-2025-26519
Upstream-Status: Backport [https://git.musl-libc.org/cgit/musl/commit/?id=e5adcd97b5196e29991b524237381a0202a60659]
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
src/locale/iconv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/locale/iconv.c b/src/locale/iconv.c
index 3047c27b..1fb66bc8 100644
--- a/src/locale/iconv.c
+++ b/src/locale/iconv.c
@@ -495,7 +495,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri
if (c >= 93 || d >= 94) {
c += (0xa1-0x81);
d += 0xa1;
- if (c >= 93 || c>=0xc6-0x81 && d>0x52)
+ if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52)
goto ilseq;
if (d-'A'<26) d = d-'A';
else if (d-'a'<26) d = d-'a'+26;

View File

@@ -0,0 +1,38 @@
From b81230050f6c3348038fe470d260028824b9a9e5 Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Wed, 19 Nov 2025 13:27:15 +0100
Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder
bugs
the UTF-8 output code was written assuming an invariant that iconv's
decoders only emit valid Unicode Scalar Values which wctomb can encode
successfully, thereby always returning a value between 1 and 4.
if this invariant is not satisfied, wctomb returns (size_t)-1, and the
subsequent adjustments to the output buffer pointer and remaining
output byte count overflow, moving the output position backwards,
potentially past the beginning of the buffer, without storing any
bytes.
CVE: CVE-2025-26519
Upstream-Status: Backport [https://git.musl-libc.org/cgit/musl/commit/?id=c47ad25ea3b484e10326f933e927c0bc8cded3da]
Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
src/locale/iconv.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/locale/iconv.c b/src/locale/iconv.c
index 1fb66bc8..fb1d3217 100644
--- a/src/locale/iconv.c
+++ b/src/locale/iconv.c
@@ -538,6 +538,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri
if (*outb < k) goto toobig;
memcpy(*out, tmp, k);
} else k = wctomb_utf8(*out, c);
+ /* This failure condition should be unreachable, but
+ * is included to prevent decoder bugs from translating
+ * into advancement outside the output buffer range. */
+ if (k>4) goto ilseq;
*out += k;
*outb -= k;
break;

View File

@@ -15,7 +15,9 @@ PV = "${BASEVER}+git${SRCPV}"
SRC_URI = "git://git.musl-libc.org/musl;branch=master \
file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
"
file://CVE-2025-26519-1.patch \
file://CVE-2025-26519-2.patch \
"
S = "${WORKDIR}/git"

View File

@@ -235,6 +235,7 @@ EXTRA_OEMESON += "-Dnobody-user=nobody \
-Dmode=release \
-Dsystem-alloc-uid-min=101 \
-Dsystem-uid-max=999 \
-Dtranslations=${@'false' if d.getVar('USE_NLS') == 'no' else 'true'} \
-Dsystem-alloc-gid-min=101 \
-Dsystem-gid-max=999 \
"

View File

@@ -42,6 +42,8 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-lin
file://CVE-2024-28085-0004.patch \
file://CVE-2024-28085-0005.patch \
file://fstab-isolation.patch \
file://CVE-2025-14104-01.patch \
file://CVE-2025-14104-02.patch \
"
SRC_URI[sha256sum] = "634e6916ad913366c3536b6468e7844769549b99a7b2bf80314de78ab5655b83"

View File

@@ -0,0 +1,33 @@
From aaa9e718c88d6916b003da7ebcfe38a3c88df8e6 Mon Sep 17 00:00:00 2001
From: Mohamed Maatallah <hotelsmaatallahrecemail@gmail.com>
Date: Sat, 24 May 2025 03:16:09 +0100
Subject: [PATCH] Update setpwnam.c
CVE: CVE-2025-14104
Upstream-Status: Backport [https://github.com/util-linux/util-linux/commit/aaa9e718c88d6916b003da7ebcfe38a3c88df8e6]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
login-utils/setpwnam.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/login-utils/setpwnam.c b/login-utils/setpwnam.c
index 3e3c1abde..95e470b5a 100644
--- a/login-utils/setpwnam.c
+++ b/login-utils/setpwnam.c
@@ -126,10 +126,12 @@ int setpwnam(struct passwd *pwd, const char *prefix)
}
/* Is this the username we were sent to change? */
- if (!found && linebuf[namelen] == ':' &&
- !strncmp(linebuf, pwd->pw_name, namelen)) {
- /* Yes! So go forth in the name of the Lord and
- * change it! */
+ if (!found &&
+ strncmp(linebuf, pwd->pw_name, namelen) == 0 &&
+ strlen(linebuf) > namelen &&
+ linebuf[namelen] == ':') {
+ /* Yes! But this time lets not walk past the end of the buffer
+ * in the name of the Lord, SUID, or anything else. */
if (putpwent(pwd, fp) < 0)
goto fail;
found = 1;

View File

@@ -0,0 +1,28 @@
From 9a36d77012c4c771f8d51eba46b6e62c29bf572a Mon Sep 17 00:00:00 2001
From: Mohamed Maatallah <hotelsmaatallahrecemail@gmail.com>
Date: Mon, 26 May 2025 10:06:02 +0100
Subject: [PATCH] Update bufflen
Update buflen
CVE: CVE-2025-14104
Upstream-Status: Backport [https://github.com/util-linux/util-linux/commit/9a36d77012c4c771f8d51eba46b6e62c29bf572a]
Signed-off-by: Peter Marko <peter.marko@siemens.com>
---
login-utils/setpwnam.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/login-utils/setpwnam.c b/login-utils/setpwnam.c
index 95e470b5a..7778e98f7 100644
--- a/login-utils/setpwnam.c
+++ b/login-utils/setpwnam.c
@@ -99,7 +99,8 @@ int setpwnam(struct passwd *pwd, const char *prefix)
goto fail;
namelen = strlen(pwd->pw_name);
-
+ if (namelen > buflen)
+ buflen += namelen;
linebuf = malloc(buflen);
if (!linebuf)
goto fail;

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