mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
Compare commits
93 Commits
yocto-5.2.
...
yocto-5.2.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0b46a6624 | ||
|
|
316baad50b | ||
|
|
639a818fd0 | ||
|
|
ac184e133b | ||
|
|
73a25f197b | ||
|
|
91844fbbf2 | ||
|
|
a443a81cf8 | ||
|
|
77fb27f680 | ||
|
|
f15ade2e8a | ||
|
|
b066c3a8cc | ||
|
|
58836a4e5d | ||
|
|
72d9e1b8f4 | ||
|
|
a20ad9c56b | ||
|
|
9b55caf95e | ||
|
|
a811f299f5 | ||
|
|
2fdaf43bcb | ||
|
|
96c7bfd679 | ||
|
|
cb23f1e136 | ||
|
|
9bdfaa121a | ||
|
|
0fd54596bb | ||
|
|
cd993c7abb | ||
|
|
40679185af | ||
|
|
08ab8055fb | ||
|
|
4e13752934 | ||
|
|
586fa71083 | ||
|
|
619c008306 | ||
|
|
51fbf6f908 | ||
|
|
6338bb1d12 | ||
|
|
3d625d8263 | ||
|
|
ef043f337c | ||
|
|
59e8e23b75 | ||
|
|
89e6b6c852 | ||
|
|
10b0d27225 | ||
|
|
0aefe86563 | ||
|
|
c1c6ba8461 | ||
|
|
2b12a5e03f | ||
|
|
b9c058128b | ||
|
|
7c1dcdd88f | ||
|
|
270669b4ec | ||
|
|
bc47b236c4 | ||
|
|
487e8c7de1 | ||
|
|
22b561673c | ||
|
|
6694328818 | ||
|
|
7e03dda118 | ||
|
|
c9578ff805 | ||
|
|
8b9ff99208 | ||
|
|
26c602f913 | ||
|
|
627f697dac | ||
|
|
7ec60228eb | ||
|
|
8150b2ba7c | ||
|
|
831fd471f1 | ||
|
|
ec065ce64c | ||
|
|
5495d8b6ff | ||
|
|
f6534ab04f | ||
|
|
199b076727 | ||
|
|
ebbcc0a3c6 | ||
|
|
d5ed259e92 | ||
|
|
6f906dc9cf | ||
|
|
343adc0de0 | ||
|
|
36326e581e | ||
|
|
e5a9adf1a5 | ||
|
|
54986335f9 | ||
|
|
f699ff2f0c | ||
|
|
3b0107f1d2 | ||
|
|
90b3c9c0f3 | ||
|
|
0e895d96c2 | ||
|
|
33ef432073 | ||
|
|
b8ad59f27e | ||
|
|
d4485baac0 | ||
|
|
224dc049d4 | ||
|
|
ea258f1f85 | ||
|
|
4011ae9f22 | ||
|
|
390a774854 | ||
|
|
c0192e2543 | ||
|
|
1828ecc19f | ||
|
|
3c89580ab0 | ||
|
|
7570380173 | ||
|
|
1685873075 | ||
|
|
f0c015b3f1 | ||
|
|
9fc83a3343 | ||
|
|
49a42f23d1 | ||
|
|
5d2bdb56f8 | ||
|
|
62d813527d | ||
|
|
c00fb3ce44 | ||
|
|
d2cf21799c | ||
|
|
dddd1ac1a4 | ||
|
|
abd47e5eee | ||
|
|
906ca66083 | ||
|
|
92ad2bf885 | ||
|
|
f9e6c1011a | ||
|
|
f199f5e3a6 | ||
|
|
17c3ea7ff8 | ||
|
|
26ec7d6e30 |
@@ -27,7 +27,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
|
||||
|
||||
bb.utils.check_system_locale()
|
||||
|
||||
__version__ = "2.12.0"
|
||||
__version__ = "2.12.1"
|
||||
|
||||
if __name__ == "__main__":
|
||||
if __version__ != bb.__version__:
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
|
||||
__version__ = "2.12.0"
|
||||
__version__ = "2.12.1"
|
||||
|
||||
import sys
|
||||
if sys.version_info < (3, 9, 0):
|
||||
@@ -37,6 +37,34 @@ class BBHandledException(Exception):
|
||||
import os
|
||||
import logging
|
||||
from collections import namedtuple
|
||||
import multiprocessing as mp
|
||||
|
||||
# Python 3.14 changes the default multiprocessing context from "fork" to
|
||||
# "forkserver". However, bitbake heavily relies on "fork" behavior to
|
||||
# efficiently pass data to the child processes. Places that need this should do:
|
||||
# from bb import multiprocessing
|
||||
# in place of
|
||||
# import multiprocessing
|
||||
|
||||
class MultiprocessingContext(object):
|
||||
"""
|
||||
Multiprocessing proxy object that uses the "fork" context for a property if
|
||||
available, otherwise goes to the main multiprocessing module. This allows
|
||||
it to be a drop-in replacement for the multiprocessing module, but use the
|
||||
fork context
|
||||
"""
|
||||
def __init__(self):
|
||||
super().__setattr__("_ctx", mp.get_context("fork"))
|
||||
|
||||
def __getattr__(self, name):
|
||||
if hasattr(self._ctx, name):
|
||||
return getattr(self._ctx, name)
|
||||
return getattr(mp, name)
|
||||
|
||||
def __setattr__(self, name, value):
|
||||
raise AttributeError(f"Unable to set attribute {name}")
|
||||
|
||||
multiprocessing = MultiprocessingContext()
|
||||
|
||||
|
||||
class NullHandler(logging.Handler):
|
||||
|
||||
@@ -11,7 +11,7 @@ import os
|
||||
import signal
|
||||
import socket
|
||||
import sys
|
||||
import multiprocessing
|
||||
from bb import multiprocessing
|
||||
import logging
|
||||
from .connection import StreamConnection, WebsocketConnection
|
||||
from .exceptions import ClientError, ServerError, ConnectionClosedError, InvokeError
|
||||
|
||||
@@ -12,7 +12,7 @@ import enum
|
||||
import sys, os, glob, os.path, re, time
|
||||
import itertools
|
||||
import logging
|
||||
import multiprocessing
|
||||
from bb import multiprocessing
|
||||
import threading
|
||||
from io import StringIO, UnsupportedOperation
|
||||
from contextlib import closing
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
import bb
|
||||
import bb.event
|
||||
import logging
|
||||
import multiprocessing
|
||||
from bb import multiprocessing
|
||||
import threading
|
||||
import array
|
||||
import os
|
||||
|
||||
@@ -3135,23 +3135,23 @@ class GitTagVerificationTests(FetcherTest):
|
||||
@skipIfNoNetwork()
|
||||
def test_tag_rev_match(self):
|
||||
# Test a url with rev= and tag= set works
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.8;protocol=https;rev=aa0e540fc31a1c26839efd2c7785a751ce24ebfb;tag=2.8.7"], self.d)
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.12;protocol=https;rev=5b4e20377eea8d428edf1aeb2187c18f82ca6757;tag=2.12.0"], self.d)
|
||||
fetcher.download()
|
||||
fetcher.unpack(self.unpackdir)
|
||||
|
||||
@skipIfNoNetwork()
|
||||
def test_tag_rev_match2(self):
|
||||
# Test a url with SRCREV and tag= set works
|
||||
self.d.setVar('SRCREV', 'aa0e540fc31a1c26839efd2c7785a751ce24ebfb')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.8;protocol=https;tag=2.8.7"], self.d)
|
||||
self.d.setVar('SRCREV', '5b4e20377eea8d428edf1aeb2187c18f82ca6757')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.12;protocol=https;tag=2.12.0"], self.d)
|
||||
fetcher.download()
|
||||
fetcher.unpack(self.unpackdir)
|
||||
|
||||
@skipIfNoNetwork()
|
||||
def test_tag_rev_match3(self):
|
||||
# Test a url with SRCREV, rev= and tag= set works
|
||||
self.d.setVar('SRCREV', 'aa0e540fc31a1c26839efd2c7785a751ce24ebfb')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.8;protocol=https;rev=aa0e540fc31a1c26839efd2c7785a751ce24ebfb;tag=2.8.7"], self.d)
|
||||
self.d.setVar('SRCREV', '5b4e20377eea8d428edf1aeb2187c18f82ca6757')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.12;protocol=https;rev=5b4e20377eea8d428edf1aeb2187c18f82ca6757;tag=2.12.0"], self.d)
|
||||
fetcher.download()
|
||||
fetcher.unpack(self.unpackdir)
|
||||
|
||||
@@ -3160,14 +3160,14 @@ class GitTagVerificationTests(FetcherTest):
|
||||
# Test a url with SRCREV and rev= mismatching errors
|
||||
self.d.setVar('SRCREV', 'bade540fc31a1c26839efd2c7785a751ce24ebfb')
|
||||
with self.assertRaises(bb.fetch2.FetchError):
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.8;protocol=https;rev=aa0e540fc31a1c26839efd2c7785a751ce24ebfb;tag=2.8.7"], self.d)
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.12;protocol=https;rev=5b4e20377eea8d428edf1aeb2187c18f82ca6757;tag=2.12.0"], self.d)
|
||||
|
||||
@skipIfNoNetwork()
|
||||
def test_tag_rev_match5(self):
|
||||
# Test a url with SRCREV, rev= and tag= set works when using shallow clones
|
||||
self.d.setVar('BB_GIT_SHALLOW', '1')
|
||||
self.d.setVar('SRCREV', 'aa0e540fc31a1c26839efd2c7785a751ce24ebfb')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.8;protocol=https;rev=aa0e540fc31a1c26839efd2c7785a751ce24ebfb;tag=2.8.7"], self.d)
|
||||
self.d.setVar('SRCREV', '5b4e20377eea8d428edf1aeb2187c18f82ca6757')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.12;protocol=https;rev=5b4e20377eea8d428edf1aeb2187c18f82ca6757;tag=2.12.0"], self.d)
|
||||
fetcher.download()
|
||||
fetcher.unpack(self.unpackdir)
|
||||
|
||||
@@ -3175,7 +3175,7 @@ class GitTagVerificationTests(FetcherTest):
|
||||
def test_tag_rev_match6(self):
|
||||
# Test a url with SRCREV, rev= and a mismatched tag= when using shallow clones
|
||||
self.d.setVar('BB_GIT_SHALLOW', '1')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.8;protocol=https;rev=aa0e540fc31a1c26839efd2c7785a751ce24ebfb;tag=2.8.6"], self.d)
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.12;protocol=https;rev=5b4e20377eea8d428edf1aeb2187c18f82ca6757;tag=2.8.0"], self.d)
|
||||
fetcher.download()
|
||||
with self.assertRaises(bb.fetch2.FetchError):
|
||||
fetcher.unpack(self.unpackdir)
|
||||
@@ -3183,8 +3183,8 @@ class GitTagVerificationTests(FetcherTest):
|
||||
@skipIfNoNetwork()
|
||||
def test_tag_rev_match7(self):
|
||||
# Test a url with SRCREV, rev= and a mismatched tag=
|
||||
self.d.setVar('SRCREV', 'aa0e540fc31a1c26839efd2c7785a751ce24ebfb')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.8;protocol=https;rev=aa0e540fc31a1c26839efd2c7785a751ce24ebfb;tag=2.8.6"], self.d)
|
||||
self.d.setVar('SRCREV', '5b4e20377eea8d428edf1aeb2187c18f82ca6757')
|
||||
fetcher = bb.fetch.Fetch(["git://git.openembedded.org/bitbake;branch=2.12;protocol=https;rev=5b4e20377eea8d428edf1aeb2187c18f82ca6757;tag=2.8.0"], self.d)
|
||||
fetcher.download()
|
||||
with self.assertRaises(bb.fetch2.FetchError):
|
||||
fetcher.unpack(self.unpackdir)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#
|
||||
|
||||
import http.server
|
||||
import multiprocessing
|
||||
from bb import multiprocessing
|
||||
import os
|
||||
import traceback
|
||||
import signal
|
||||
@@ -43,7 +43,7 @@ class HTTPService(object):
|
||||
self.process = multiprocessing.Process(target=self.server.server_start, args=[self.root_dir, self.logger])
|
||||
|
||||
# The signal handler from testimage.bbclass can cause deadlocks here
|
||||
# if the HTTPServer is terminated before it can restore the standard
|
||||
# if the HTTPServer is terminated before it can restore the standard
|
||||
#signal behaviour
|
||||
orig = signal.getsignal(signal.SIGTERM)
|
||||
signal.signal(signal.SIGTERM, signal.SIG_DFL)
|
||||
|
||||
@@ -12,7 +12,7 @@ import sys
|
||||
import errno
|
||||
import logging
|
||||
import locale
|
||||
import multiprocessing
|
||||
from bb import multiprocessing
|
||||
import importlib
|
||||
import importlib.machinery
|
||||
import importlib.util
|
||||
@@ -1198,8 +1198,6 @@ def process_profilelog(fn, pout = None):
|
||||
#
|
||||
def multiprocessingpool(*args, **kwargs):
|
||||
|
||||
import multiprocessing.pool
|
||||
#import multiprocessing.util
|
||||
#multiprocessing.util.log_to_stderr(10)
|
||||
# Deal with a multiprocessing bug where signals to the processes would be delayed until the work
|
||||
# completes. Putting in a timeout means the signals (like SIGINT/SIGTERM) get processed.
|
||||
|
||||
@@ -10,7 +10,7 @@ from .server import DEFAULT_ANON_PERMS, ALL_PERMISSIONS
|
||||
from bb.asyncrpc import InvokeError
|
||||
import hashlib
|
||||
import logging
|
||||
import multiprocessing
|
||||
from bb import multiprocessing
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
@@ -52,19 +52,24 @@ for them for significant issues.
|
||||
Security-related discussions at the Yocto Project
|
||||
-------------------------------------------------
|
||||
|
||||
We have set up two security-related mailing lists:
|
||||
We have set up two security-related emails/mailing lists:
|
||||
|
||||
- Public List: yocto [dash] security [at] yoctoproject[dot] org
|
||||
- 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 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>`.
|
||||
|
||||
- Private List: security [at] yoctoproject [dot] org
|
||||
This list requires moderator approval for new topics to be posted, to avoid
|
||||
private security reports to be posted by mistake.
|
||||
|
||||
This is a private mailing list for reporting non-published potential
|
||||
vulnerabilities. The list is monitored by the Yocto Project Security team.
|
||||
- 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
|
||||
|
||||
@@ -318,7 +318,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_CHECK2/nvd*.db .dump | grep CVE-2021-37462
|
||||
|
||||
When analyzing CVEs, it is recommended to:
|
||||
|
||||
|
||||
@@ -35,3 +35,4 @@ Release 4.0 (kirkstone)
|
||||
release-notes-4.0.26
|
||||
release-notes-4.0.27
|
||||
release-notes-4.0.28
|
||||
release-notes-4.0.29
|
||||
|
||||
@@ -18,3 +18,4 @@ Release 5.0 (scarthgap)
|
||||
release-notes-5.0.9
|
||||
release-notes-5.0.10
|
||||
release-notes-5.0.11
|
||||
release-notes-5.0.12
|
||||
|
||||
@@ -9,4 +9,5 @@ Release 5.2 (walnascar)
|
||||
release-notes-5.2
|
||||
release-notes-5.2.1
|
||||
release-notes-5.2.2
|
||||
release-notes-5.2.3
|
||||
|
||||
|
||||
178
documentation/migration-guides/release-notes-4.0.29.rst
Normal file
178
documentation/migration-guides/release-notes-4.0.29.rst
Normal file
@@ -0,0 +1,178 @@
|
||||
Release notes for Yocto-4.0.29 (Kirkstone)
|
||||
------------------------------------------
|
||||
|
||||
Security Fixes in Yocto-4.0.29
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- avahi: Fix :cve_nist:`2024-52615`
|
||||
- binutils: Fix :cve_nist:`2025-7545` and :cve_nist:`2025-7546`
|
||||
- coreutils: Fix :cve_nist:`2025-5278`
|
||||
- curl: Fix :cve_nist:`2024-11053` and :cve_nist:`2025-0167`
|
||||
- dropbear: Fix :cve_nist:`2025-47203`
|
||||
- ffmpeg: Ignore :cve_nist:`2022-3109` and :cve_nist:`2022-3341`
|
||||
- gdk-pixbuf: Fix :cve_nist:`2025-7345`
|
||||
- ghostscript: Ignore :cve_nist:`2025-46646`
|
||||
- gnupg: Fix :cve_nist:`2025-30258`
|
||||
- gnutls: Fix :cve_nist:`2025-6395`, :cve_nist:`2025-32988`, :cve_nist:`2025-32989` and
|
||||
:cve_nist:`2025-32990`
|
||||
- iputils: Fix :cve_nist:`2025-48964`
|
||||
- libarchive: Fix :cve_nist:`2025-5914`, :cve_nist:`2025-5915`, :cve_nist:`2025-5916` and
|
||||
:cve_nist:`2025-5917`
|
||||
- libpam: Fix :cve_nist:`2025-6020`
|
||||
- libsoup-2.4: Fix :cve_nist:`2025-4945`
|
||||
- libsoup-2.4: Fix :cve_nist:`2025-4969` (update patch)
|
||||
- libsoup: Fix :cve_nist:`2025-4945`, :cve_nist:`2025-6021`, :cve_nist:`2025-6170`,
|
||||
:cve_nist:`2025-49794` and :cve_nist:`2025-49796`
|
||||
- ncurses: Fix :cve_nist:`2025-6141`
|
||||
- ofono: Fix :cve_nist:`2023-4232` and :cve_nist:`2023-4235`
|
||||
- openssl: Fix :cve_nist:`2024-41996`
|
||||
- python3-urllib3: Fix :cve_nist:`2025-50181`
|
||||
- ruby: Fix :cve_nist:`2024-43398` (update patches)
|
||||
- sqlite3: Fix :cve_nist:`2025-6965` and :cve_nist:`2025-7458`
|
||||
- sqlite3: Ignore :cve_nist:`2025-3277`
|
||||
- systemd: Fix :cve_nist:`2025-4598`
|
||||
- xwayland: 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.29
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- bintuils: stable 2.38 branch update
|
||||
- bitbake: test/fetch: Switch u-boot based test to use our own mirror
|
||||
- build-appliance-image: Update to kirkstone head revision
|
||||
- conf.py: improve SearchEnglish to handle terms with dots
|
||||
- db: ignore implicit-int and implicit-function-declaration issues fatal with gcc-14
|
||||
- dev-manual/start.rst: added missing command in Optimize your VHDX file using DiskPart
|
||||
- glibc: stable 2.35 branch updates
|
||||
- gnutls: patch read buffer overrun in the "pre_shared_key" extension
|
||||
- gnutls: patch reject zero-length version in certificate request
|
||||
- linux-yocto/5.15: update to v5.15.186
|
||||
- migration-guides: add release notes for 4.0.28
|
||||
- oeqa/core/decorator: add decorators to skip based on :term:`HOST_ARCH`
|
||||
- openssl: upgrade to 3.0.17
|
||||
- orc: set :term:`CVE_PRODUCT`
|
||||
- overview-manual/concepts.rst: fix sayhello hardcoded bindir
|
||||
- poky.conf: bump version for 4.0.29
|
||||
- python3: update CVE product
|
||||
- ref-manual: document :term:`KERNEL_SPLIT_MODULES` variable
|
||||
- scripts/install-buildtools: Update to 4.0.28
|
||||
- sudo: upgrade to 1.9.17p1
|
||||
- tcf-agent: correct the :term:`SRC_URI`
|
||||
|
||||
|
||||
Known Issues in Yocto-4.0.29
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- N/A
|
||||
|
||||
|
||||
Contributors to Yocto-4.0.29
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- Aleksandar Nikolic
|
||||
- Antonin Godard
|
||||
- Archana Polampalli
|
||||
- Bruce Ashfield
|
||||
- Changqing Li
|
||||
- Chen Qi
|
||||
- Colin Pinnell McAllister
|
||||
- Daniel Díaz
|
||||
- Deepesh Varatharajan
|
||||
- Divya Chellam
|
||||
- Dixit Parmar
|
||||
- Enrico Jörns
|
||||
- Guocai He
|
||||
- Hitendra Prajapati
|
||||
- Lee Chee Yang
|
||||
- Marco Cavallini
|
||||
- Martin Jansa
|
||||
- Peter Marko
|
||||
- Praveen Kumar
|
||||
- Richard Purdie
|
||||
- Rob Woolley
|
||||
- Ross Burton
|
||||
- Steve Sakoman
|
||||
- Vijay Anusuri
|
||||
- Yash Shinde
|
||||
- Yogita Urade
|
||||
- Zhang Peng
|
||||
|
||||
|
||||
Repositories / Downloads for Yocto-4.0.29
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
poky
|
||||
|
||||
- Repository Location: :yocto_git:`/poky`
|
||||
- Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
|
||||
- Tag: :yocto_git:`yocto-4.0.29 </poky/log/?h=yocto-4.0.29>`
|
||||
- Git Revision: :yocto_git:`81ab000fa437ca04f584a3327b076f7a512dc6d0 </poky/commit/?id=81ab000fa437ca04f584a3327b076f7a512dc6d0>`
|
||||
- Release Artefact: poky-81ab000fa437ca04f584a3327b076f7a512dc6d0
|
||||
- sha: 2fecf3cac5c2361c201b5ae826960af92289862ec9be13837a8431138e534fd2
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.29/poky-81ab000fa437ca04f584a3327b076f7a512dc6d0.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.29/poky-81ab000fa437ca04f584a3327b076f7a512dc6d0.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.29 </openembedded-core/log/?h=yocto-4.0.29>`
|
||||
- Git Revision: :oe_git:`bd620eb14660075fd0f7476bbbb65d5da6293874 </openembedded-core/commit/?id=bd620eb14660075fd0f7476bbbb65d5da6293874>`
|
||||
- Release Artefact: oecore-bd620eb14660075fd0f7476bbbb65d5da6293874
|
||||
- sha: f32ab195c7090268e6e87ccf8db2813cf705c517030654326d14b25d926de88e
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-4.0.29/oecore-bd620eb14660075fd0f7476bbbb65d5da6293874.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.29/oecore-bd620eb14660075fd0f7476bbbb65d5da6293874.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.29 </meta-mingw/log/?h=yocto-4.0.29>`
|
||||
- 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.29/meta-mingw-87c22abb1f11be430caf4372e6b833dc7d77564e.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.29/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.29 </meta-gplv2/log/?h=yocto-4.0.29>`
|
||||
- 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.29/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.29/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.29 </bitbake/log/?h=yocto-4.0.29>`
|
||||
- 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.29/bitbake-8e2d1f8de055549b2101614d85454fcd1d0f94b2.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-4.0.29/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.29 </meta-yocto/log/?h=yocto-4.0.29>`
|
||||
- Git Revision: :yocto_git:`e916d3bad58f955b73e2c67aba975e63cd191394 </meta-yocto/commit/?id=e916d3bad58f955b73e2c67aba975e63cd191394>`
|
||||
|
||||
yocto-docs
|
||||
|
||||
- Repository Location: :yocto_git:`/yocto-docs`
|
||||
- Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
|
||||
- Tag: :yocto_git:`yocto-4.0.29 </yocto-docs/log/?h=yocto-4.0.29>`
|
||||
- Git Revision: :yocto_git:`bf855ecaf4bec4cef9bbfea2e50caa65a8339828 </yocto-docs/commit/?id=bf855ecaf4bec4cef9bbfea2e50caa65a8339828>`
|
||||
|
||||
184
documentation/migration-guides/release-notes-5.0.12.rst
Normal file
184
documentation/migration-guides/release-notes-5.0.12.rst
Normal file
@@ -0,0 +1,184 @@
|
||||
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
|
||||
|
||||
Release notes for Yocto-5.0.12 (Scarthgap)
|
||||
------------------------------------------
|
||||
|
||||
Security Fixes in Yocto-5.0.12
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- avahi: Fix :cve_nist:`2024-52615`
|
||||
- binutils: Fix :cve_nist:`2025-7545` and :cve_nist:`2025-7546`
|
||||
- busybox: Fix :cve_nist:`2023-39810`
|
||||
- dropbear: Fix :cve_nist:`2025-47203`
|
||||
- gdk-pixbuf: Fix :cve_nist:`2025-7345`
|
||||
- git: Fix :cve_nist:`2025-27613`, :cve_nist:`2025-27614`, :cve_nist:`2025-46334`,
|
||||
:cve_nist:`2025-46835`, :cve_nist:`2025-48384`, :cve_nist:`2025-48385` and :cve_nist:`2025-48386`
|
||||
- glib-2.0: Ignore :cve_nist:`2025-4056`
|
||||
- glibc: Fix :cve_nist:`2025-8058`
|
||||
- gnutls: Fix :cve_nist:`2025-6395`, :cve_nist:`2025-32988`, :cve_nist:`2025-32989` and
|
||||
:cve_nist:`2025-32990`
|
||||
- go: Ignore :cve_nist:`2025-0913`
|
||||
- gstreamer1.0-plugins-base: Fix :cve_nist:`2025-47806` and :cve_nist:`2025-47808`
|
||||
- gstreamer1.0-plugins-good: Fix :cve_nist:`2025-47183` and :cve_nist:`2025-47219`
|
||||
- iputils: Fix :cve_nist:`2025-48964`
|
||||
- libpam: Fix :cve_nist:`2025-6020`
|
||||
- libxml2: Fix :cve_nist:`2025-6170`, :cve_nist:`2025-49794`, :cve_nist:`2025-49795` and
|
||||
:cve_nist:`2025-49796`
|
||||
- libxml2: Ignore :cve_nist:`2025-8732`
|
||||
- ncurses: Fix :cve_nist:`2025-6141`
|
||||
- openssl: Fix :cve_nist:`2024-41996` and :cve_nist:`2025-27587`
|
||||
- python3: Fix :cve_nist:`2025-8194`
|
||||
- sqlite3: Fix :cve_nist:`2025-6965`
|
||||
- sudo: Fix :cve_nist:`2025-32463`
|
||||
- xserver-xorg: Fix :cve_nist:`2022-49737`, :cve_nist:`2025-49175`, :cve_nist:`2025-49176`,
|
||||
:cve_nist:`2025-49177`, :cve_nist:`2025-49178`, :cve_nist:`2025-49179`, :cve_nist:`2025-49180`
|
||||
and :cve_nist:`2025-49176`
|
||||
- xz: Ignore :cve_nist:`2024-47611`
|
||||
|
||||
|
||||
Fixes in Yocto-5.0.12
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- bash: Stick to C17 std
|
||||
- bash: use -std=gnu17 also for native :term:`CFLAGS`
|
||||
- binutils: stable 2.42 branch updates
|
||||
- bitbake: bitbake: runqueue: Verify mcdepends are valid
|
||||
- bitbake: test/fetch: Switch u-boot based test to use our own mirror
|
||||
- bitbake: utils: Optimise signal/sigmask performance
|
||||
- build-appliance-image: Update to scarthgap head revision
|
||||
- cairo: fix build with gcc-15 on host
|
||||
- cmake: Add :term:`PACKAGECONFIG` option for debugger support
|
||||
- cve-check: Add missing call to exit_if_errors
|
||||
- dev-manual/start.rst: added missing command in Optimize your VHDX file using DiskPart
|
||||
- e2fsprogs: Fix build failure with gcc 15
|
||||
- git: Upgrade to 2.44.4
|
||||
- glibc: stable 2.39 branch updates
|
||||
- gnutls: patch read buffer overrun in the "pre_shared_key" extension
|
||||
- gnutls: patch reject zero-length version in certificate request
|
||||
- go-helloworld: fix license
|
||||
- kea: set correct permissions for /var/run/kea
|
||||
- linux-libc-headers: Fix invalid conversion in cn_proc.h
|
||||
- migration-guides: add release notes for 5.0.11
|
||||
- mtools: upgrade to 4.0.49
|
||||
- oe-debuginfod: add option for data storage
|
||||
- orc: set :term:`CVE_PRODUCT`
|
||||
- overview-manual/yp-intro.rst: fix broken link to article
|
||||
- parted: Fix build with GCC 15
|
||||
- poky.conf: bump version for 5.0.12
|
||||
- python3: update CVE product
|
||||
- ref-manual/classes.rst: document the testexport class
|
||||
- ref-manual/system-requirements.rst: update supported distributions
|
||||
- ref-manual/variables.rst: document :term:`SPL_DTB_BINARY` :term:`FIT_CONF_PREFIX` variable
|
||||
- scripts/install-buildtools: Update to 5.0.11
|
||||
- sudo: upgrade to 1.9.17p1
|
||||
- timedated: wait for jobs before SetNTP response
|
||||
- variables.rst: remove references to obsolete tar packaging
|
||||
- xserver-xorg: upgrade to 21.1.18
|
||||
|
||||
|
||||
Known Issues in Yocto-5.0.12
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- N/A
|
||||
|
||||
Contributors to Yocto-5.0.12
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Thanks to the following people who contributed to this release:
|
||||
- Aleksandar Nikolic
|
||||
- Alexander Kanavin
|
||||
- Antonin Godard
|
||||
- Archana Polampalli
|
||||
- Daniel Turull
|
||||
- Deepesh Varatharajan
|
||||
- Erik Lindsten
|
||||
- Fabio Berton
|
||||
- Hitendra Prajapati
|
||||
- Jinfeng Wang
|
||||
- Joe Slater
|
||||
- Khem Raj
|
||||
- Lee Chee Yang
|
||||
- Marco Cavallini
|
||||
- Mark Hatle
|
||||
- Martin Jansa
|
||||
- Michal Seben
|
||||
- Nikhil R
|
||||
- Peter Marko
|
||||
- Philip Lorenz
|
||||
- Praveen Kumar
|
||||
- Quentin Schulz
|
||||
- Richard Purdie
|
||||
- Robert P. J. Day
|
||||
- Roland Kovacs
|
||||
- Steve Sakoman
|
||||
- Vijay Anusuri
|
||||
- Wang Mingyu
|
||||
- Yash Shinde
|
||||
- Yi Zhao
|
||||
- Zhang Peng
|
||||
|
||||
Repositories / Downloads for Yocto-5.0.12
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
poky
|
||||
|
||||
- Repository Location: :yocto_git:`/poky`
|
||||
- Branch: :yocto_git:`scarthgap </poky/log/?h=scarthgap>`
|
||||
- Tag: :yocto_git:`yocto-5.0.12 </poky/log/?h=yocto-5.0.12>`
|
||||
- Git Revision: :yocto_git:`ec220ae083dba35c279192b2249ad03fe238446e </poky/commit/?id=ec220ae083dba35c279192b2249ad03fe238446e>`
|
||||
- Release Artefact: poky-ec220ae083dba35c279192b2249ad03fe238446e
|
||||
- sha: a5f8c2ad491c59d0bdfb85f46a136b0ee66cfdd4359ab1ab9dac2430d0a52c17
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.12/poky-ec220ae083dba35c279192b2249ad03fe238446e.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-5.0.12/poky-ec220ae083dba35c279192b2249ad03fe238446e.tar.bz2
|
||||
|
||||
openembedded-core
|
||||
|
||||
- Repository Location: :oe_git:`/openembedded-core`
|
||||
- Branch: :oe_git:`scarthgap </openembedded-core/log/?h=scarthgap>`
|
||||
- Tag: :oe_git:`yocto-5.0.12 </openembedded-core/log/?h=yocto-5.0.12>`
|
||||
- Git Revision: :oe_git:`93c7489d843a0e46fe4fc685b356d0ae885300d7 </openembedded-core/commit/?id=93c7489d843a0e46fe4fc685b356d0ae885300d7>`
|
||||
- Release Artefact: oecore-93c7489d843a0e46fe4fc685b356d0ae885300d7
|
||||
- sha: 49695592179cd777eee337d922aae354dad4ab503628f0344b1b53329900c4d9
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.12/oecore-93c7489d843a0e46fe4fc685b356d0ae885300d7.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-5.0.12/oecore-93c7489d843a0e46fe4fc685b356d0ae885300d7.tar.bz2
|
||||
|
||||
meta-mingw
|
||||
|
||||
- Repository Location: :yocto_git:`/meta-mingw`
|
||||
- Branch: :yocto_git:`scarthgap </meta-mingw/log/?h=scarthgap>`
|
||||
- Tag: :yocto_git:`yocto-5.0.12 </meta-mingw/log/?h=yocto-5.0.12>`
|
||||
- Git Revision: :yocto_git:`bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f </meta-mingw/commit/?id=bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f>`
|
||||
- Release Artefact: meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f
|
||||
- sha: ab073def6487f237ac125d239b3739bf02415270959546b6b287778664f0ae65
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.12/meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-5.0.12/meta-mingw-bd9fef71ec005be3c3a6d7f8b99d8116daf70c4f.tar.bz2
|
||||
|
||||
bitbake
|
||||
|
||||
- Repository Location: :oe_git:`/bitbake`
|
||||
- Branch: :oe_git:`2.8 </bitbake/log/?h=2.8>`
|
||||
- Tag: :oe_git:`yocto-5.0.12 </bitbake/log/?h=yocto-5.0.12>`
|
||||
- Git Revision: :oe_git:`982645110a19ebb94d519926a4e14c8a2a205cfd </bitbake/commit/?id=982645110a19ebb94d519926a4e14c8a2a205cfd>`
|
||||
- Release Artefact: bitbake-982645110a19ebb94d519926a4e14c8a2a205cfd
|
||||
- sha: f8d777d322b8f05372d7ce75c67df2db2b7de3f64d5b7769b8051c507161245d
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-5.0.12/bitbake-982645110a19ebb94d519926a4e14c8a2a205cfd.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-5.0.12/bitbake-982645110a19ebb94d519926a4e14c8a2a205cfd.tar.bz2
|
||||
|
||||
meta-yocto
|
||||
|
||||
- Repository Location: :yocto_git:`/meta-yocto`
|
||||
- Branch: :yocto_git:`scarthgap </meta-yocto/log/?h=scarthgap>`
|
||||
- Tag: :yocto_git:`yocto-5.0.12 </meta-yocto/log/?h=yocto-5.0.12>`
|
||||
- Git Revision: :yocto_git:`82602cda1a89644d1acbe230a81c93e3fb5031c8 </meta-yocto/commit/?id=82602cda1a89644d1acbe230a81c93e3fb5031c8>`
|
||||
|
||||
yocto-docs
|
||||
|
||||
- Repository Location: :yocto_git:`/yocto-docs`
|
||||
- Branch: :yocto_git:`scarthgap </yocto-docs/log/?h=scarthgap>`
|
||||
- Tag: :yocto_git:`yocto-5.0.12 </yocto-docs/log/?h=yocto-5.0.12>`
|
||||
- Git Revision: :yocto_git:`dd665216fa578a1f2f268790d708c6a5d2912ecf </yocto-docs/commit/?id=dd665216fa578a1f2f268790d708c6a5d2912ecf>`
|
||||
|
||||
355
documentation/migration-guides/release-notes-5.2.3.rst
Normal file
355
documentation/migration-guides/release-notes-5.2.3.rst
Normal file
@@ -0,0 +1,355 @@
|
||||
Release notes for Yocto-5.2.3 (Walnascar)
|
||||
-----------------------------------------
|
||||
|
||||
Security Fixes in Yocto-5.2.3
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- avahi: Fix :cve_nist:`2024-52615` and :cve_nist:`2024-52616`
|
||||
- bind: Fix:cve_nist:`2025-40777`
|
||||
- binutils: Fix :cve_nist:`2025-5245`, :cve_nist:`2025-7545` and :cve_nist:`2025-7546`
|
||||
- busybox: Fix :cve_nist:`2023-39810`
|
||||
- coreutils: Fix :cve_nist:`2025-5278`
|
||||
- curl: Ignore :cve_nist:`2025-4947` and :cve_nist:`2025-5025`
|
||||
- dpkg: Fix :cve_nist:`2025-6297`
|
||||
- dropbear: Fix :cve_nist:`2025-47203`
|
||||
- gdk-pixbuf: Fix :cve_nist:`2025-7345`
|
||||
- git: Fix :cve_nist:`2025-27613`, :cve_nist:`2025-27614`, :cve_nist:`2025-46334`,
|
||||
:cve_nist:`2025-46835`, :cve_nist:`2025-48384`, :cve_nist:`2025-48385` and :cve_nist:`2025-48386`
|
||||
- gnutls: Fix :cve_nist:`2025-6395`, :cve_nist:`2025-32988`, :cve_nist:`2025-32989` and
|
||||
:cve_nist:`2025-32990`
|
||||
- go: Fix :cve_nist:`2025-4674`
|
||||
- icu: Fix :cve_nist:`2025-5222`
|
||||
- iputils: Fix :cve_nist:`2025-48964`
|
||||
- libarchive: Fix :cve_nist:`2025-5915`
|
||||
- libpam: Fix :cve_nist:`2024-10963`
|
||||
- libsoup-2.4: Fix :cve_nist:`2025-4945`
|
||||
- libsoup: Fix :cve_nist:`2025-4945`, :cve_nist:`2025-6021`, :cve_nist:`2025-6170`,
|
||||
:cve_nist:`2025-49794`, :cve_nist:`2025-49795` and :cve_nist:`2025-49796`
|
||||
- linux-yocto/6.12: Ignore :cve_nist:`2021-47342`, :cve_nist:`2022-49934`, :cve_nist:`2022-49935`,
|
||||
:cve_nist:`2022-49936`, :cve_nist:`2022-49937`, :cve_nist:`2022-49938`, :cve_nist:`2022-49939`,
|
||||
:cve_nist:`2022-49940`, :cve_nist:`2022-49942`, :cve_nist:`2022-49943`, :cve_nist:`2022-49944`,
|
||||
:cve_nist:`2022-49945`, :cve_nist:`2022-49946`, :cve_nist:`2022-49947`, :cve_nist:`2022-49948`,
|
||||
:cve_nist:`2022-49949`, :cve_nist:`2022-49950`, :cve_nist:`2022-49951`, :cve_nist:`2022-49952`,
|
||||
:cve_nist:`2022-49953`, :cve_nist:`2022-49954`, :cve_nist:`2022-49955`, :cve_nist:`2022-49956`,
|
||||
:cve_nist:`2022-49957`, :cve_nist:`2022-49958`, :cve_nist:`2022-49959`, :cve_nist:`2022-49960`,
|
||||
:cve_nist:`2022-49961`, :cve_nist:`2022-49962`, :cve_nist:`2022-49963`, :cve_nist:`2022-49964`,
|
||||
:cve_nist:`2022-49965`, :cve_nist:`2022-49966`, :cve_nist:`2022-49967`, :cve_nist:`2022-49968`,
|
||||
:cve_nist:`2022-49969`, :cve_nist:`2022-49970`, :cve_nist:`2022-49971`, :cve_nist:`2022-49972`,
|
||||
:cve_nist:`2022-49973`, :cve_nist:`2022-49974`, :cve_nist:`2022-49975`, :cve_nist:`2022-49976`,
|
||||
:cve_nist:`2022-49977`, :cve_nist:`2022-49978`, :cve_nist:`2022-49979`, :cve_nist:`2022-49980`,
|
||||
:cve_nist:`2022-49981`, :cve_nist:`2022-49982`, :cve_nist:`2022-49983`, :cve_nist:`2022-49984`,
|
||||
:cve_nist:`2022-49985`, :cve_nist:`2022-49986`, :cve_nist:`2022-49987`, :cve_nist:`2022-49989`,
|
||||
:cve_nist:`2022-49990`, :cve_nist:`2022-49991`, :cve_nist:`2022-49992`, :cve_nist:`2022-49993`,
|
||||
:cve_nist:`2022-49994`, :cve_nist:`2022-49995`, :cve_nist:`2022-49996`, :cve_nist:`2022-49997`,
|
||||
:cve_nist:`2022-49998`, :cve_nist:`2022-49999`, :cve_nist:`2022-50000`, :cve_nist:`2022-50001`,
|
||||
:cve_nist:`2022-50002`, :cve_nist:`2022-50003`, :cve_nist:`2022-50004`, :cve_nist:`2022-50005`,
|
||||
:cve_nist:`2022-50006`, :cve_nist:`2022-50007`, :cve_nist:`2022-50008`, :cve_nist:`2022-50009`,
|
||||
:cve_nist:`2022-50010`, :cve_nist:`2022-50011`, :cve_nist:`2022-50012`, :cve_nist:`2022-50013`,
|
||||
:cve_nist:`2022-50014`, :cve_nist:`2022-50015`, :cve_nist:`2022-50016`, :cve_nist:`2022-50017`,
|
||||
:cve_nist:`2022-50019`, :cve_nist:`2022-50020`, :cve_nist:`2022-50021`, :cve_nist:`2022-50022`,
|
||||
:cve_nist:`2022-50023`, :cve_nist:`2022-50024`, :cve_nist:`2022-50025`, :cve_nist:`2022-50026`,
|
||||
:cve_nist:`2022-50027`, :cve_nist:`2022-50028`, :cve_nist:`2022-50029`, :cve_nist:`2022-50030`,
|
||||
:cve_nist:`2022-50031`, :cve_nist:`2022-50032`, :cve_nist:`2022-50033`, :cve_nist:`2022-50034`,
|
||||
:cve_nist:`2022-50035`, :cve_nist:`2022-50036`, :cve_nist:`2022-50037`, :cve_nist:`2022-50038`,
|
||||
:cve_nist:`2022-50039`, :cve_nist:`2022-50040`, :cve_nist:`2022-50041`, :cve_nist:`2022-50042`,
|
||||
:cve_nist:`2022-50043`, :cve_nist:`2022-50044`, :cve_nist:`2022-50045`, :cve_nist:`2022-50046`,
|
||||
:cve_nist:`2022-50047`, :cve_nist:`2022-50048`, :cve_nist:`2022-50049`, :cve_nist:`2022-50050`,
|
||||
:cve_nist:`2022-50051`, :cve_nist:`2022-50052`, :cve_nist:`2022-50053`, :cve_nist:`2022-50054`,
|
||||
:cve_nist:`2022-50055`, :cve_nist:`2022-50056`, :cve_nist:`2022-50057`, :cve_nist:`2022-50058`,
|
||||
:cve_nist:`2022-50059`, :cve_nist:`2022-50060`, :cve_nist:`2022-50061`, :cve_nist:`2022-50062`,
|
||||
:cve_nist:`2022-50063`, :cve_nist:`2022-50064`, :cve_nist:`2022-50065`, :cve_nist:`2022-50066`,
|
||||
:cve_nist:`2022-50067`, :cve_nist:`2022-50068`, :cve_nist:`2022-50069`, :cve_nist:`2022-50070`,
|
||||
:cve_nist:`2022-50071`, :cve_nist:`2022-50072`, :cve_nist:`2022-50073`, :cve_nist:`2022-50074`,
|
||||
:cve_nist:`2022-50075`, :cve_nist:`2022-50076`, :cve_nist:`2022-50077`, :cve_nist:`2022-50078`,
|
||||
:cve_nist:`2022-50079`, :cve_nist:`2022-50080`, :cve_nist:`2022-50082`, :cve_nist:`2022-50083`,
|
||||
:cve_nist:`2022-50084`, :cve_nist:`2022-50085`, :cve_nist:`2022-50086`, :cve_nist:`2022-50087`,
|
||||
:cve_nist:`2022-50088`, :cve_nist:`2022-50089`, :cve_nist:`2022-50090`, :cve_nist:`2022-50091`,
|
||||
:cve_nist:`2022-50092`, :cve_nist:`2022-50093`, :cve_nist:`2022-50094`, :cve_nist:`2022-50095`,
|
||||
:cve_nist:`2022-50096`, :cve_nist:`2022-50097`, :cve_nist:`2022-50098`, :cve_nist:`2022-50099`,
|
||||
:cve_nist:`2022-50100`, :cve_nist:`2022-50101`, :cve_nist:`2022-50102`, :cve_nist:`2022-50103`,
|
||||
:cve_nist:`2022-50104`, :cve_nist:`2022-50105`, :cve_nist:`2022-50106`, :cve_nist:`2022-50107`,
|
||||
:cve_nist:`2022-50108`, :cve_nist:`2022-50109`, :cve_nist:`2022-50110`, :cve_nist:`2022-50111`,
|
||||
:cve_nist:`2022-50112`, :cve_nist:`2022-50113`, :cve_nist:`2022-50114`, :cve_nist:`2022-50115`,
|
||||
:cve_nist:`2022-50116`, :cve_nist:`2022-50117`, :cve_nist:`2022-50118`, :cve_nist:`2022-50119`,
|
||||
:cve_nist:`2022-50120`, :cve_nist:`2022-50121`, :cve_nist:`2022-50122`, :cve_nist:`2022-50123`,
|
||||
:cve_nist:`2022-50124`, :cve_nist:`2022-50125`, :cve_nist:`2022-50126`, :cve_nist:`2022-50127`,
|
||||
:cve_nist:`2022-50129`, :cve_nist:`2022-50130`, :cve_nist:`2022-50131`, :cve_nist:`2022-50132`,
|
||||
:cve_nist:`2022-50133`, :cve_nist:`2022-50134`, :cve_nist:`2022-50135`, :cve_nist:`2022-50136`,
|
||||
:cve_nist:`2022-50137`, :cve_nist:`2022-50138`, :cve_nist:`2022-50139`, :cve_nist:`2022-50140`,
|
||||
:cve_nist:`2022-50141`, :cve_nist:`2022-50142`, :cve_nist:`2022-50143`, :cve_nist:`2022-50144`,
|
||||
:cve_nist:`2022-50145`, :cve_nist:`2022-50146`, :cve_nist:`2022-50147`, :cve_nist:`2022-50148`,
|
||||
:cve_nist:`2022-50149`, :cve_nist:`2022-50151`, :cve_nist:`2022-50152`, :cve_nist:`2022-50153`,
|
||||
:cve_nist:`2022-50154`, :cve_nist:`2022-50155`, :cve_nist:`2022-50156`, :cve_nist:`2022-50157`,
|
||||
:cve_nist:`2022-50158`, :cve_nist:`2022-50159`, :cve_nist:`2022-50160`, :cve_nist:`2022-50161`,
|
||||
:cve_nist:`2022-50162`, :cve_nist:`2022-50163`, :cve_nist:`2022-50164`, :cve_nist:`2022-50165`,
|
||||
:cve_nist:`2022-50166`, :cve_nist:`2022-50167`, :cve_nist:`2022-50168`, :cve_nist:`2022-50169`,
|
||||
:cve_nist:`2022-50170`, :cve_nist:`2022-50171`, :cve_nist:`2022-50172`, :cve_nist:`2022-50173`,
|
||||
:cve_nist:`2022-50174`, :cve_nist:`2022-50175`, :cve_nist:`2022-50176`, :cve_nist:`2022-50177`,
|
||||
:cve_nist:`2022-50178`, :cve_nist:`2022-50179`, :cve_nist:`2022-50181`, :cve_nist:`2022-50182`,
|
||||
:cve_nist:`2022-50183`, :cve_nist:`2022-50184`, :cve_nist:`2022-50185`, :cve_nist:`2022-50186`,
|
||||
:cve_nist:`2022-50187`, :cve_nist:`2022-50188`, :cve_nist:`2022-50189`, :cve_nist:`2022-50190`,
|
||||
:cve_nist:`2022-50191`, :cve_nist:`2022-50192`, :cve_nist:`2022-50193`, :cve_nist:`2022-50194`,
|
||||
:cve_nist:`2022-50195`, :cve_nist:`2022-50196`, :cve_nist:`2022-50197`, :cve_nist:`2022-50198`,
|
||||
:cve_nist:`2022-50199`, :cve_nist:`2022-50200`, :cve_nist:`2022-50201`, :cve_nist:`2022-50202`,
|
||||
:cve_nist:`2022-50203`, :cve_nist:`2022-50204`, :cve_nist:`2022-50205`, :cve_nist:`2022-50206`,
|
||||
:cve_nist:`2022-50207`, :cve_nist:`2022-50208`, :cve_nist:`2022-50209`, :cve_nist:`2022-50210`,
|
||||
:cve_nist:`2022-50211`, :cve_nist:`2022-50212`, :cve_nist:`2022-50213`, :cve_nist:`2022-50214`,
|
||||
:cve_nist:`2022-50215`, :cve_nist:`2022-50217`, :cve_nist:`2022-50218`, :cve_nist:`2022-50219`,
|
||||
:cve_nist:`2022-50220`, :cve_nist:`2022-50221`, :cve_nist:`2022-50222`, :cve_nist:`2022-50223`,
|
||||
:cve_nist:`2022-50224`, :cve_nist:`2022-50225`, :cve_nist:`2022-50226`, :cve_nist:`2022-50227`,
|
||||
:cve_nist:`2022-50228`, :cve_nist:`2022-50229`, :cve_nist:`2022-50231`, :cve_nist:`2024-26710`,
|
||||
:cve_nist:`2024-57976` and :cve_nist:`2024-58091`
|
||||
- linux-yocto/6.12: (cont.) Ignore :cve_nist:`2025-21817`, :cve_nist:`2025-22101`, :cve_nist:`2025-22112`,
|
||||
:cve_nist:`2025-22119`, :cve_nist:`2025-22122`, :cve_nist:`2025-22123`, :cve_nist:`2025-22128`,
|
||||
:cve_nist:`2025-23137`, :cve_nist:`2025-23155`, :cve_nist:`2025-37842`, :cve_nist:`2025-37855`,
|
||||
:cve_nist:`2025-38000`, :cve_nist:`2025-38001`, :cve_nist:`2025-38002`, :cve_nist:`2025-38003`,
|
||||
:cve_nist:`2025-38004`, :cve_nist:`2025-38005`, :cve_nist:`2025-38006`, :cve_nist:`2025-38007`,
|
||||
:cve_nist:`2025-38008`, :cve_nist:`2025-38009`, :cve_nist:`2025-38010`, :cve_nist:`2025-38011`,
|
||||
:cve_nist:`2025-38012`, :cve_nist:`2025-38013`, :cve_nist:`2025-38014`, :cve_nist:`2025-38015`,
|
||||
:cve_nist:`2025-38016`, :cve_nist:`2025-38017`, :cve_nist:`2025-38018`, :cve_nist:`2025-38019`,
|
||||
:cve_nist:`2025-38020`, :cve_nist:`2025-38021`, :cve_nist:`2025-38022`, :cve_nist:`2025-38023`,
|
||||
:cve_nist:`2025-38024`, :cve_nist:`2025-38025`, :cve_nist:`2025-38027`, :cve_nist:`2025-38028`,
|
||||
:cve_nist:`2025-38031`, :cve_nist:`2025-38032`, :cve_nist:`2025-38033`, :cve_nist:`2025-38034`,
|
||||
:cve_nist:`2025-38035`, :cve_nist:`2025-38037`, :cve_nist:`2025-38038`, :cve_nist:`2025-38039`,
|
||||
:cve_nist:`2025-38040`, :cve_nist:`2025-38043`, :cve_nist:`2025-38044`, :cve_nist:`2025-38045`,
|
||||
:cve_nist:`2025-38047`, :cve_nist:`2025-38048`, :cve_nist:`2025-38050`, :cve_nist:`2025-38051`,
|
||||
:cve_nist:`2025-38052`, :cve_nist:`2025-38053`, :cve_nist:`2025-38054`, :cve_nist:`2025-38055`,
|
||||
:cve_nist:`2025-38056`, :cve_nist:`2025-38057`, :cve_nist:`2025-38058`, :cve_nist:`2025-38059`,
|
||||
:cve_nist:`2025-38060`, :cve_nist:`2025-38061`, :cve_nist:`2025-38062`, :cve_nist:`2025-38063`,
|
||||
:cve_nist:`2025-38065`, :cve_nist:`2025-38066`, :cve_nist:`2025-38068`, :cve_nist:`2025-38069`,
|
||||
:cve_nist:`2025-38070`, :cve_nist:`2025-38071`, :cve_nist:`2025-38072`, :cve_nist:`2025-38073`,
|
||||
:cve_nist:`2025-38074`, :cve_nist:`2025-38075`, :cve_nist:`2025-38076`, :cve_nist:`2025-38077`,
|
||||
:cve_nist:`2025-38078`, :cve_nist:`2025-38079`, :cve_nist:`2025-38080`, :cve_nist:`2025-38081`,
|
||||
:cve_nist:`2025-38082`, :cve_nist:`2025-38083`, :cve_nist:`2025-38084`, :cve_nist:`2025-38085`,
|
||||
:cve_nist:`2025-38086`, :cve_nist:`2025-38087`, :cve_nist:`2025-38088`, :cve_nist:`2025-38089`,
|
||||
:cve_nist:`2025-38090`, :cve_nist:`2025-38091`, :cve_nist:`2025-38092`, :cve_nist:`2025-38093`,
|
||||
:cve_nist:`2025-38094`, :cve_nist:`2025-38095`, :cve_nist:`2025-38096`, :cve_nist:`2025-38097`,
|
||||
:cve_nist:`2025-38098`, :cve_nist:`2025-38099`, :cve_nist:`2025-38100`, :cve_nist:`2025-38101`,
|
||||
:cve_nist:`2025-38102`, :cve_nist:`2025-38103`, :cve_nist:`2025-38106`, :cve_nist:`2025-38107`,
|
||||
:cve_nist:`2025-38108`, :cve_nist:`2025-38109`, :cve_nist:`2025-38110`, :cve_nist:`2025-38111`,
|
||||
:cve_nist:`2025-38112`, :cve_nist:`2025-38113`, :cve_nist:`2025-38114`, :cve_nist:`2025-38115`,
|
||||
:cve_nist:`2025-38116`, :cve_nist:`2025-38117`, :cve_nist:`2025-38118`, :cve_nist:`2025-38119`,
|
||||
:cve_nist:`2025-38120`, :cve_nist:`2025-38121`, :cve_nist:`2025-38122`, :cve_nist:`2025-38123`,
|
||||
:cve_nist:`2025-38124`, :cve_nist:`2025-38125`, :cve_nist:`2025-38126`, :cve_nist:`2025-38127`,
|
||||
:cve_nist:`2025-38128`, :cve_nist:`2025-38129`, :cve_nist:`2025-38130`, :cve_nist:`2025-38131`,
|
||||
:cve_nist:`2025-38133`, :cve_nist:`2025-38134`, :cve_nist:`2025-38135`, :cve_nist:`2025-38136`,
|
||||
:cve_nist:`2025-38138`, :cve_nist:`2025-38139`, :cve_nist:`2025-38141`, :cve_nist:`2025-38142`,
|
||||
:cve_nist:`2025-38143`, :cve_nist:`2025-38144`, :cve_nist:`2025-38145`, :cve_nist:`2025-38146`,
|
||||
:cve_nist:`2025-38147`, :cve_nist:`2025-38148`, :cve_nist:`2025-38149`, :cve_nist:`2025-38150`,
|
||||
:cve_nist:`2025-38151`, :cve_nist:`2025-38153`, :cve_nist:`2025-38154`, :cve_nist:`2025-38155`,
|
||||
:cve_nist:`2025-38156`, :cve_nist:`2025-38157`, :cve_nist:`2025-38158`, :cve_nist:`2025-38159`,
|
||||
:cve_nist:`2025-38160`, :cve_nist:`2025-38161`, :cve_nist:`2025-38162`, :cve_nist:`2025-38163`,
|
||||
:cve_nist:`2025-38164`, :cve_nist:`2025-38165`, :cve_nist:`2025-38166`, :cve_nist:`2025-38167`,
|
||||
:cve_nist:`2025-38168`, :cve_nist:`2025-38169`, :cve_nist:`2025-38170`, :cve_nist:`2025-38171`,
|
||||
:cve_nist:`2025-38172`, :cve_nist:`2025-38173`, :cve_nist:`2025-38174`, :cve_nist:`2025-38175`,
|
||||
:cve_nist:`2025-38176`, :cve_nist:`2025-38177`, :cve_nist:`2025-38178`, :cve_nist:`2025-38179`,
|
||||
:cve_nist:`2025-38180`, :cve_nist:`2025-38181`, :cve_nist:`2025-38182`, :cve_nist:`2025-38183`,
|
||||
:cve_nist:`2025-38184`, :cve_nist:`2025-38185`, :cve_nist:`2025-38186`, :cve_nist:`2025-38188`,
|
||||
:cve_nist:`2025-38189`, :cve_nist:`2025-38190`, :cve_nist:`2025-38191`, :cve_nist:`2025-38192`,
|
||||
:cve_nist:`2025-38193`, :cve_nist:`2025-38194`, :cve_nist:`2025-38195`, :cve_nist:`2025-38196`,
|
||||
:cve_nist:`2025-38197`, :cve_nist:`2025-38198`, :cve_nist:`2025-38200`, :cve_nist:`2025-38201`,
|
||||
:cve_nist:`2025-38202`, :cve_nist:`2025-38208`, :cve_nist:`2025-38209`, :cve_nist:`2025-38210`,
|
||||
:cve_nist:`2025-38211`, :cve_nist:`2025-38212`, :cve_nist:`2025-38213`, :cve_nist:`2025-38214`,
|
||||
:cve_nist:`2025-38215`, :cve_nist:`2025-38216`, :cve_nist:`2025-38217`, :cve_nist:`2025-38218`,
|
||||
:cve_nist:`2025-38219`, :cve_nist:`2025-38220`, :cve_nist:`2025-38221`, :cve_nist:`2025-38222`,
|
||||
:cve_nist:`2025-38223`, :cve_nist:`2025-38224`, :cve_nist:`2025-38225`, :cve_nist:`2025-38226`,
|
||||
:cve_nist:`2025-38227`, :cve_nist:`2025-38228`, :cve_nist:`2025-38229`, :cve_nist:`2025-38230`,
|
||||
:cve_nist:`2025-38231`, :cve_nist:`2025-38232`, :cve_nist:`2025-38233`, :cve_nist:`2025-38235`,
|
||||
:cve_nist:`2025-38236`, :cve_nist:`2025-38238`, :cve_nist:`2025-38239`, :cve_nist:`2025-38241`,
|
||||
:cve_nist:`2025-38242`, :cve_nist:`2025-38243`, :cve_nist:`2025-38244`, :cve_nist:`2025-38245`,
|
||||
:cve_nist:`2025-38246`, :cve_nist:`2025-38247`, :cve_nist:`2025-38249`, :cve_nist:`2025-38250`,
|
||||
:cve_nist:`2025-38251`, :cve_nist:`2025-38252`, :cve_nist:`2025-38253`, :cve_nist:`2025-38254`,
|
||||
:cve_nist:`2025-38255`, :cve_nist:`2025-38256`, :cve_nist:`2025-38257`, :cve_nist:`2025-38258`,
|
||||
:cve_nist:`2025-38259`, :cve_nist:`2025-38260`, :cve_nist:`2025-38262`, :cve_nist:`2025-38263`,
|
||||
:cve_nist:`2025-38264`, :cve_nist:`2025-38265`, :cve_nist:`2025-38266`, :cve_nist:`2025-38267`,
|
||||
:cve_nist:`2025-38268`, :cve_nist:`2025-38269`, :cve_nist:`2025-38270`, :cve_nist:`2025-38271`,
|
||||
:cve_nist:`2025-38273`, :cve_nist:`2025-38274`, :cve_nist:`2025-38275`, :cve_nist:`2025-38276`,
|
||||
:cve_nist:`2025-38277`, :cve_nist:`2025-38278`, :cve_nist:`2025-38279`, :cve_nist:`2025-38280`,
|
||||
:cve_nist:`2025-38281`, :cve_nist:`2025-38282`, :cve_nist:`2025-38283`, :cve_nist:`2025-38285`,
|
||||
:cve_nist:`2025-38286`, :cve_nist:`2025-38287`, :cve_nist:`2025-38288`, :cve_nist:`2025-38289`,
|
||||
:cve_nist:`2025-38290`, :cve_nist:`2025-38291`, :cve_nist:`2025-38292`, :cve_nist:`2025-38293`,
|
||||
:cve_nist:`2025-38294`, :cve_nist:`2025-38295`, :cve_nist:`2025-38296`, :cve_nist:`2025-38297`,
|
||||
:cve_nist:`2025-38298`, :cve_nist:`2025-38299`, :cve_nist:`2025-38300`, :cve_nist:`2025-38301`,
|
||||
:cve_nist:`2025-38302`, :cve_nist:`2025-38303`, :cve_nist:`2025-38304`, :cve_nist:`2025-38305`,
|
||||
:cve_nist:`2025-38307`, :cve_nist:`2025-38308`, :cve_nist:`2025-38309`, :cve_nist:`2025-38310`,
|
||||
:cve_nist:`2025-38312`, :cve_nist:`2025-38313`, :cve_nist:`2025-38314`, :cve_nist:`2025-38315`,
|
||||
:cve_nist:`2025-38316`, :cve_nist:`2025-38317`, :cve_nist:`2025-38318`, :cve_nist:`2025-38319`,
|
||||
:cve_nist:`2025-38320`, :cve_nist:`2025-38321`, :cve_nist:`2025-38322`, :cve_nist:`2025-38323`,
|
||||
:cve_nist:`2025-38324`, :cve_nist:`2025-38325`, :cve_nist:`2025-38326`, :cve_nist:`2025-38327`,
|
||||
:cve_nist:`2025-38328`, :cve_nist:`2025-38329`, :cve_nist:`2025-38330`, :cve_nist:`2025-38331`,
|
||||
:cve_nist:`2025-38332`, :cve_nist:`2025-38333`, :cve_nist:`2025-38334`, :cve_nist:`2025-38336`,
|
||||
:cve_nist:`2025-38337`, :cve_nist:`2025-38338`, :cve_nist:`2025-38339`, :cve_nist:`2025-38340`,
|
||||
:cve_nist:`2025-38341`, :cve_nist:`2025-38342`, :cve_nist:`2025-38343`, :cve_nist:`2025-38344`,
|
||||
:cve_nist:`2025-38345`, :cve_nist:`2025-38346`, :cve_nist:`2025-38347` and :cve_nist:`2025-38348`
|
||||
- ncurses: Fix :cve_nist:`2025-6141`
|
||||
- python3: Fix :cve_nist:`2025-8194`
|
||||
- sqlite3: Fix :cve_nist:`2025-6965`
|
||||
- sudo: Fix :cve_nist:`2025-32462` and :cve_nist:`2025-32463`
|
||||
- webkitgtk: Fix :cve_nist:`2025-24223`, :cve_nist:`2025-31204`, :cve_nist:`2025-31205`,
|
||||
:cve_nist:`2025-31206`, :cve_nist:`2025-31215` and :cve_nist:`2025-31257`
|
||||
- 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-5.2.3
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- bind: upgrade to 9.20.11
|
||||
- binutils: stable 2.44 branch updates
|
||||
- bitbake: test/fetch: Switch u-boot based test to use our own mirror
|
||||
- bitbake: utils: Optimise signal/sigmask performance
|
||||
- build-appliance-image: Update to walnascar head revision
|
||||
- ca-certificates: correct the :term:`SRC_URI`
|
||||
- conf.py: improve SearchEnglish to handle terms with dots
|
||||
- dev-manual/start.rst: added missing command in Optimize your VHDX file using DiskPart
|
||||
- dev-manual/start.rst: mention that :term:`PERSISTENT_DIR` should be shared too
|
||||
- dev-manual/start.rst: remove basic setup for hash equivalence
|
||||
- dev-manual/start.rst: remove shared :term:`PERSISTENT_DIR` mentions
|
||||
- docs/variables.rst: remove references to obsolete tar packaging
|
||||
- git: upgrade to 2.49.1
|
||||
- glibc: stable 2.41 branch updates
|
||||
- gnutls: upgrade to 3.8.10
|
||||
- go: upgrade to 1.24.5
|
||||
- kea: set correct permissions for /var/run/kea
|
||||
- libpam: upgrade to 1.7.1
|
||||
- linux-yocto/6.12: riscv tune fragments
|
||||
- linux-yocto/6.12: riscv: Enable :term:`TUNE_FEATURES` based :term:`KERNEL_FEATURES`
|
||||
- linux-yocto/6.12: update to v6.12.38
|
||||
- linux-yocto/6.12: yaffs2: silence warnings
|
||||
- ltp: Skip semctl08 when __USE_TIME64_REDIRECTS is defined
|
||||
- ltp: backport patch to fix compilation error for Skylake -march=x86-64-v3
|
||||
- migration-guides: add release notes for 4.0.28, 5.0.11, 5.2.2
|
||||
- mingetty: fix do_package warning
|
||||
- mtools: upgrade to 4.0.49
|
||||
- openssl: upgrade to 3.4.2
|
||||
- orc: set :term:`CVE_PRODUCT`
|
||||
- overview-manual/concepts.rst: fix sayhello hardcoded bindir
|
||||
- overview-manual/concepts.rst: mention :term:`PERSISTENT_DIR` for user configuration
|
||||
- overview-manual/yp-intro.rst: fix broken link to article
|
||||
- poky.conf: bump version for 5.2.3
|
||||
- poky.yaml.in: increase minimum RAM from 8 to 32
|
||||
- python3: update CVE product
|
||||
- ref-manual/classes.rst: document the testexport class
|
||||
- ref-manual/classes.rst: drop obsolete QA errors
|
||||
- ref-manual/classes.rst: insane: drop cve_status_not_in_db
|
||||
- ref-manual/structure.rst: remove shared :term:`PERSISTENT_DIR` mentions
|
||||
- ref-manual/structure.rst: update with info on :term:`PERSISTENT_DIR`
|
||||
- ref-manual/system-requirements.rst: update supported distributions
|
||||
- ref-manual/variables.rst: document :term:`SPL_DTB_BINARY`
|
||||
- ref-manual/variables.rst: document the :term:`FIT_CONF_PREFIX` variable
|
||||
- ruby-ptest: some ptest fixes
|
||||
- ruby: upgrade to 3.4.4
|
||||
- rust: Fix malformed hunk header in rustix patch
|
||||
- scripts/install-buildtools: Update to 5.2.2
|
||||
- sudo: upgrade to 1.9.17p1
|
||||
- test-manual/understand-autobuilder.rst: mention hashequiv server
|
||||
- webkitgtk: Fix build break on non-arm/non-x86 systems
|
||||
- webkitgtk: Use gcc to compile for arm target
|
||||
- webkitgtk: upgrade to 2.48.2
|
||||
- xserver-xorg: upgrade to 21.1.18
|
||||
|
||||
|
||||
Known Issues in Yocto-5.2.3
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- N/A
|
||||
|
||||
Contributors to Yocto-5.2.3
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
- Aleksandar Nikolic
|
||||
- Antonin Godard
|
||||
- Archana Polampalli
|
||||
- Bruce Ashfield
|
||||
- Changqing Li
|
||||
- Chen Qi
|
||||
- Deepesh Varatharajan
|
||||
- Divya Chellam
|
||||
- Enrico Jörns
|
||||
- Erik Lindsten
|
||||
- Gyorgy Sarvari
|
||||
- Hongxu Jia
|
||||
- Jiaying Song
|
||||
- Jinfeng Wang
|
||||
- Khem Raj
|
||||
- Lee Chee Yang
|
||||
- Marco Cavallini
|
||||
- Mark Hatle
|
||||
- Peter Marko
|
||||
- Praveen Kumar
|
||||
- Richard Purdie
|
||||
- Robert P. J. Day
|
||||
- Steve Sakoman
|
||||
- Vijay Anusuri
|
||||
- Wang Mingyu
|
||||
- Yash Shinde
|
||||
- Yi Zhao
|
||||
- Yogesh Tyagi
|
||||
- Yogita Urade
|
||||
- Zhang Peng
|
||||
|
||||
Repositories / Downloads for Yocto-5.2.3
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
poky
|
||||
|
||||
- Repository Location: :yocto_git:`/poky`
|
||||
- Branch: :yocto_git:`walnascar </poky/log/?h=walnascar>`
|
||||
- Tag: :yocto_git:`yocto-5.2.3 </poky/log/?h=yocto-5.2.3>`
|
||||
- Git Revision: :yocto_git:`db04028d9070f05c3b5dee728473fb234bd24f05 </poky/commit/?id=db04028d9070f05c3b5dee728473fb234bd24f05>`
|
||||
- Release Artefact: poky-db04028d9070f05c3b5dee728473fb234bd24f05
|
||||
- sha: 32e1d457d5de0041ee423727b5690fbde58c485a42b8ed81ecebb7bb2d8c58cc
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-5.2.3/poky-db04028d9070f05c3b5dee728473fb234bd24f05.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-5.2.3/poky-db04028d9070f05c3b5dee728473fb234bd24f05.tar.bz2
|
||||
|
||||
openembedded-core
|
||||
|
||||
- Repository Location: :oe_git:`/openembedded-core`
|
||||
- Branch: :oe_git:`walnascar </openembedded-core/log/?h=walnascar>`
|
||||
- Tag: :oe_git:`yocto-5.2.3 </openembedded-core/log/?h=yocto-5.2.3>`
|
||||
- Git Revision: :oe_git:`347cb0861dde58613541ce692778f907943a60ea </openembedded-core/commit/?id=347cb0861dde58613541ce692778f907943a60ea>`
|
||||
- Release Artefact: oecore-347cb0861dde58613541ce692778f907943a60ea
|
||||
- sha: 88cbb79f7bc2de9d931cfa1092463005189972d4584cdae1562621df79f09fbd
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-5.2.3/oecore-347cb0861dde58613541ce692778f907943a60ea.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-5.2.3/oecore-347cb0861dde58613541ce692778f907943a60ea.tar.bz2
|
||||
|
||||
meta-mingw
|
||||
|
||||
- Repository Location: :yocto_git:`/meta-mingw`
|
||||
- Branch: :yocto_git:`walnascar </meta-mingw/log/?h=walnascar>`
|
||||
- Tag: :yocto_git:`yocto-5.2.3 </meta-mingw/log/?h=yocto-5.2.3>`
|
||||
- Git Revision: :yocto_git:`edce693e1b8fabd84651aa6c0888aafbcf238577 </meta-mingw/commit/?id=edce693e1b8fabd84651aa6c0888aafbcf238577>`
|
||||
- Release Artefact: meta-mingw-edce693e1b8fabd84651aa6c0888aafbcf238577
|
||||
- sha: 6cfed41b54f83da91a6cf201ec1c2cd4ac284f642b1268c8fa89d2335ea2bce1
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-5.2.3/meta-mingw-edce693e1b8fabd84651aa6c0888aafbcf238577.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-5.2.3/meta-mingw-edce693e1b8fabd84651aa6c0888aafbcf238577.tar.bz2
|
||||
|
||||
bitbake
|
||||
|
||||
- Repository Location: :oe_git:`/bitbake`
|
||||
- Branch: :oe_git:`2.12 </bitbake/log/?h=2.12>`
|
||||
- Tag: :oe_git:`yocto-5.2.3 </bitbake/log/?h=yocto-5.2.3>`
|
||||
- Git Revision: :oe_git:`710f98844ae30416bdf6a01b655df398b49574ec </bitbake/commit/?id=710f98844ae30416bdf6a01b655df398b49574ec>`
|
||||
- Release Artefact: bitbake-710f98844ae30416bdf6a01b655df398b49574ec
|
||||
- sha: e30aa4739e3104634184b1dd7d5502f0994a725daec15929c4adf1164aa1296d
|
||||
- Download Locations:
|
||||
https://downloads.yoctoproject.org/releases/yocto/yocto-5.2.3/bitbake-710f98844ae30416bdf6a01b655df398b49574ec.tar.bz2
|
||||
https://mirrors.kernel.org/yocto/yocto/yocto-5.2.3/bitbake-710f98844ae30416bdf6a01b655df398b49574ec.tar.bz2
|
||||
|
||||
meta-yocto
|
||||
|
||||
- Repository Location: :yocto_git:`/meta-yocto`
|
||||
- Branch: :yocto_git:`walnascar </meta-yocto/log/?h=walnascar>`
|
||||
- Tag: :yocto_git:`yocto-5.2.3 </meta-yocto/log/?h=yocto-5.2.3>`
|
||||
- Git Revision: :yocto_git:`ce011415ab4e583a4545cd91aceff4190225f31d </meta-yocto/commit/?id=ce011415ab4e583a4545cd91aceff4190225f31d>`
|
||||
|
||||
yocto-docs
|
||||
|
||||
- Repository Location: :yocto_git:`/yocto-docs`
|
||||
- Branch: :yocto_git:`walnascar </yocto-docs/log/?h=walnascar>`
|
||||
- Tag: :yocto_git:`yocto-5.2.3 </yocto-docs/log/?h=yocto-5.2.3>`
|
||||
- Git Revision: :yocto_git:`e664a70adb5bc19041b3b5f553fb90dcddff99d0 </yocto-docs/commit/?id=e664a70adb5bc19041b3b5f553fb90dcddff99d0>`
|
||||
|
||||
@@ -4224,6 +4224,12 @@ system and gives an overview of their function and contents.
|
||||
added to the image by using the :term:`IMAGE_ROOTFS_EXTRA_SPACE`
|
||||
variable.
|
||||
|
||||
When using Wic tool, beware that a second overhead factor is also applied.
|
||||
This overhead value is defined by the ``--overhead-factor`` option, which
|
||||
defaults to "1.3" when omitted. See the
|
||||
:ref:`ref-manual/kickstart:command: part or partition` chapter in
|
||||
:doc:`/ref-manual/kickstart` for details.
|
||||
|
||||
:term:`IMAGE_PKGTYPE`
|
||||
Defines the package type (i.e. DEB, RPM or IPK) used by the
|
||||
OpenEmbedded build system. The variable is defined appropriately by
|
||||
|
||||
@@ -56,9 +56,10 @@ project:
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
main()
|
||||
int main()
|
||||
{
|
||||
printf("Hello World!\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
- ``configure.ac``::
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
DISTRO = "poky"
|
||||
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
|
||||
DISTRO_VERSION = "5.2.3"
|
||||
DISTRO_VERSION = "5.2.4"
|
||||
DISTRO_CODENAME = "walnascar"
|
||||
SDK_VENDOR = "-pokysdk"
|
||||
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
|
||||
|
||||
@@ -28,3 +28,4 @@ sgx:x:528:
|
||||
ptest:x:529:
|
||||
xuser:x:530:
|
||||
seat:x:531:
|
||||
audio:x:532:
|
||||
|
||||
@@ -396,6 +396,7 @@ def rust_gen_target(d, thing, wd, arch):
|
||||
tspec['linker-is-gnu'] = True
|
||||
tspec['linker-flavor'] = "gcc"
|
||||
tspec['has-rpath'] = True
|
||||
tspec['has-thread-local'] = True
|
||||
tspec['position-independent-executables'] = True
|
||||
tspec['panic-strategy'] = d.getVar("RUST_PANIC_STRATEGY")
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ python __anonymous() {
|
||||
}
|
||||
|
||||
systemd_postinst() {
|
||||
if systemctl >/dev/null 2>/dev/null; then
|
||||
if type systemctl >/dev/null 2>/dev/null; then
|
||||
OPTS=""
|
||||
|
||||
if [ -n "$D" ]; then
|
||||
@@ -46,7 +46,7 @@ if systemctl >/dev/null 2>/dev/null; then
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -z "$D" ]; then
|
||||
if [ -z "$D" ] && systemctl >/dev/null 2>/dev/null; then
|
||||
# Reload only system service manager
|
||||
# --global for daemon-reload is not supported: https://github.com/systemd/systemd/issues/19284
|
||||
systemctl daemon-reload
|
||||
@@ -66,8 +66,8 @@ fi
|
||||
}
|
||||
|
||||
systemd_prerm() {
|
||||
if systemctl >/dev/null 2>/dev/null; then
|
||||
if [ -z "$D" ]; then
|
||||
if type systemctl >/dev/null 2>/dev/null; then
|
||||
if [ -z "$D" ] && systemctl >/dev/null 2>/dev/null; then
|
||||
if [ -n "${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}" ]; then
|
||||
systemctl stop ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}
|
||||
systemctl disable ${@systemd_filter_services("${SYSTEMD_SERVICE_ESCAPED}", False, d)}
|
||||
|
||||
@@ -62,4 +62,4 @@ KERNEL_IMAGETYPES ??= "${KERNEL_IMAGETYPE}"
|
||||
# fetch from the network (and warn you if not). To disable the test set
|
||||
# the variable to be empty.
|
||||
# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=master;branch=master
|
||||
CONNECTIVITY_CHECK_URIS ?= "https://yoctoproject.org/connectivity.html"
|
||||
CONNECTIVITY_CHECK_URIS ?= "https://www.yoctoproject.org/connectivity.html"
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
# to the distro running on the build machine.
|
||||
#
|
||||
|
||||
UNINATIVE_MAXGLIBCVERSION = "2.41"
|
||||
UNINATIVE_VERSION = "4.7"
|
||||
UNINATIVE_MAXGLIBCVERSION = "2.42"
|
||||
UNINATIVE_VERSION = "4.9"
|
||||
|
||||
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/${UNINATIVE_VERSION}/"
|
||||
UNINATIVE_CHECKSUM[aarch64] ?= "ac440e4fc80665c79f9718c665c6e28d771e51609c088c3c97ba3ad5cfed197a"
|
||||
UNINATIVE_CHECKSUM[i686] ?= "c5efa31450f3bbd63ea961d4e7c747ae41317937d429f65e1d5cf2050338e27a"
|
||||
UNINATIVE_CHECKSUM[x86_64] ?= "5800d4e9a129d1be09cf548918d25f74e91a7c1193ae5239d5b0c9246c486d2c"
|
||||
UNINATIVE_CHECKSUM[aarch64] ?= "812045d826b7fda88944055e8526b95a5a9440bfef608d5b53fd52faab49bf85"
|
||||
UNINATIVE_CHECKSUM[i686] ?= "5cc28efd0c15a75de4bcb147c6cce65f1c1c9d442173a220f08427f40a3ffa09"
|
||||
UNINATIVE_CHECKSUM[x86_64] ?= "4c03d1ed2b7b4e823aca4a1a23d8f2e322f1770fc10e859adcede5777aff4f3a"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# See sanity.bbclass
|
||||
#
|
||||
# Expert users can confirm their sanity with "touch conf/sanity.conf"
|
||||
BB_MIN_VERSION = "2.12.0"
|
||||
BB_MIN_VERSION = "2.12.1"
|
||||
|
||||
SANITY_ABIFILE = "${TMPDIR}/abi_version"
|
||||
|
||||
|
||||
@@ -173,8 +173,8 @@ class ManifestVisitor(LicenseVisitor):
|
||||
LicenseVisitor.__init__(self)
|
||||
|
||||
def visit(self, node):
|
||||
if isinstance(node, ast.Str):
|
||||
lic = node.s
|
||||
if isinstance(node, ast.Constant):
|
||||
lic = node.value
|
||||
|
||||
if license_ok(self._canonical_license(self._d, lic),
|
||||
self._dont_want_licenses) == True:
|
||||
|
||||
@@ -5,10 +5,11 @@
|
||||
#
|
||||
|
||||
import subprocess
|
||||
import multiprocessing
|
||||
import traceback
|
||||
import errno
|
||||
|
||||
from bb import multiprocessing
|
||||
|
||||
def read_file(filename):
|
||||
try:
|
||||
f = open( filename, "r" )
|
||||
|
||||
@@ -15,8 +15,8 @@ class HTTPTests(OESDKTestCase):
|
||||
"""
|
||||
|
||||
def test_wget(self):
|
||||
self._run('env -i wget --debug --output-document /dev/null https://yoctoproject.org/connectivity.html')
|
||||
self._run('env -i wget --debug --output-document /dev/null https://www.yoctoproject.org/connectivity.html')
|
||||
|
||||
def test_python(self):
|
||||
# urlopen() returns a file-like object on success and throws an exception otherwise
|
||||
self._run('python3 -c \'import urllib.request; urllib.request.urlopen("https://yoctoproject.org/connectivity.html")\'')
|
||||
self._run('python3 -c \'import urllib.request; urllib.request.urlopen("https://www.yoctoproject.org/connectivity.html")\'')
|
||||
|
||||
74
meta/recipes-bsp/grub/files/CVE-2024-56738.patch
Normal file
74
meta/recipes-bsp/grub/files/CVE-2024-56738.patch
Normal file
@@ -0,0 +1,74 @@
|
||||
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>
|
||||
---
|
||||
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 396f76410..19db7870a 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 31c87c302..20ad4c5f7 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.43.0
|
||||
@@ -36,6 +36,7 @@ SRC_URI = "${GNU_MIRROR}/grub/grub-${PV}.tar.gz \
|
||||
file://CVE-2024-45778_CVE-2024-45779.patch \
|
||||
file://CVE-2025-0677_CVE-2025-0684_CVE-2025-0685_CVE-2025-0686_CVE-2025-0689.patch \
|
||||
file://CVE-2025-0678_CVE-2025-1125.patch \
|
||||
file://CVE-2024-56738.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "b30919fa5be280417c17ac561bb1650f60cfb80cc6237fa1e2b6f56154cb9c91"
|
||||
@@ -43,6 +44,7 @@ SRC_URI[sha256sum] = "b30919fa5be280417c17ac561bb1650f60cfb80cc6237fa1e2b6f56154
|
||||
CVE_STATUS[CVE-2019-14865] = "not-applicable-platform: applies only to RHEL"
|
||||
CVE_STATUS[CVE-2023-4001] = "not-applicable-platform: Applies only to RHEL/Fedora"
|
||||
CVE_STATUS[CVE-2024-1048] = "not-applicable-platform: Applies only to RHEL/Fedora"
|
||||
CVE_STATUS[CVE-2024-2312] = "not-applicable-platform: Applies only to Ubuntu"
|
||||
|
||||
DEPENDS = "flex-native bison-native gettext-native"
|
||||
|
||||
|
||||
@@ -5,16 +5,16 @@ export BB_ENV_PASSTHROUGH_ADDITIONS="${BB_ENV_PASSTHROUGH_ADDITIONS:-} OPENSSL_C
|
||||
|
||||
# Respect host env SSL_CERT_FILE/SSL_CERT_DIR first, then auto-detected host cert, then cert in buildtools
|
||||
# CAFILE/CAPATH is auto-deteced when source buildtools
|
||||
if [ -z "$SSL_CERT_FILE" ]; then
|
||||
if [ -n "$CAFILE" ];then
|
||||
if [ -z "${SSL_CERT_FILE:-}" ]; then
|
||||
if [ -n "${CAFILE:-}" ];then
|
||||
export SSL_CERT_FILE="$CAFILE"
|
||||
elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
|
||||
export SSL_CERT_FILE="$OECORE_NATIVE_SYSROOT/usr/lib/ssl-3/certs/ca-certificates.crt"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$SSL_CERT_DIR" ]; then
|
||||
if [ -n "$CAPATH" ];then
|
||||
if [ -z "${SSL_CERT_DIR:-}" ]; then
|
||||
if [ -n "${CAPATH:-}" ];then
|
||||
export SSL_CERT_DIR="$CAPATH"
|
||||
elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
|
||||
export SSL_CERT_DIR="$OECORE_NATIVE_SYSROOT/usr/lib/ssl-3/certs"
|
||||
|
||||
@@ -15,7 +15,7 @@ SRC_URI = "${GITHUB_BASE_URI}/download/R_${VERSION_TAG}/expat-${PV}.tar.bz2 \
|
||||
GITHUB_BASE_URI = "https://github.com/libexpat/libexpat/releases/"
|
||||
UPSTREAM_CHECK_REGEX = "releases/tag/R_(?P<pver>.+)"
|
||||
|
||||
SRC_URI[sha256sum] = "45c98ae1e9b5127325d25186cf8c511fa814078e9efeae7987a574b482b79b3d"
|
||||
SRC_URI[sha256sum] = "976f6c2d358953c22398d64cd93790ba5abc62e02a1bbc204a3a264adea149b8"
|
||||
|
||||
EXTRA_OECMAKE:class-native += "-DEXPAT_BUILD_DOCS=OFF"
|
||||
|
||||
@@ -17,7 +17,7 @@ diff --git a/meson.build b/meson.build
|
||||
index a8bcadc..041b68e 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -2075,7 +2075,7 @@ atomicdefine = '''
|
||||
@@ -2077,7 +2077,7 @@ atomicdefine = '''
|
||||
# We know that we can always use real ("lock free") atomic operations with MSVC
|
||||
if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' or cc.links(atomictest, name : 'atomic ops')
|
||||
have_atomic_lock_free = true
|
||||
|
||||
@@ -17,7 +17,7 @@ diff --git a/meson.build b/meson.build
|
||||
index 041b68e..155bfd4 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -1073,7 +1073,8 @@ if cc.links('''#include <sys/syscall.h>
|
||||
@@ -1075,7 +1075,8 @@ if cc.links('''#include <sys/syscall.h>
|
||||
waitid (P_PIDFD, 0, &child_info, WEXITED | WNOHANG);
|
||||
return 0;
|
||||
}''', name : 'pidfd_open(2) system call')
|
||||
|
||||
97
meta/recipes-core/glib-2.0/files/CVE-2025-6052-1.patch
Normal file
97
meta/recipes-core/glib-2.0/files/CVE-2025-6052-1.patch
Normal file
@@ -0,0 +1,97 @@
|
||||
From 6aa97beda32bb337370858862f4efe2f3372619f Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||
Date: Mon, 7 Jul 2025 20:52:24 +0200
|
||||
Subject: [PATCH] gstring: Fix g_string_sized_new segmentation fault
|
||||
|
||||
If glib is compiled with -Dglib_assert=false, i.e. no asserts
|
||||
enabled, then g_string_sized_new(G_MAXSIZE) leads to a segmentation
|
||||
fault due to an out of boundary write.
|
||||
|
||||
This happens because the overflow check was moved into
|
||||
g_string_maybe_expand which is not called by g_string_sized_new.
|
||||
|
||||
By assuming that string->allocated_len is always larger than
|
||||
string->len (and the code would be in huge trouble if that is not true),
|
||||
the G_UNLIKELY check in g_string_maybe_expand can be rephrased to
|
||||
avoid a potential G_MAXSIZE overflow.
|
||||
|
||||
This in turn leads to 150-200 bytes smaller compiled library
|
||||
depending on gcc and clang versions, and one less check for the most
|
||||
common code paths.
|
||||
|
||||
Reverts https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4655 and
|
||||
reorders internal g_string_maybe_expand check to still fix
|
||||
CVE-2025-6052.
|
||||
|
||||
CVE: CVE-2025-6052
|
||||
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/6aa97beda32bb337370858862f4efe2f3372619f]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
glib/gstring.c | 10 +++++-----
|
||||
glib/tests/string.c | 18 ++++++++++++++++++
|
||||
2 files changed, 23 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/glib/gstring.c b/glib/gstring.c
|
||||
index 010a8e976..24c4bfb40 100644
|
||||
--- a/glib/gstring.c
|
||||
+++ b/glib/gstring.c
|
||||
@@ -68,6 +68,10 @@ static void
|
||||
g_string_expand (GString *string,
|
||||
gsize len)
|
||||
{
|
||||
+ /* Detect potential overflow */
|
||||
+ if G_UNLIKELY ((G_MAXSIZE - string->len - 1) < len)
|
||||
+ g_error ("adding %" G_GSIZE_FORMAT " to string would overflow", len);
|
||||
+
|
||||
string->allocated_len = g_nearest_pow (string->len + len + 1);
|
||||
/* If the new size is bigger than G_MAXSIZE / 2, only allocate enough
|
||||
* memory for this string and don't over-allocate.
|
||||
@@ -82,11 +86,7 @@ static inline void
|
||||
g_string_maybe_expand (GString *string,
|
||||
gsize len)
|
||||
{
|
||||
- /* Detect potential overflow */
|
||||
- if G_UNLIKELY ((G_MAXSIZE - string->len - 1) < len)
|
||||
- g_error ("adding %" G_GSIZE_FORMAT " to string would overflow", len);
|
||||
-
|
||||
- if (G_UNLIKELY (string->len + len >= string->allocated_len))
|
||||
+ if (G_UNLIKELY (len >= string->allocated_len - string->len))
|
||||
g_string_expand (string, len);
|
||||
}
|
||||
|
||||
diff --git a/glib/tests/string.c b/glib/tests/string.c
|
||||
index aa363c57a..e3bc4a02e 100644
|
||||
--- a/glib/tests/string.c
|
||||
+++ b/glib/tests/string.c
|
||||
@@ -767,6 +767,23 @@ test_string_new_take_null (void)
|
||||
g_string_free (g_steal_pointer (&string), TRUE);
|
||||
}
|
||||
|
||||
+static void
|
||||
+test_string_sized_new (void)
|
||||
+{
|
||||
+
|
||||
+ if (g_test_subprocess ())
|
||||
+ {
|
||||
+ GString *string = g_string_sized_new (G_MAXSIZE);
|
||||
+ g_string_free (string, TRUE);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ g_test_trap_subprocess (NULL, 0, G_TEST_SUBPROCESS_DEFAULT);
|
||||
+ g_test_trap_assert_failed ();
|
||||
+ g_test_trap_assert_stderr ("*string would overflow*");
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
int
|
||||
main (int argc,
|
||||
char *argv[])
|
||||
@@ -796,6 +813,7 @@ main (int argc,
|
||||
g_test_add_func ("/string/test-string-steal", test_string_steal);
|
||||
g_test_add_func ("/string/test-string-new-take", test_string_new_take);
|
||||
g_test_add_func ("/string/test-string-new-take/null", test_string_new_take_null);
|
||||
+ g_test_add_func ("/string/sized-new", test_string_sized_new);
|
||||
|
||||
return g_test_run();
|
||||
}
|
||||
35
meta/recipes-core/glib-2.0/files/CVE-2025-6052-2.patch
Normal file
35
meta/recipes-core/glib-2.0/files/CVE-2025-6052-2.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
From 3752760c5091eaed561ec11636b069e529533514 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||
Date: Mon, 7 Jul 2025 20:57:41 +0200
|
||||
Subject: [PATCH] gstring: Improve g_string_append_len_inline checks
|
||||
|
||||
Use the same style for the G_LIKELY check here as in g_string_sized_new.
|
||||
The check could overflow on 32 bit systems.
|
||||
|
||||
Also improve the memcpy/memmove check to use memcpy if val itself is
|
||||
adjacent to end + len_unsigned, which means that no overlapping exists.
|
||||
|
||||
CVE: CVE-2025-6052
|
||||
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/3752760c5091eaed561ec11636b069e529533514]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
glib/gstring.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/glib/gstring.h b/glib/gstring.h
|
||||
index e817176c9..c5e64b33a 100644
|
||||
--- a/glib/gstring.h
|
||||
+++ b/glib/gstring.h
|
||||
@@ -232,10 +232,10 @@ g_string_append_len_inline (GString *gstring,
|
||||
else
|
||||
len_unsigned = (gsize) len;
|
||||
|
||||
- if (G_LIKELY (gstring->len + len_unsigned < gstring->allocated_len))
|
||||
+ if (G_LIKELY (len_unsigned < gstring->allocated_len - gstring->len))
|
||||
{
|
||||
char *end = gstring->str + gstring->len;
|
||||
- if (G_LIKELY (val + len_unsigned <= end || val > end + len_unsigned))
|
||||
+ if (G_LIKELY (val + len_unsigned <= end || val >= end + len_unsigned))
|
||||
memcpy (end, val, len_unsigned);
|
||||
else
|
||||
memmove (end, val, len_unsigned);
|
||||
@@ -1,75 +0,0 @@
|
||||
From aee0664e6f1a29e0d5f301979f6d168b08435a61 Mon Sep 17 00:00:00 2001
|
||||
From: Philip Withnall <pwithnall@gnome.org>
|
||||
Date: Mon, 10 Mar 2025 15:21:15 +0000
|
||||
Subject: [PATCH] girparser: Ignore new doc:format element in GIR files
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
As of gobject-introspection 1.83.2, a new `<doc:format name="…"/>`
|
||||
element is supported (as a child of `<repository>`) in GIR files.
|
||||
|
||||
For the moment, this information isn’t needed in libgirepository — but
|
||||
the GIR parser does have to know about the element in order to not throw
|
||||
an error claiming it’s invalid.
|
||||
|
||||
This is a slightly tweaked version of the code added to
|
||||
gobject-introspection.git in commit
|
||||
9544cd6c962fab2c3203898779948309833e2439 by Corentin Noël
|
||||
<corentin.noel@collabora.com>, reformatted slightly to fit in with
|
||||
GLib’s style guidelines.
|
||||
|
||||
This is backwards compatible and does not require a new
|
||||
gobject-introspection version.
|
||||
|
||||
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
|
||||
|
||||
Fixes: #3634
|
||||
|
||||
Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/commit/aee0664e6f1a29e0d5f301979f6d168b08435a61.patch]
|
||||
|
||||
Signed-off-by: Markus Volk <f_l_k@t-online.de>
|
||||
---
|
||||
girepository/girparser.c | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/girepository/girparser.c b/girepository/girparser.c
|
||||
index 63143718d9..be88d871a4 100644
|
||||
--- a/girepository/girparser.c
|
||||
+++ b/girepository/girparser.c
|
||||
@@ -107,7 +107,8 @@ typedef enum
|
||||
STATE_ALIAS,
|
||||
STATE_TYPE,
|
||||
STATE_ATTRIBUTE,
|
||||
- STATE_PASSTHROUGH
|
||||
+ STATE_PASSTHROUGH,
|
||||
+ STATE_DOC_FORMAT, /* 35 */
|
||||
} ParseState;
|
||||
|
||||
typedef struct _ParseContext ParseContext;
|
||||
@@ -3159,6 +3160,11 @@ start_element_handler (GMarkupParseContext *context,
|
||||
state_switch (ctx, STATE_PASSTHROUGH);
|
||||
goto out;
|
||||
}
|
||||
+ else if (strcmp ("doc:format", element_name) == 0)
|
||||
+ {
|
||||
+ state_switch (ctx, STATE_DOC_FORMAT);
|
||||
+ goto out;
|
||||
+ }
|
||||
break;
|
||||
|
||||
case 'e':
|
||||
@@ -3843,6 +3849,10 @@ end_element_handler (GMarkupParseContext *context,
|
||||
state_switch (ctx, ctx->prev_state);
|
||||
}
|
||||
break;
|
||||
+ case STATE_DOC_FORMAT:
|
||||
+ if (require_end_element (context, ctx, "doc:format", element_name, error))
|
||||
+ state_switch (ctx, STATE_REPOSITORY);
|
||||
+ break;
|
||||
|
||||
case STATE_PASSTHROUGH:
|
||||
ctx->unknown_depth -= 1;
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -229,13 +229,14 @@ SRC_URI = "${GNOME_MIRROR}/glib/${SHRT_VER}/glib-${PV}.tar.xz \
|
||||
file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
|
||||
file://0010-Do-not-hardcode-python-path-into-various-tools.patch \
|
||||
file://skip-timeout.patch \
|
||||
file://aee0664e6f1a29e0d5f301979f6d168b08435a61.patch \
|
||||
file://CVE-2025-6052-1.patch \
|
||||
file://CVE-2025-6052-2.patch \
|
||||
"
|
||||
SRC_URI:append:class-native = " file://relocate-modules.patch \
|
||||
SRC_URI:append:class-native = " file://relocate-modules.patch \
|
||||
file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "f8823600cb85425e2815cfad82ea20fdaa538482ab74e7293d58b3f64a5aff6a"
|
||||
SRC_URI[sha256sum] = "8a9ea10943c36fc117e253f80c91e477b673525ae45762942858aef57631bb90"
|
||||
|
||||
# Find any meson cross files in FILESPATH that are relevant for the current
|
||||
# build (using siteinfo) and add them to EXTRA_OEMESON.
|
||||
|
||||
@@ -26,7 +26,7 @@ inherit core-image setuptools3 features_check
|
||||
|
||||
REQUIRED_DISTRO_FEATURES += "xattr"
|
||||
|
||||
SRCREV ?= "675e3f2e3cd3ae2df67568d68c359b88c3860499"
|
||||
SRCREV ?= "316baad50b45319057753fa698cd74aeb49a0a9f"
|
||||
SRC_URI = "git://git.yoctoproject.org/poky;branch=walnascar \
|
||||
file://Yocto_Build_Appliance.vmx \
|
||||
file://Yocto_Build_Appliance.vmxf \
|
||||
|
||||
@@ -390,7 +390,7 @@ def update_db_fkie(conn, jsondata):
|
||||
|
||||
for config in elt['configurations']:
|
||||
# This is suboptimal as it doesn't handle AND/OR and negate, but is better than nothing
|
||||
for node in config["nodes"]:
|
||||
for node in config.get("nodes") or []:
|
||||
parse_node_and_insert(conn, node, cveId, False)
|
||||
|
||||
|
||||
|
||||
@@ -1,16 +1,27 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/systemd:"
|
||||
|
||||
SUMMARY = "Systemctl executable from systemd"
|
||||
|
||||
require systemd.inc
|
||||
|
||||
DEPENDS = "gperf-native libcap-native util-linux-native python3-jinja2-native"
|
||||
|
||||
SRC_URI += "file://0001-systemctl-Call-systemd-sysv-install-without-path.patch"
|
||||
SRC_URI += "file://0002-implment-systemd-sysv-install-for-OE.patch"
|
||||
|
||||
inherit pkgconfig meson native
|
||||
|
||||
MESON_TARGET = "systemctl:executable"
|
||||
MESON_INSTALL_TAGS = "systemctl"
|
||||
EXTRA_OEMESON:append = " -Dlink-systemctl-shared=false"
|
||||
EXTRA_OEMESON += "-Dlink-systemctl-shared=false"
|
||||
|
||||
# Systemctl is supposed to operate on target, but the target sysroot is not
|
||||
# determined at run-time, but rather set during configure
|
||||
# More details are here https://github.com/systemd/systemd/issues/35897#issuecomment-2665405887
|
||||
EXTRA_OEMESON:append = " --sysconfdir ${sysconfdir_native}"
|
||||
EXTRA_OEMESON += "--sysconfdir ${sysconfdir_native}"
|
||||
|
||||
do_install:append() {
|
||||
# Install systemd-sysv-install in /usr/bin rather than /usr/lib/systemd
|
||||
# (where it is normally installed) so systemctl can find it in $PATH.
|
||||
install -Dm 0755 ${S}/src/systemctl/systemd-sysv-install.SKELETON ${D}${bindir}/systemd-sysv-install
|
||||
}
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
From 34c8551a8b16bf235a1ebe8d9cb1a3474a7c975e Mon Sep 17 00:00:00 2001
|
||||
From: Peter Kjellerstedt <pkj@axis.com>
|
||||
Date: Fri, 22 Aug 2025 18:07:28 +0200
|
||||
Subject: [PATCH] systemctl: Call systemd-sysv-install without path
|
||||
|
||||
Expect to find systemd-sysv-install in $PATH instead of hardcoding the
|
||||
path to it, as the latter does not work when running systemctl from a
|
||||
recipe sysroot.
|
||||
|
||||
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
|
||||
Upstream-Status: Inappropriate [OE specific]
|
||||
---
|
||||
src/systemctl/systemctl-sysv-compat.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/systemctl/systemctl-sysv-compat.c b/src/systemctl/systemctl-sysv-compat.c
|
||||
index cb9c43e3dc..e44ef9f64e 100644
|
||||
--- a/src/systemctl/systemctl-sysv-compat.c
|
||||
+++ b/src/systemctl/systemctl-sysv-compat.c
|
||||
@@ -140,7 +140,7 @@ int enable_sysv_units(const char *verb, char **args) {
|
||||
while (args[f]) {
|
||||
|
||||
const char *argv[] = {
|
||||
- LIBEXECDIR "/systemd-sysv-install",
|
||||
+ "systemd-sysv-install",
|
||||
NULL, /* --root= */
|
||||
NULL, /* verb */
|
||||
NULL, /* service */
|
||||
@@ -218,7 +218,7 @@ int enable_sysv_units(const char *verb, char **args) {
|
||||
return j;
|
||||
if (j == 0) {
|
||||
/* Child */
|
||||
- execv(argv[0], (char**) argv);
|
||||
+ execvp(argv[0], (char**) argv);
|
||||
log_error_errno(errno, "Failed to execute %s: %m", argv[0]);
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
From fab8c573d06340868f070446118673b1c23584c5 Mon Sep 17 00:00:00 2001
|
||||
From 4a5602ede9881fd8e578a3c8bc40dd5df7c4d802 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Sat, 5 Sep 2015 06:31:47 +0000
|
||||
Subject: [PATCH 02/26] implment systemd-sysv-install for OE
|
||||
Subject: [PATCH] implement systemd-sysv-install for OE
|
||||
|
||||
Use update-rc.d for enabling/disabling and status command
|
||||
to check the status of the sysv service
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/systemctl/systemd-sysv-install.SKELETON b/src/systemctl/systemd-sysv-install.SKELETON
|
||||
index cb58d8243b..000bdf6165 100755
|
||||
index cb58d8243b..eff3f5f579 100755
|
||||
--- a/src/systemctl/systemd-sysv-install.SKELETON
|
||||
+++ b/src/systemctl/systemd-sysv-install.SKELETON
|
||||
@@ -34,17 +34,17 @@ case "$1" in
|
||||
@@ -22,13 +22,13 @@ index cb58d8243b..000bdf6165 100755
|
||||
# call the command to enable SysV init script $NAME here
|
||||
# (consider optional $ROOT)
|
||||
- echo "IMPLEMENT ME: enabling SysV init.d script $NAME"
|
||||
+ update-rc.d -f $NAME defaults
|
||||
+ update-rc.d ${ROOT:+-r $ROOT} -f $NAME defaults
|
||||
;;
|
||||
disable)
|
||||
# call the command to disable SysV init script $NAME here
|
||||
# (consider optional $ROOT)
|
||||
- echo "IMPLEMENT ME: disabling SysV init.d script $NAME"
|
||||
+ update-rc.d -f $NAME remove
|
||||
+ update-rc.d ${ROOT:+-r $ROOT} -f $NAME remove
|
||||
;;
|
||||
is-enabled)
|
||||
# exit with 0 if $NAME is enabled, non-zero if it is disabled
|
||||
@@ -38,6 +38,3 @@ index cb58d8243b..000bdf6165 100755
|
||||
;;
|
||||
*)
|
||||
usage ;;
|
||||
--
|
||||
2.34.1
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ SRCBRANCH ?= "binutils-2_44-branch"
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
|
||||
|
||||
CVE_STATUS[CVE-2025-1153] = "cpe-stable-backport: fix available in used git hash"
|
||||
CVE_STATUS[CVE-2025-8224] = "cpe-stable-backport: fix available in used git hash"
|
||||
|
||||
SRCREV ?= "8e98f97aecb0f0a1a1e2ef244e9aa235248ef8fa"
|
||||
BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${SRCBRANCH};protocol=https"
|
||||
@@ -45,5 +46,7 @@ SRC_URI = "\
|
||||
file://0018-CVE-2025-5245.patch \
|
||||
file://0019-CVE-2025-7545.patch \
|
||||
file://0018-CVE-2025-7546.patch \
|
||||
file://0019-CVE-2025-8225.patch \
|
||||
file://0020-Fix-for-borken-symlinks.patch \
|
||||
"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From e51fdff7d2e538c0e5accdd65649ac68e6e0ddd4 Mon Sep 17 00:00:00 2001
|
||||
From: Alan Modra <amodra@gmail.com>
|
||||
Date: Wed, 19 Feb 2025 22:45:29 +1030
|
||||
Subject: [PATCH] binutils/dwarf.c debug_information leak
|
||||
|
||||
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.
|
||||
|
||||
CVE: CVE-2025-8225
|
||||
Upstream-Status: Backport [https://gitlab.com/gnutools/binutils-gdb/-/commit/e51fdff7d2e538c0e5accdd65649ac68e6e0ddd4]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
binutils/dwarf.c | 8 +++-----
|
||||
1 file changed, 3 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
|
||||
index 8e004cea839..bfbf83ec9f4 100644
|
||||
--- a/binutils/dwarf.c
|
||||
+++ b/binutils/dwarf.c
|
||||
@@ -3807,13 +3807,11 @@ process_debug_info (struct dwarf_section * section,
|
||||
}
|
||||
|
||||
if ((do_loc || do_debug_loc || do_debug_ranges || do_debug_info)
|
||||
- && num_debug_info_entries == 0
|
||||
- && ! do_types)
|
||||
+ && alloc_num_debug_info_entries == 0
|
||||
+ && !do_types)
|
||||
{
|
||||
-
|
||||
/* Then allocate an array to hold the information. */
|
||||
- debug_information = (debug_info *) cmalloc (num_units,
|
||||
- sizeof (* debug_information));
|
||||
+ debug_information = cmalloc (num_units, sizeof (*debug_information));
|
||||
if (debug_information == NULL)
|
||||
{
|
||||
error (_("Not enough memory for a debug info array of %u entries\n"),
|
||||
@@ -0,0 +1,62 @@
|
||||
From 90803ffdcc4d8c3d17566bf8dccadbad312f07a9 Mon Sep 17 00:00:00 2001
|
||||
From: Zheng Junjie <zhengjunjie@iscas.ac.cn>
|
||||
Date: Mon, 10 Feb 2025 17:04:55 +0800
|
||||
Subject: [PATCH] gprofng: Fix cross-compilation binary name.
|
||||
|
||||
commit d25ba4596e85da6d8af78c88b5917e14763afbe1 create symbolic link
|
||||
no care cross-compilation prefix.
|
||||
|
||||
(cherry picked from commit:90803ffdcc4d8c3d17566bf8dccadbad312f07a9)
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=90803ffdcc4d8c3d17566bf8dccadbad312f07a9]
|
||||
|
||||
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
|
||||
---
|
||||
gprofng/src/Makefile.am | 12 +++++-------
|
||||
gprofng/src/Makefile.in | 12 +++++-------
|
||||
2 files changed, 10 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/gprofng/src/Makefile.am b/gprofng/src/Makefile.am
|
||||
index a132a9ddb05..0465cdb06e3 100644
|
||||
--- a/gprofng/src/Makefile.am
|
||||
+++ b/gprofng/src/Makefile.am
|
||||
@@ -179,10 +179,8 @@ $(srcdir)/DbeSession.cc: QLParser.tab.hh
|
||||
.PHONY: install-exec-local
|
||||
install-exec-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||
- rm -f $(DESTDIR)$(bindir)/gp-{archive,collect-app,display-html,display-src,display-text}
|
||||
- ln -s gprofng-archive $(DESTDIR)$(bindir)/gp-archive
|
||||
- ln -s gprofng-collect-app $(DESTDIR)$(bindir)/gp-collect-app
|
||||
- ln -s gprofng-display-html $(DESTDIR)$(bindir)/gp-display-html
|
||||
- ln -s gprofng-display-src $(DESTDIR)$(bindir)/gp-display-src
|
||||
- ln -s gprofng-display-text $(DESTDIR)$(bindir)/gp-display-text
|
||||
-
|
||||
+ for i in gp-{archive,collect-app,display-html,display-src,display-text}; do \
|
||||
+ oldname=`echo $$i | sed '$(transform)'`; \
|
||||
+ rm -f $(DESTDIR)$(bindir)/$$oldname ; \
|
||||
+ ln -s `echo $$oldname | sed 's&gp-&gprofng-&'` $(DESTDIR)$(bindir)/$$oldname; \
|
||||
+ done
|
||||
diff --git a/gprofng/src/Makefile.in b/gprofng/src/Makefile.in
|
||||
index d0dec12e244..d6f1f9438b6 100644
|
||||
--- a/gprofng/src/Makefile.in
|
||||
+++ b/gprofng/src/Makefile.in
|
||||
@@ -1119,13 +1119,11 @@ $(srcdir)/DbeSession.cc: QLParser.tab.hh
|
||||
.PHONY: install-exec-local
|
||||
install-exec-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(bindir)
|
||||
- rm -f $(DESTDIR)$(bindir)/gp-{archive,collect-app,display-html,display-src,display-text}
|
||||
- ln -s gprofng-archive $(DESTDIR)$(bindir)/gp-archive
|
||||
- ln -s gprofng-collect-app $(DESTDIR)$(bindir)/gp-collect-app
|
||||
- ln -s gprofng-display-html $(DESTDIR)$(bindir)/gp-display-html
|
||||
- ln -s gprofng-display-src $(DESTDIR)$(bindir)/gp-display-src
|
||||
- ln -s gprofng-display-text $(DESTDIR)$(bindir)/gp-display-text
|
||||
-
|
||||
+ for i in gp-{archive,collect-app,display-html,display-src,display-text}; do \
|
||||
+ oldname=`echo $$i | sed '$(transform)'`; \
|
||||
+ rm -f $(DESTDIR)$(bindir)/$$oldname ; \
|
||||
+ ln -s `echo $$oldname | sed 's&gp-&gprofng-&'` $(DESTDIR)$(bindir)/$$oldname; \
|
||||
+ done
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
--
|
||||
2.43.7
|
||||
@@ -22,6 +22,12 @@ SRC_URI = "https://sourceware.org/elfutils/ftp/${PV}/${BP}.tar.bz2 \
|
||||
file://0001-tests-Makefile.am-compile-test_nlist-with-standard-C.patch \
|
||||
file://0001-config-eu.am-do-not-force-Werror.patch \
|
||||
file://0001-libelf-Add-libeu-objects-to-libelf.a-static-archive.patch \
|
||||
file://CVE-2025-1352.patch \
|
||||
file://CVE-2025-1365.patch \
|
||||
file://CVE-2025-1371.patch \
|
||||
file://CVE-2025-1372.patch \
|
||||
file://CVE-2025-1376.patch \
|
||||
file://CVE-2025-1377.patch \
|
||||
"
|
||||
SRC_URI:append:libc-musl = " \
|
||||
file://0003-musl-utils.patch \
|
||||
|
||||
154
meta/recipes-devtools/elfutils/files/CVE-2025-1352.patch
Normal file
154
meta/recipes-devtools/elfutils/files/CVE-2025-1352.patch
Normal file
@@ -0,0 +1,154 @@
|
||||
From 2636426a091bd6c6f7f02e49ab20d4cdc6bfc753 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Wielaard <mark@klomp.org>
|
||||
Date: Sat, 8 Feb 2025 20:00:12 +0100
|
||||
Subject: [PATCH] libdw: Simplify __libdw_getabbrev and fix dwarf_offabbrev
|
||||
issue
|
||||
|
||||
__libdw_getabbrev could crash on reading a bad abbrev by trying to
|
||||
deallocate memory it didn't allocate itself. This could happen because
|
||||
dwarf_offabbrev would supply its own memory when calling
|
||||
__libdw_getabbrev. No other caller did this.
|
||||
|
||||
Simplify the __libdw_getabbrev common code by not taking external
|
||||
memory to put the abbrev result in (this would also not work correctly
|
||||
if the abbrev was already cached). And make dwarf_offabbrev explicitly
|
||||
copy the result (if there was no error or end of abbrev).
|
||||
|
||||
* libdw/dwarf_getabbrev.c (__libdw_getabbrev): Don't take
|
||||
Dwarf_Abbrev result argument. Always just allocate abb when
|
||||
abbrev not found in cache.
|
||||
(dwarf_getabbrev): Don't pass NULL as last argument to
|
||||
__libdw_getabbrev.
|
||||
* libdw/dwarf_tag.c (__libdw_findabbrev): Likewise.
|
||||
* libdw/dwarf_offabbrev.c (dwarf_offabbrev): Likewise. And copy
|
||||
abbrev into abbrevp on success.
|
||||
* libdw/libdw.h (dwarf_offabbrev): Document return values.
|
||||
* libdw/libdwP.h (__libdw_getabbrev): Don't take Dwarf_Abbrev
|
||||
result argument.
|
||||
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=32650
|
||||
|
||||
CVE: CVE-2025-1352
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=2636426a091bd6c6f7f02e49ab20d4cdc6bfc753]
|
||||
|
||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
|
||||
---
|
||||
libdw/dwarf_getabbrev.c | 12 ++++--------
|
||||
libdw/dwarf_offabbrev.c | 10 +++++++---
|
||||
libdw/dwarf_tag.c | 3 +--
|
||||
libdw/libdw.h | 4 +++-
|
||||
libdw/libdwP.h | 3 +--
|
||||
5 files changed, 16 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/libdw/dwarf_getabbrev.c b/libdw/dwarf_getabbrev.c
|
||||
index 5b02333..d9a6c02 100644
|
||||
--- a/libdw/dwarf_getabbrev.c
|
||||
+++ b/libdw/dwarf_getabbrev.c
|
||||
@@ -1,5 +1,6 @@
|
||||
/* Get abbreviation at given offset.
|
||||
Copyright (C) 2003, 2004, 2005, 2006, 2014, 2017 Red Hat, Inc.
|
||||
+ Copyright (C) 2025 Mark J. Wielaard <mark@klomp.org>
|
||||
This file is part of elfutils.
|
||||
Written by Ulrich Drepper <drepper@redhat.com>, 2003.
|
||||
|
||||
@@ -38,7 +39,7 @@
|
||||
Dwarf_Abbrev *
|
||||
internal_function
|
||||
__libdw_getabbrev (Dwarf *dbg, struct Dwarf_CU *cu, Dwarf_Off offset,
|
||||
- size_t *lengthp, Dwarf_Abbrev *result)
|
||||
+ size_t *lengthp)
|
||||
{
|
||||
/* Don't fail if there is not .debug_abbrev section. */
|
||||
if (dbg->sectiondata[IDX_debug_abbrev] == NULL)
|
||||
@@ -85,12 +86,7 @@ __libdw_getabbrev (Dwarf *dbg, struct Dwarf_CU *cu, Dwarf_Off offset,
|
||||
Dwarf_Abbrev *abb = NULL;
|
||||
if (cu == NULL
|
||||
|| (abb = Dwarf_Abbrev_Hash_find (&cu->abbrev_hash, code)) == NULL)
|
||||
- {
|
||||
- if (result == NULL)
|
||||
- abb = libdw_typed_alloc (dbg, Dwarf_Abbrev);
|
||||
- else
|
||||
- abb = result;
|
||||
- }
|
||||
+ abb = libdw_typed_alloc (dbg, Dwarf_Abbrev);
|
||||
else
|
||||
{
|
||||
foundit = true;
|
||||
@@ -183,5 +179,5 @@ dwarf_getabbrev (Dwarf_Die *die, Dwarf_Off offset, size_t *lengthp)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- return __libdw_getabbrev (dbg, cu, abbrev_offset + offset, lengthp, NULL);
|
||||
+ return __libdw_getabbrev (dbg, cu, abbrev_offset + offset, lengthp);
|
||||
}
|
||||
diff --git a/libdw/dwarf_offabbrev.c b/libdw/dwarf_offabbrev.c
|
||||
index 27cdad6..41df69b 100644
|
||||
--- a/libdw/dwarf_offabbrev.c
|
||||
+++ b/libdw/dwarf_offabbrev.c
|
||||
@@ -41,11 +41,15 @@ dwarf_offabbrev (Dwarf *dbg, Dwarf_Off offset, size_t *lengthp,
|
||||
if (dbg == NULL)
|
||||
return -1;
|
||||
|
||||
- Dwarf_Abbrev *abbrev = __libdw_getabbrev (dbg, NULL, offset, lengthp,
|
||||
- abbrevp);
|
||||
+ Dwarf_Abbrev *abbrev = __libdw_getabbrev (dbg, NULL, offset, lengthp);
|
||||
|
||||
if (abbrev == NULL)
|
||||
return -1;
|
||||
|
||||
- return abbrev == DWARF_END_ABBREV ? 1 : 0;
|
||||
+ if (abbrev == DWARF_END_ABBREV)
|
||||
+ return 1;
|
||||
+
|
||||
+ *abbrevp = *abbrev;
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
diff --git a/libdw/dwarf_tag.c b/libdw/dwarf_tag.c
|
||||
index d784970..218382a 100644
|
||||
--- a/libdw/dwarf_tag.c
|
||||
+++ b/libdw/dwarf_tag.c
|
||||
@@ -53,8 +53,7 @@ __libdw_findabbrev (struct Dwarf_CU *cu, unsigned int code)
|
||||
|
||||
/* Find the next entry. It gets automatically added to the
|
||||
hash table. */
|
||||
- abb = __libdw_getabbrev (cu->dbg, cu, cu->last_abbrev_offset, &length,
|
||||
- NULL);
|
||||
+ abb = __libdw_getabbrev (cu->dbg, cu, cu->last_abbrev_offset, &length);
|
||||
if (abb == NULL || abb == DWARF_END_ABBREV)
|
||||
{
|
||||
/* Make sure we do not try to search for it again. */
|
||||
diff --git a/libdw/libdw.h b/libdw/libdw.h
|
||||
index d53dc78..ec4713a 100644
|
||||
--- a/libdw/libdw.h
|
||||
+++ b/libdw/libdw.h
|
||||
@@ -587,7 +587,9 @@ extern int dwarf_srclang (Dwarf_Die *die);
|
||||
extern Dwarf_Abbrev *dwarf_getabbrev (Dwarf_Die *die, Dwarf_Off offset,
|
||||
size_t *lengthp);
|
||||
|
||||
-/* Get abbreviation at given offset in .debug_abbrev section. */
|
||||
+/* Get abbreviation at given offset in .debug_abbrev section. On
|
||||
+ success return zero and fills in ABBREVP. When there is no (more)
|
||||
+ abbrev at offset returns one. On error returns a negative value. */
|
||||
extern int dwarf_offabbrev (Dwarf *dbg, Dwarf_Off offset, size_t *lengthp,
|
||||
Dwarf_Abbrev *abbrevp)
|
||||
__nonnull_attribute__ (4);
|
||||
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
|
||||
index d6bab60..0cff5c2 100644
|
||||
--- a/libdw/libdwP.h
|
||||
+++ b/libdw/libdwP.h
|
||||
@@ -795,8 +795,7 @@ extern Dwarf_Abbrev *__libdw_findabbrev (struct Dwarf_CU *cu,
|
||||
|
||||
/* Get abbreviation at given offset. */
|
||||
extern Dwarf_Abbrev *__libdw_getabbrev (Dwarf *dbg, struct Dwarf_CU *cu,
|
||||
- Dwarf_Off offset, size_t *lengthp,
|
||||
- Dwarf_Abbrev *result)
|
||||
+ Dwarf_Off offset, size_t *lengthp)
|
||||
__nonnull_attribute__ (1) internal_function;
|
||||
|
||||
/* Get abbreviation of given DIE, and optionally set *READP to the DIE memory
|
||||
--
|
||||
2.43.2
|
||||
|
||||
152
meta/recipes-devtools/elfutils/files/CVE-2025-1365.patch
Normal file
152
meta/recipes-devtools/elfutils/files/CVE-2025-1365.patch
Normal file
@@ -0,0 +1,152 @@
|
||||
From 5e5c0394d82c53e97750fe7b18023e6f84157b81 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Wielaard <mark@klomp.org>
|
||||
Date: Sat, 8 Feb 2025 21:44:56 +0100
|
||||
Subject: [PATCH] libelf, readelf: Use validate_str also to check dynamic
|
||||
symstr data
|
||||
|
||||
When dynsym/str was read through eu-readelf --dynamic by readelf
|
||||
process_symtab the string data was not validated, possibly printing
|
||||
unallocated memory past the end of the symstr data. Fix this by
|
||||
turning the elf_strptr validate_str function into a generic
|
||||
lib/system.h helper function and use it in readelf to validate the
|
||||
strings before use.
|
||||
|
||||
* libelf/elf_strptr.c (validate_str): Remove to...
|
||||
* lib/system.h (validate_str): ... here. Make inline, simplify
|
||||
check and document.
|
||||
* src/readelf.c (process_symtab): Use validate_str on symstr_data.
|
||||
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=32654
|
||||
|
||||
CVE: CVE-2025-1365
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commit;h=5e5c0394d82c53e97750fe7b18023e6f84157b81]
|
||||
|
||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
|
||||
---
|
||||
lib/system.h | 27 +++++++++++++++++++++++++++
|
||||
libelf/elf_strptr.c | 18 ------------------
|
||||
src/readelf.c | 18 +++++++++++++++---
|
||||
3 files changed, 42 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/lib/system.h b/lib/system.h
|
||||
index 0db12d9..0698e5f 100644
|
||||
--- a/lib/system.h
|
||||
+++ b/lib/system.h
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <config.h>
|
||||
|
||||
#include <errno.h>
|
||||
+#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
@@ -117,6 +118,32 @@ startswith (const char *str, const char *prefix)
|
||||
return strncmp (str, prefix, strlen (prefix)) == 0;
|
||||
}
|
||||
|
||||
+/* Return TRUE if STR[FROM] is a valid string with a zero terminator
|
||||
+ at or before STR[TO - 1]. Note FROM is an index into the STR
|
||||
+ array, while TO is the maximum size of the STR array. This
|
||||
+ function returns FALSE when TO is zero or FROM >= TO. */
|
||||
+static inline bool
|
||||
+validate_str (const char *str, size_t from, size_t to)
|
||||
+{
|
||||
+#if HAVE_DECL_MEMRCHR
|
||||
+ // Check end first, which is likely a zero terminator,
|
||||
+ // to prevent function call
|
||||
+ return (to > 0
|
||||
+ && (str[to - 1] == '\0'
|
||||
+ || (to > from
|
||||
+ && memrchr (&str[from], '\0', to - from - 1) != NULL)));
|
||||
+#else
|
||||
+ do {
|
||||
+ if (to <= from)
|
||||
+ return false;
|
||||
+
|
||||
+ to--;
|
||||
+ } while (str[to]);
|
||||
+
|
||||
+ return true;
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
/* A special gettext function we use if the strings are too short. */
|
||||
#define sgettext(Str) \
|
||||
({ const char *__res = strrchr (_(Str), '|'); \
|
||||
diff --git a/libelf/elf_strptr.c b/libelf/elf_strptr.c
|
||||
index 79a24d2..c5a94f8 100644
|
||||
--- a/libelf/elf_strptr.c
|
||||
+++ b/libelf/elf_strptr.c
|
||||
@@ -53,24 +53,6 @@ get_zdata (Elf_Scn *strscn)
|
||||
return zdata;
|
||||
}
|
||||
|
||||
-static bool validate_str (const char *str, size_t from, size_t to)
|
||||
-{
|
||||
-#if HAVE_DECL_MEMRCHR
|
||||
- // Check end first, which is likely a zero terminator, to prevent function call
|
||||
- return ((to > 0 && str[to - 1] == '\0')
|
||||
- || (to - from > 0 && memrchr (&str[from], '\0', to - from - 1) != NULL));
|
||||
-#else
|
||||
- do {
|
||||
- if (to <= from)
|
||||
- return false;
|
||||
-
|
||||
- to--;
|
||||
- } while (str[to]);
|
||||
-
|
||||
- return true;
|
||||
-#endif
|
||||
-}
|
||||
-
|
||||
char *
|
||||
elf_strptr (Elf *elf, size_t idx, size_t offset)
|
||||
{
|
||||
diff --git a/src/readelf.c b/src/readelf.c
|
||||
index 3e97b64..105cddf 100644
|
||||
--- a/src/readelf.c
|
||||
+++ b/src/readelf.c
|
||||
@@ -2639,6 +2639,7 @@ process_symtab (Ebl *ebl, unsigned int nsyms, Elf64_Word idx,
|
||||
char typebuf[64];
|
||||
char bindbuf[64];
|
||||
char scnbuf[64];
|
||||
+ const char *sym_name;
|
||||
Elf32_Word xndx;
|
||||
GElf_Sym sym_mem;
|
||||
GElf_Sym *sym
|
||||
@@ -2650,6 +2651,19 @@ process_symtab (Ebl *ebl, unsigned int nsyms, Elf64_Word idx,
|
||||
/* Determine the real section index. */
|
||||
if (likely (sym->st_shndx != SHN_XINDEX))
|
||||
xndx = sym->st_shndx;
|
||||
+ if (use_dynamic_segment == true)
|
||||
+ {
|
||||
+ if (validate_str (symstr_data->d_buf, sym->st_name,
|
||||
+ symstr_data->d_size))
|
||||
+ sym_name = (char *)symstr_data->d_buf + sym->st_name;
|
||||
+ else
|
||||
+ sym_name = NULL;
|
||||
+ }
|
||||
+ else
|
||||
+ sym_name = elf_strptr (ebl->elf, idx, sym->st_name);
|
||||
+
|
||||
+ if (sym_name == NULL)
|
||||
+ sym_name = "???";
|
||||
|
||||
printf (_ ("\
|
||||
%5u: %0*" PRIx64 " %6" PRId64 " %-7s %-6s %-9s %6s %s"),
|
||||
@@ -2662,9 +2676,7 @@ process_symtab (Ebl *ebl, unsigned int nsyms, Elf64_Word idx,
|
||||
get_visibility_type (GELF_ST_VISIBILITY (sym->st_other)),
|
||||
ebl_section_name (ebl, sym->st_shndx, xndx, scnbuf,
|
||||
sizeof (scnbuf), NULL, shnum),
|
||||
- use_dynamic_segment == true
|
||||
- ? (char *)symstr_data->d_buf + sym->st_name
|
||||
- : elf_strptr (ebl->elf, idx, sym->st_name));
|
||||
+ sym_name);
|
||||
|
||||
if (versym_data != NULL)
|
||||
{
|
||||
--
|
||||
2.43.2
|
||||
|
||||
41
meta/recipes-devtools/elfutils/files/CVE-2025-1371.patch
Normal file
41
meta/recipes-devtools/elfutils/files/CVE-2025-1371.patch
Normal file
@@ -0,0 +1,41 @@
|
||||
From b38e562a4c907e08171c76b8b2def8464d5a104a Mon Sep 17 00:00:00 2001
|
||||
From: Mark Wielaard <mark@klomp.org>
|
||||
Date: Sun, 9 Feb 2025 00:07:13 +0100
|
||||
Subject: [PATCH] readelf: Handle NULL phdr in handle_dynamic_symtab
|
||||
|
||||
A corrupt ELF file can have broken program headers, in which case
|
||||
gelf_getphdr returns NULL. This could crash handle_dynamic_symtab
|
||||
while searching for the PT_DYNAMIC phdr. Fix this by checking whether
|
||||
gelf_phdr returns NULL.
|
||||
|
||||
* src/readelf.c (handle_dynamic_symtab): Check whether
|
||||
gelf_getphdr returns NULL.
|
||||
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=32655
|
||||
|
||||
CVE: CVE-2025-1371
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commit;h=b38e562a4c907e08171c76b8b2def8464d5a104a]
|
||||
|
||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
|
||||
---
|
||||
src/readelf.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/readelf.c b/src/readelf.c
|
||||
index 105cddf..a526fa8 100644
|
||||
--- a/src/readelf.c
|
||||
+++ b/src/readelf.c
|
||||
@@ -2912,7 +2912,7 @@ handle_dynamic_symtab (Ebl *ebl)
|
||||
for (size_t i = 0; i < phnum; ++i)
|
||||
{
|
||||
phdr = gelf_getphdr (ebl->elf, i, &phdr_mem);
|
||||
- if (phdr->p_type == PT_DYNAMIC)
|
||||
+ if (phdr == NULL || phdr->p_type == PT_DYNAMIC)
|
||||
break;
|
||||
}
|
||||
if (phdr == NULL)
|
||||
--
|
||||
2.43.2
|
||||
|
||||
51
meta/recipes-devtools/elfutils/files/CVE-2025-1372.patch
Normal file
51
meta/recipes-devtools/elfutils/files/CVE-2025-1372.patch
Normal file
@@ -0,0 +1,51 @@
|
||||
From 73db9d2021cab9e23fd734b0a76a612d52a6f1db Mon Sep 17 00:00:00 2001
|
||||
From: Mark Wielaard <mark@klomp.org>
|
||||
Date: Sun, 9 Feb 2025 00:07:39 +0100
|
||||
Subject: [PATCH] readelf: Skip trying to uncompress sections without a name
|
||||
|
||||
When combining eu-readelf -z with -x or -p to dump the data or strings
|
||||
in an (corrupted ELF) unnamed numbered section eu-readelf could crash
|
||||
trying to check whether the section name starts with .zdebug. Fix this
|
||||
by skipping sections without a name.
|
||||
|
||||
* src/readelf.c (dump_data_section): Don't try to gnu decompress a
|
||||
section without a name.
|
||||
(print_string_section): Likewise.
|
||||
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=32656
|
||||
|
||||
CVE: CVE-2025-1372
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commit;h=73db9d2021cab9e23fd734b0a76a612d52a6f1db]
|
||||
|
||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
|
||||
---
|
||||
src/readelf.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/readelf.c b/src/readelf.c
|
||||
index a526fa8..89ee80a 100644
|
||||
--- a/src/readelf.c
|
||||
+++ b/src/readelf.c
|
||||
@@ -13321,7 +13321,7 @@ dump_data_section (Elf_Scn *scn, const GElf_Shdr *shdr, const char *name)
|
||||
_("Couldn't uncompress section"),
|
||||
elf_ndxscn (scn));
|
||||
}
|
||||
- else if (startswith (name, ".zdebug"))
|
||||
+ else if (name && startswith (name, ".zdebug"))
|
||||
{
|
||||
if (elf_compress_gnu (scn, 0, 0) < 0)
|
||||
printf ("WARNING: %s [%zd]\n",
|
||||
@@ -13372,7 +13372,7 @@ print_string_section (Elf_Scn *scn, const GElf_Shdr *shdr, const char *name)
|
||||
_("Couldn't uncompress section"),
|
||||
elf_ndxscn (scn));
|
||||
}
|
||||
- else if (startswith (name, ".zdebug"))
|
||||
+ else if (name && startswith (name, ".zdebug"))
|
||||
{
|
||||
if (elf_compress_gnu (scn, 0, 0) < 0)
|
||||
printf ("WARNING: %s [%zd]\n",
|
||||
--
|
||||
2.43.2
|
||||
|
||||
57
meta/recipes-devtools/elfutils/files/CVE-2025-1376.patch
Normal file
57
meta/recipes-devtools/elfutils/files/CVE-2025-1376.patch
Normal file
@@ -0,0 +1,57 @@
|
||||
From b16f441cca0a4841050e3215a9f120a6d8aea918 Mon Sep 17 00:00:00 2001
|
||||
From: Mark Wielaard <mark@klomp.org>
|
||||
Date: Thu, 13 Feb 2025 00:02:32 +0100
|
||||
Subject: [PATCH] libelf: Handle elf_strptr on section without any data
|
||||
|
||||
In the unlikely situation that elf_strptr was called on a section with
|
||||
sh_size already set, but that doesn't have any data yet we could crash
|
||||
trying to verify the string to return.
|
||||
|
||||
This could happen for example when a new section was created with
|
||||
elf_newscn, but no data having been added yet.
|
||||
|
||||
* libelf/elf_strptr.c (elf_strptr): Check strscn->rawdata_base
|
||||
is not NULL.
|
||||
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=32672
|
||||
|
||||
CVE: CVE-2025-1376
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=commit;h=b16f441cca0a4841050e3215a9f120a6d8aea918]
|
||||
|
||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
|
||||
---
|
||||
libelf/elf_strptr.c | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libelf/elf_strptr.c b/libelf/elf_strptr.c
|
||||
index c5a94f8..7be7f5e 100644
|
||||
--- a/libelf/elf_strptr.c
|
||||
+++ b/libelf/elf_strptr.c
|
||||
@@ -1,5 +1,6 @@
|
||||
/* Return string pointer from string section.
|
||||
Copyright (C) 1998-2002, 2004, 2008, 2009, 2015 Red Hat, Inc.
|
||||
+ Copyright (C) 2025 Mark J. Wielaard <mark@klomp.org>
|
||||
This file is part of elfutils.
|
||||
Contributed by Ulrich Drepper <drepper@redhat.com>, 1998.
|
||||
|
||||
@@ -183,9 +184,12 @@ elf_strptr (Elf *elf, size_t idx, size_t offset)
|
||||
// initialized yet (when data_read is zero). So we cannot just
|
||||
// look at the rawdata.d.d_size.
|
||||
|
||||
- /* Make sure the string is NUL terminated. Start from the end,
|
||||
- which very likely is a NUL char. */
|
||||
- if (likely (validate_str (strscn->rawdata_base, offset, sh_size)))
|
||||
+ /* First check there actually is any data. This could be a new
|
||||
+ section which hasn't had any data set yet. Then make sure
|
||||
+ the string is at a valid offset and NUL terminated. */
|
||||
+ if (unlikely (strscn->rawdata_base == NULL))
|
||||
+ __libelf_seterrno (ELF_E_INVALID_SECTION);
|
||||
+ else if (likely (validate_str (strscn->rawdata_base, offset, sh_size)))
|
||||
result = &strscn->rawdata_base[offset];
|
||||
else
|
||||
__libelf_seterrno (ELF_E_INVALID_INDEX);
|
||||
--
|
||||
2.43.2
|
||||
|
||||
68
meta/recipes-devtools/elfutils/files/CVE-2025-1377.patch
Normal file
68
meta/recipes-devtools/elfutils/files/CVE-2025-1377.patch
Normal file
@@ -0,0 +1,68 @@
|
||||
From fbf1df9ca286de3323ae541973b08449f8d03aba Mon Sep 17 00:00:00 2001
|
||||
From: Mark Wielaard <mark@klomp.org>
|
||||
Date: Thu, 13 Feb 2025 14:59:34 +0100
|
||||
Subject: [PATCH] strip: Verify symbol table is a real symbol table
|
||||
|
||||
We didn't check the symbol table referenced from the relocation table
|
||||
was a real symbol table. This could cause a crash if that section
|
||||
happened to be an SHT_NOBITS section without any data. Fix this by
|
||||
adding an explicit check.
|
||||
|
||||
* src/strip.c (INTERNAL_ERROR_MSG): New macro that takes a
|
||||
message string to display.
|
||||
(INTERNAL_ERROR): Use INTERNAL_ERROR_MSG with elf_errmsg (-1).
|
||||
(remove_debug_relocations): Check the sh_link referenced
|
||||
section is real and isn't a SHT_NOBITS section.
|
||||
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=32673
|
||||
|
||||
CVE: CVE-2025-1377
|
||||
|
||||
Upstream-Status: Backport [https://sourceware.org/git/?p=elfutils.git;a=fbf1df9ca286de3323ae541973b08449f8d03aba]
|
||||
|
||||
Signed-off-by: Mark Wielaard <mark@klomp.org>
|
||||
Signed-off-by: Soumya Sambu <soumya.sambu@windriver.com>
|
||||
---
|
||||
src/strip.c | 14 +++++++++++---
|
||||
1 file changed, 11 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/strip.c b/src/strip.c
|
||||
index 403e0f6..2b5d057 100644
|
||||
--- a/src/strip.c
|
||||
+++ b/src/strip.c
|
||||
@@ -126,13 +126,14 @@ static char *tmp_debug_fname = NULL;
|
||||
/* Close debug file descriptor, if opened. And remove temporary debug file. */
|
||||
static void cleanup_debug (void);
|
||||
|
||||
-#define INTERNAL_ERROR(fname) \
|
||||
+#define INTERNAL_ERROR_MSG(fname, msg) \
|
||||
do { \
|
||||
cleanup_debug (); \
|
||||
error_exit (0, _("%s: INTERNAL ERROR %d (%s): %s"), \
|
||||
- fname, __LINE__, PACKAGE_VERSION, elf_errmsg (-1)); \
|
||||
+ fname, __LINE__, PACKAGE_VERSION, msg); \
|
||||
} while (0)
|
||||
|
||||
+#define INTERNAL_ERROR(fname) INTERNAL_ERROR_MSG(fname, elf_errmsg (-1))
|
||||
|
||||
/* Name of the output file. */
|
||||
static const char *output_fname;
|
||||
@@ -631,7 +632,14 @@ remove_debug_relocations (Ebl *ebl, Elf *elf, GElf_Ehdr *ehdr,
|
||||
resolve relocation symbol indexes. */
|
||||
Elf64_Word symt = shdr->sh_link;
|
||||
Elf_Data *symdata, *xndxdata;
|
||||
- Elf_Scn * symscn = elf_getscn (elf, symt);
|
||||
+ Elf_Scn *symscn = elf_getscn (elf, symt);
|
||||
+ GElf_Shdr symshdr_mem;
|
||||
+ GElf_Shdr *symshdr = gelf_getshdr (symscn, &symshdr_mem);
|
||||
+ if (symshdr == NULL)
|
||||
+ INTERNAL_ERROR (fname);
|
||||
+ if (symshdr->sh_type == SHT_NOBITS)
|
||||
+ INTERNAL_ERROR_MSG (fname, "NOBITS section");
|
||||
+
|
||||
symdata = elf_getdata (symscn, NULL);
|
||||
xndxdata = get_xndxdata (elf, symscn);
|
||||
if (symdata == NULL)
|
||||
--
|
||||
2.43.2
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
# Respect host env GIT_SSL_CAINFO/GIT_SSL_CAPATH first, then auto-detected host cert, then cert in buildtools
|
||||
# CAFILE/CAPATH is auto-deteced when source buildtools
|
||||
if [ -z "$GIT_SSL_CAINFO" ]; then
|
||||
if [ -n "$CAFILE" ];then
|
||||
if [ -z "${GIT_SSL_CAINFO:-}" ]; then
|
||||
if [ -n "${CAFILE:-}" ];then
|
||||
export GIT_SSL_CAINFO="$CAFILE"
|
||||
elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
|
||||
export GIT_SSL_CAINFO="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$GIT_SSL_CAPATH" ]; then
|
||||
if [ -n "$CAPATH" ];then
|
||||
if [ -z "${GIT_SSL_CAPATH:-}" ]; then
|
||||
if [ -n "${CAPATH:-}" ];then
|
||||
export GIT_SSL_CAPATH="$CAPATH"
|
||||
elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
|
||||
export GIT_SSL_CAPATH="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs"
|
||||
|
||||
@@ -17,4 +17,4 @@ SRC_URI += "\
|
||||
file://0010-cmd-go-clear-GOROOT-for-func-ldShared-when-trimpath-.patch \
|
||||
file://6d265b008e3d106b2706645e5a88cd8e2fb98953.patch \
|
||||
"
|
||||
SRC_URI[main.sha256sum] = "74fdb09f2352e2b25b7943e56836c9b47363d28dec1c8b56c4a9570f30b8f59f"
|
||||
SRC_URI[main.sha256sum] = "e1cb5582aab588668bc04c07de18688070f6b8c9b2aaf361f821e19bd47cfdbd"
|
||||
@@ -9,9 +9,9 @@ PROVIDES = "go-native"
|
||||
|
||||
# Checksums available at https://go.dev/dl/
|
||||
SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
|
||||
SRC_URI[go_linux_amd64.sha256sum] = "10ad9e86233e74c0f6590fe5426895de6bf388964210eac34a6d83f38918ecdc"
|
||||
SRC_URI[go_linux_arm64.sha256sum] = "0df02e6aeb3d3c06c95ff201d575907c736d6c62cfa4b6934c11203f1d600ffa"
|
||||
SRC_URI[go_linux_ppc64le.sha256sum] = "00bdfb16d1094e78473b681d2d09d42c19c886d4dfed743853769f1665c7a552"
|
||||
SRC_URI[go_linux_amd64.sha256sum] = "bbca37cc395c974ffa4893ee35819ad23ebb27426df87af92e93a9ec66ef8712"
|
||||
SRC_URI[go_linux_arm64.sha256sum] = "124ea6033a8bf98aa9fbab53e58d134905262d45a022af3a90b73320f3c3afd5"
|
||||
SRC_URI[go_linux_ppc64le.sha256sum] = "63fc9559a3d6dfd63aa902f714375b879bbc848466181c035c122489b9646e27"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://golang.org/dl/"
|
||||
UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
|
||||
@@ -0,0 +1,36 @@
|
||||
From b3b26a7e125e5e4f5b69975cc17eb6d33198ebaa Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuele Bassi <ebassi@gnome.org>
|
||||
Date: Thu, 11 Apr 2024 14:40:21 +0100
|
||||
Subject: [PATCH] Do not use bool as a field name
|
||||
|
||||
C99 aliases `bool` to `_Bool`, and C23 introduces `bool` as a reserved
|
||||
keyword. Let's avoid using `bool` as a field name.
|
||||
|
||||
Upstream-Status: Backport [Backport from glib to bunlded version in pkg-config https://github.com/GNOME/glib/commit/9e320e1c43a4770ed1532248fe5416eb0c618120]
|
||||
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
|
||||
---
|
||||
glib/glib/goption.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/glib/glib/goption.c b/glib/glib/goption.c
|
||||
index 0a22f6f..f439fd4 100644
|
||||
--- a/glib/glib/goption.c
|
||||
+++ b/glib/glib/goption.c
|
||||
@@ -166,7 +166,7 @@ typedef struct
|
||||
gpointer arg_data;
|
||||
union
|
||||
{
|
||||
- gboolean bool;
|
||||
+ gboolean boolean;
|
||||
gint integer;
|
||||
gchar *str;
|
||||
gchar **array;
|
||||
@@ -1600,7 +1600,7 @@ free_changes_list (GOptionContext *context,
|
||||
switch (change->arg_type)
|
||||
{
|
||||
case G_OPTION_ARG_NONE:
|
||||
- *(gboolean *)change->arg_data = change->prev.bool;
|
||||
+ *(gboolean *)change->arg_data = change->prev.boolean;
|
||||
break;
|
||||
case G_OPTION_ARG_INT:
|
||||
*(gint *)change->arg_data = change->prev.integer;
|
||||
@@ -15,6 +15,7 @@ SRC_URI = "git://gitlab.freedesktop.org/pkg-config/pkg-config.git;branch=master;
|
||||
file://pkg-config-esdk.in \
|
||||
file://pkg-config-native.in \
|
||||
file://0001-glib-gettext.m4-Update-AM_GLIB_GNU_GETTEXT-to-match-.patch \
|
||||
file://0001-Do-not-use-bool-as-a-field-name.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Respect host env REQUESTS_CA_BUNDLE first, then auto-detected host cert, then cert in buildtools
|
||||
# CAFILE/CAPATH is auto-deteced when source buildtools
|
||||
if [ -z "$REQUESTS_CA_BUNDLE" ]; then
|
||||
if [ -n "$CAFILE" ];then
|
||||
if [ -z "${REQUESTS_CA_BUNDLE:-}" ]; then
|
||||
if [ -n "${CAFILE:-}" ];then
|
||||
export REQUESTS_CA_BUNDLE="$CAFILE"
|
||||
elif [ -e "${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt" ];then
|
||||
export REQUESTS_CA_BUNDLE="${OECORE_NATIVE_SYSROOT}/etc/ssl/certs/ca-certificates.crt"
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
From a8d07038ec4813a743bdc0313556c9b0fd65ba88 Mon Sep 17 00:00:00 2001
|
||||
From: "Jason R. Coombs" <jaraco@jaraco.com>
|
||||
Date: Fri, 2 May 2025 20:01:23 -0400
|
||||
Subject: [PATCH] Revert "Merge pull request pypa/distutils#332 from
|
||||
pypa/debt/unify-shebang"
|
||||
|
||||
This reverts commit 5589d7527044a75ff681ceb4e1e97641578a0c87, reversing
|
||||
changes made to 250c300096abbf4147be62a428bd25a98abc487e.
|
||||
|
||||
Closes pypa/setuptools#4934
|
||||
|
||||
Upstream-Status: Backport
|
||||
[https://github.com/pypa/setuptools/commit/3f94782c5ede0689cfc216693ddb9a79087d6c91]
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
setuptools/_distutils/command/build_scripts.py | 15 +++++++++++++--
|
||||
1 file changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/setuptools/_distutils/command/build_scripts.py b/setuptools/_distutils/command/build_scripts.py
|
||||
index 127c51d..3f7aae0 100644
|
||||
--- a/setuptools/_distutils/command/build_scripts.py
|
||||
+++ b/setuptools/_distutils/command/build_scripts.py
|
||||
@@ -5,6 +5,7 @@ Implements the Distutils 'build_scripts' command."""
|
||||
import os
|
||||
import re
|
||||
import tokenize
|
||||
+from distutils import sysconfig
|
||||
from distutils._log import log
|
||||
from stat import ST_MODE
|
||||
from typing import ClassVar
|
||||
@@ -75,7 +76,7 @@ class build_scripts(Command):
|
||||
|
||||
return outfiles, updated_files
|
||||
|
||||
- def _copy_script(self, script, outfiles, updated_files):
|
||||
+ def _copy_script(self, script, outfiles, updated_files): # noqa: C901
|
||||
shebang_match = None
|
||||
script = convert_path(script)
|
||||
outfile = os.path.join(self.build_dir, os.path.basename(script))
|
||||
@@ -105,8 +106,18 @@ class build_scripts(Command):
|
||||
if shebang_match:
|
||||
log.info("copying and adjusting %s -> %s", script, self.build_dir)
|
||||
if not self.dry_run:
|
||||
+ if not sysconfig.python_build:
|
||||
+ executable = self.executable
|
||||
+ else:
|
||||
+ executable = os.path.join(
|
||||
+ sysconfig.get_config_var("BINDIR"),
|
||||
+ "python{}{}".format(
|
||||
+ sysconfig.get_config_var("VERSION"),
|
||||
+ sysconfig.get_config_var("EXE"),
|
||||
+ ),
|
||||
+ )
|
||||
post_interp = shebang_match.group(1) or ''
|
||||
- shebang = f"#!python{post_interp}\n"
|
||||
+ shebang = "#!" + executable + post_interp + "\n"
|
||||
self._validate_shebang(shebang, f.encoding)
|
||||
with open(outfile, "w", encoding=f.encoding) as outf:
|
||||
outf.write(shebang)
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
From 3b2944f3d9f83129500571f9e44fb0779bf0987b Mon Sep 17 00:00:00 2001
|
||||
From: "Jason R. Coombs" <jaraco@jaraco.com>
|
||||
Date: Fri, 2 May 2025 20:07:13 -0400
|
||||
Subject: [PATCH] Remove support for special executable under a Python build.
|
||||
|
||||
As far as I can tell, no one has complained about loss of this functionality.
|
||||
|
||||
Upstream-Status: Backport
|
||||
[https://github.com/pypa/setuptools/commit/575445c672d78fcce22df1e459b7baf0304a38b9]
|
||||
|
||||
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
|
||||
---
|
||||
setuptools/_distutils/command/build_scripts.py | 15 ++-------------
|
||||
1 file changed, 2 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/setuptools/_distutils/command/build_scripts.py b/setuptools/_distutils/command/build_scripts.py
|
||||
index 3f7aae0..b86ee6e 100644
|
||||
--- a/setuptools/_distutils/command/build_scripts.py
|
||||
+++ b/setuptools/_distutils/command/build_scripts.py
|
||||
@@ -5,7 +5,6 @@ Implements the Distutils 'build_scripts' command."""
|
||||
import os
|
||||
import re
|
||||
import tokenize
|
||||
-from distutils import sysconfig
|
||||
from distutils._log import log
|
||||
from stat import ST_MODE
|
||||
from typing import ClassVar
|
||||
@@ -76,7 +75,7 @@ class build_scripts(Command):
|
||||
|
||||
return outfiles, updated_files
|
||||
|
||||
- def _copy_script(self, script, outfiles, updated_files): # noqa: C901
|
||||
+ def _copy_script(self, script, outfiles, updated_files):
|
||||
shebang_match = None
|
||||
script = convert_path(script)
|
||||
outfile = os.path.join(self.build_dir, os.path.basename(script))
|
||||
@@ -106,18 +105,8 @@ class build_scripts(Command):
|
||||
if shebang_match:
|
||||
log.info("copying and adjusting %s -> %s", script, self.build_dir)
|
||||
if not self.dry_run:
|
||||
- if not sysconfig.python_build:
|
||||
- executable = self.executable
|
||||
- else:
|
||||
- executable = os.path.join(
|
||||
- sysconfig.get_config_var("BINDIR"),
|
||||
- "python{}{}".format(
|
||||
- sysconfig.get_config_var("VERSION"),
|
||||
- sysconfig.get_config_var("EXE"),
|
||||
- ),
|
||||
- )
|
||||
post_interp = shebang_match.group(1) or ''
|
||||
- shebang = "#!" + executable + post_interp + "\n"
|
||||
+ shebang = "#!" + self.executable + post_interp + "\n"
|
||||
self._validate_shebang(shebang, f.encoding)
|
||||
with open(outfile, "w", encoding=f.encoding) as outf:
|
||||
outf.write(shebang)
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -14,6 +14,8 @@ SRC_URI += " \
|
||||
file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch \
|
||||
file://CVE-2025-47273-pre1.patch \
|
||||
file://CVE-2025-47273.patch \
|
||||
file://0001-Revert-Merge-pull-request-pypa-distutils-332-from-py.patch \
|
||||
file://0002-Remove-support-for-special-executable-under-a-Python.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "43b4ee60e10b0d0ee98ad11918e114c70701bc6051662a9a675a0496c1a158f4"
|
||||
|
||||
@@ -97,6 +97,8 @@ WRAPPER_TOOLS = " \
|
||||
${libdir}/rpm/rpmdeps \
|
||||
"
|
||||
|
||||
base_bindir_progs = "sed tar rm mv mkdir cp cat chown chmod gzip grep"
|
||||
|
||||
do_install:append:class-native() {
|
||||
for tool in ${WRAPPER_TOOLS}; do
|
||||
test -x ${D}$tool && create_wrapper ${D}$tool \
|
||||
@@ -119,9 +121,15 @@ do_install:append:class-nativesdk() {
|
||||
EOF
|
||||
}
|
||||
|
||||
# Rpm's make install creates var/tmp which clashes with base-files packaging
|
||||
do_install:append:class-target() {
|
||||
# Rpm's make install creates var/tmp which clashes with base-files packaging
|
||||
rm -rf ${D}/var
|
||||
|
||||
if [ "${base_bindir}" != "${bindir}" ]; then
|
||||
for prog in ${base_bindir_progs}; do
|
||||
sed -i "s|^%__${prog}.*|%__${prog} ${base_bindir}/${prog}|g" ${D}${libdir}/rpm/macros
|
||||
done
|
||||
fi
|
||||
}
|
||||
do_install:append:class-nativesdk() {
|
||||
rm -rf ${D}${SDKPATHNATIVE}/var
|
||||
@@ -131,10 +139,10 @@ do_install:append:class-nativesdk() {
|
||||
}
|
||||
|
||||
do_install:append () {
|
||||
sed -i -e 's:${HOSTTOOLS_DIR}/::g' \
|
||||
-e 's:${STAGING_DIR_NATIVE}/::g' \
|
||||
sed -i -e 's:${HOSTTOOLS_DIR}::g' \
|
||||
-e 's:${STAGING_DIR_NATIVE}::g' \
|
||||
${D}/${libdir}/rpm/macros
|
||||
sed -i -e 's:${RECIPE_SYSROOT}/::g' \
|
||||
sed -i -e 's:${RECIPE_SYSROOT}::g' \
|
||||
${D}/${libdir}/cmake/rpm/rpm-targets.cmake
|
||||
|
||||
}
|
||||
|
||||
@@ -21,5 +21,8 @@ DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb
|
||||
DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
|
||||
|
||||
CFLAGS += "-std=gnu17"
|
||||
# mkbuiltins.c is built with native toolchain and needs gnu17 as well:
|
||||
# http://errors.yoctoproject.org/Errors/Details/853016/
|
||||
BUILD_CFLAGS += "-std=gnu17"
|
||||
|
||||
BBCLASSEXTEND = "nativesdk"
|
||||
|
||||
@@ -15,6 +15,8 @@ SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/cups-${PV}-source.tar.gz \
|
||||
file://0004-cups-fix-multilib-install-file-conflicts.patch \
|
||||
file://volatiles.99_cups \
|
||||
file://cups-volatiles.conf \
|
||||
file://CVE-2025-58060.patch \
|
||||
file://CVE-2025-58364.patch \
|
||||
"
|
||||
|
||||
GITHUB_BASE_URI = "https://github.com/OpenPrinting/cups/releases"
|
||||
|
||||
60
meta/recipes-extended/cups/cups/CVE-2025-58060.patch
Normal file
60
meta/recipes-extended/cups/cups/CVE-2025-58060.patch
Normal file
@@ -0,0 +1,60 @@
|
||||
From 595d691075b1d396d2edfaa0a8fd0873a0a1f221 Mon Sep 17 00:00:00 2001
|
||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
||||
Date: Thu, 11 Sep 2025 14:44:59 +0200
|
||||
Subject: [PATCH] cupsd: Block authentication using alternate method
|
||||
|
||||
Fixes: CVE-2025-58060
|
||||
|
||||
CVE: CVE-2025-58060
|
||||
Upstream-Status: Backport [https://github.com/OpenPrinting/cups/commit/595d691075b1d396d2edfaa0a8fd0873a0a1f221]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
scheduler/auth.c | 21 ++++++++++++++++++++-
|
||||
1 file changed, 20 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/scheduler/auth.c b/scheduler/auth.c
|
||||
index 5fa53644d..3c9aa72aa 100644
|
||||
--- a/scheduler/auth.c
|
||||
+++ b/scheduler/auth.c
|
||||
@@ -513,6 +513,16 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
|
||||
int userlen; /* Username:password length */
|
||||
|
||||
|
||||
+ /*
|
||||
+ * Only allow Basic if enabled...
|
||||
+ */
|
||||
+
|
||||
+ if (type != CUPSD_AUTH_BASIC)
|
||||
+ {
|
||||
+ cupsdLogClient(con, CUPSD_LOG_ERROR, "Basic authentication is not enabled.");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
authorization += 5;
|
||||
while (isspace(*authorization & 255))
|
||||
authorization ++;
|
||||
@@ -558,7 +568,6 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
|
||||
* Validate the username and password...
|
||||
*/
|
||||
|
||||
- if (type == CUPSD_AUTH_BASIC)
|
||||
{
|
||||
#if HAVE_LIBPAM
|
||||
/*
|
||||
@@ -727,6 +736,16 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
|
||||
/* Output token for username */
|
||||
gss_name_t client_name; /* Client name */
|
||||
|
||||
+ /*
|
||||
+ * Only allow Kerberos if enabled...
|
||||
+ */
|
||||
+
|
||||
+ if (type != CUPSD_AUTH_NEGOTIATE)
|
||||
+ {
|
||||
+ cupsdLogClient(con, CUPSD_LOG_ERROR, "Kerberos authentication is not enabled.");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
# ifdef __APPLE__
|
||||
/*
|
||||
* If the weak-linked GSSAPI/Kerberos library is not present, don't try
|
||||
58
meta/recipes-extended/cups/cups/CVE-2025-58364.patch
Normal file
58
meta/recipes-extended/cups/cups/CVE-2025-58364.patch
Normal file
@@ -0,0 +1,58 @@
|
||||
From e58cba9d6fceed4242980e51dbd1302cf638ab1d Mon Sep 17 00:00:00 2001
|
||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
||||
Date: Thu, 11 Sep 2025 14:53:49 +0200
|
||||
Subject: [PATCH] libcups: Fix handling of extension tag in `ipp_read_io()`
|
||||
|
||||
Fixes: CVE-2025-58364
|
||||
|
||||
CVE: CVE-2025-58364
|
||||
Upstream-Status: Backport [https://github.com/OpenPrinting/cups/commit/e58cba9d6fceed4242980e51dbd1302cf638ab1d]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
cups/ipp.c | 26 +-------------------------
|
||||
1 file changed, 1 insertion(+), 25 deletions(-)
|
||||
|
||||
diff --git a/cups/ipp.c b/cups/ipp.c
|
||||
index 283e386b6..e1e361b2c 100644
|
||||
--- a/cups/ipp.c
|
||||
+++ b/cups/ipp.c
|
||||
@@ -2949,31 +2949,6 @@ ippReadIO(void *src, /* I - Data source */
|
||||
*/
|
||||
|
||||
tag = (ipp_tag_t)buffer[0];
|
||||
- if (tag == IPP_TAG_EXTENSION)
|
||||
- {
|
||||
- /*
|
||||
- * Read 32-bit "extension" tag...
|
||||
- */
|
||||
-
|
||||
- if ((*cb)(src, buffer, 4) < 4)
|
||||
- {
|
||||
- DEBUG_puts("1ippReadIO: Callback returned EOF/error");
|
||||
- goto rollback;
|
||||
- }
|
||||
-
|
||||
- tag = (ipp_tag_t)((buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]);
|
||||
-
|
||||
- if (tag & IPP_TAG_CUPS_CONST)
|
||||
- {
|
||||
- /*
|
||||
- * Fail if the high bit is set in the tag...
|
||||
- */
|
||||
-
|
||||
- _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("IPP extension tag larger than 0x7FFFFFFF."), 1);
|
||||
- DEBUG_printf(("1ippReadIO: bad tag 0x%x.", tag));
|
||||
- goto rollback;
|
||||
- }
|
||||
- }
|
||||
|
||||
if (tag == IPP_TAG_END)
|
||||
{
|
||||
@@ -3196,6 +3171,7 @@ ippReadIO(void *src, /* I - Data source */
|
||||
|
||||
if ((*cb)(src, buffer, (size_t)n) < n)
|
||||
{
|
||||
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Unable to read IPP attribute name."), 1);
|
||||
DEBUG_puts("1ippReadIO: unable to read name.");
|
||||
goto rollback;
|
||||
}
|
||||
@@ -0,0 +1,319 @@
|
||||
From 89b8c35ff4b5addc08a85bf5df02b407f8af1f6c Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Stoeckmann <stoeckmann@users.noreply.github.com>
|
||||
Date: Sun, 6 Apr 2025 22:34:37 +0200
|
||||
Subject: [PATCH] Improve lseek handling (#2564)
|
||||
|
||||
The skip functions are limited to 1 GB for cases in which libarchive
|
||||
runs on a system with an off_t or long with 32 bits. This has negative
|
||||
impact on 64 bit systems.
|
||||
|
||||
Instead, make sure that _all_ subsequent functions truncate properly.
|
||||
Some of them already did and some had regressions for over 10 years.
|
||||
|
||||
Tests pass on Debian 12 i686 configured with --disable-largefile, i.e.
|
||||
running with an off_t with 32 bits.
|
||||
|
||||
Casts added where needed to still pass MSVC builds.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/89b8c35ff4b5addc08a85bf5df02b407f8af1f6c]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---------
|
||||
|
||||
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||
---
|
||||
libarchive/archive_read.c | 6 ----
|
||||
libarchive/archive_read_disk_posix.c | 3 +-
|
||||
libarchive/archive_read_open_fd.c | 29 +++++++++++++------
|
||||
libarchive/archive_read_open_file.c | 35 ++++++++++++-----------
|
||||
libarchive/archive_read_open_filename.c | 37 ++++++++++++++++++-------
|
||||
libarchive/test/read_open_memory.c | 2 +-
|
||||
libarchive/test/test_sparse_basic.c | 6 ++--
|
||||
libarchive/test/test_tar_large.c | 2 +-
|
||||
8 files changed, 75 insertions(+), 45 deletions(-)
|
||||
|
||||
diff --git a/libarchive/archive_read.c b/libarchive/archive_read.c
|
||||
index 822c534b..50db8701 100644
|
||||
--- a/libarchive/archive_read.c
|
||||
+++ b/libarchive/archive_read.c
|
||||
@@ -176,15 +176,9 @@ client_skip_proxy(struct archive_read_filter *self, int64_t request)
|
||||
return 0;
|
||||
|
||||
if (self->archive->client.skipper != NULL) {
|
||||
- /* Seek requests over 1GiB are broken down into
|
||||
- * multiple seeks. This avoids overflows when the
|
||||
- * requests get passed through 32-bit arguments. */
|
||||
- int64_t skip_limit = (int64_t)1 << 30;
|
||||
int64_t total = 0;
|
||||
for (;;) {
|
||||
int64_t get, ask = request;
|
||||
- if (ask > skip_limit)
|
||||
- ask = skip_limit;
|
||||
get = (self->archive->client.skipper)
|
||||
(&self->archive->archive, self->data, ask);
|
||||
total += get;
|
||||
diff --git a/libarchive/archive_read_disk_posix.c b/libarchive/archive_read_disk_posix.c
|
||||
index 09965eb9..4839d62b 100644
|
||||
--- a/libarchive/archive_read_disk_posix.c
|
||||
+++ b/libarchive/archive_read_disk_posix.c
|
||||
@@ -778,7 +778,8 @@ _archive_read_data_block(struct archive *_a, const void **buff,
|
||||
*/
|
||||
if (t->current_sparse->offset > t->entry_total) {
|
||||
if (lseek(t->entry_fd,
|
||||
- (off_t)t->current_sparse->offset, SEEK_SET) < 0) {
|
||||
+ (off_t)t->current_sparse->offset, SEEK_SET) !=
|
||||
+ t->current_sparse->offset) {
|
||||
archive_set_error(&a->archive, errno, "Seek error");
|
||||
r = ARCHIVE_FATAL;
|
||||
a->archive.state = ARCHIVE_STATE_FATAL;
|
||||
diff --git a/libarchive/archive_read_open_fd.c b/libarchive/archive_read_open_fd.c
|
||||
index debfde20..3fd536d5 100644
|
||||
--- a/libarchive/archive_read_open_fd.c
|
||||
+++ b/libarchive/archive_read_open_fd.c
|
||||
@@ -131,7 +131,7 @@ static int64_t
|
||||
file_skip(struct archive *a, void *client_data, int64_t request)
|
||||
{
|
||||
struct read_fd_data *mine = (struct read_fd_data *)client_data;
|
||||
- int64_t skip = request;
|
||||
+ off_t skip = (off_t)request;
|
||||
int64_t old_offset, new_offset;
|
||||
int skip_bits = sizeof(skip) * 8 - 1; /* off_t is a signed type. */
|
||||
|
||||
@@ -140,15 +140,15 @@ file_skip(struct archive *a, void *client_data, int64_t request)
|
||||
|
||||
/* Reduce a request that would overflow the 'skip' variable. */
|
||||
if (sizeof(request) > sizeof(skip)) {
|
||||
- int64_t max_skip =
|
||||
+ const int64_t max_skip =
|
||||
(((int64_t)1 << (skip_bits - 1)) - 1) * 2 + 1;
|
||||
if (request > max_skip)
|
||||
- skip = max_skip;
|
||||
+ skip = (off_t)max_skip;
|
||||
}
|
||||
|
||||
- /* Reduce request to the next smallest multiple of block_size */
|
||||
- request = (request / mine->block_size) * mine->block_size;
|
||||
- if (request == 0)
|
||||
+ /* Reduce 'skip' to the next smallest multiple of block_size */
|
||||
+ skip = (off_t)(((int64_t)skip / mine->block_size) * mine->block_size);
|
||||
+ if (skip == 0)
|
||||
return (0);
|
||||
|
||||
if (((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0) &&
|
||||
@@ -178,11 +178,24 @@ static int64_t
|
||||
file_seek(struct archive *a, void *client_data, int64_t request, int whence)
|
||||
{
|
||||
struct read_fd_data *mine = (struct read_fd_data *)client_data;
|
||||
+ off_t seek = (off_t)request;
|
||||
int64_t r;
|
||||
+ int seek_bits = sizeof(seek) * 8 - 1; /* off_t is a signed type. */
|
||||
|
||||
/* We use off_t here because lseek() is declared that way. */
|
||||
- /* See above for notes about when off_t is less than 64 bits. */
|
||||
- r = lseek(mine->fd, request, whence);
|
||||
+
|
||||
+ /* Reduce a request that would overflow the 'seek' variable. */
|
||||
+ if (sizeof(request) > sizeof(seek)) {
|
||||
+ const int64_t max_seek =
|
||||
+ (((int64_t)1 << (seek_bits - 1)) - 1) * 2 + 1;
|
||||
+ const int64_t min_seek = ~max_seek;
|
||||
+ if (request > max_seek)
|
||||
+ seek = (off_t)max_seek;
|
||||
+ else if (request < min_seek)
|
||||
+ seek = (off_t)min_seek;
|
||||
+ }
|
||||
+
|
||||
+ r = lseek(mine->fd, seek, whence);
|
||||
if (r >= 0)
|
||||
return r;
|
||||
|
||||
diff --git a/libarchive/archive_read_open_file.c b/libarchive/archive_read_open_file.c
|
||||
index ecd56dce..2829b9a5 100644
|
||||
--- a/libarchive/archive_read_open_file.c
|
||||
+++ b/libarchive/archive_read_open_file.c
|
||||
@@ -145,7 +145,7 @@ FILE_skip(struct archive *a, void *client_data, int64_t request)
|
||||
|
||||
/* If request is too big for a long or an off_t, reduce it. */
|
||||
if (sizeof(request) > sizeof(skip)) {
|
||||
- int64_t max_skip =
|
||||
+ const int64_t max_skip =
|
||||
(((int64_t)1 << (skip_bits - 1)) - 1) * 2 + 1;
|
||||
if (request > max_skip)
|
||||
skip = max_skip;
|
||||
@@ -176,39 +176,42 @@ FILE_seek(struct archive *a, void *client_data, int64_t request, int whence)
|
||||
{
|
||||
struct read_FILE_data *mine = (struct read_FILE_data *)client_data;
|
||||
#if HAVE__FSEEKI64
|
||||
- int64_t skip = request;
|
||||
+ int64_t seek = request;
|
||||
#elif HAVE_FSEEKO
|
||||
- off_t skip = (off_t)request;
|
||||
+ off_t seek = (off_t)request;
|
||||
#else
|
||||
- long skip = (long)request;
|
||||
+ long seek = (long)request;
|
||||
#endif
|
||||
- int skip_bits = sizeof(skip) * 8 - 1;
|
||||
+ int seek_bits = sizeof(seek) * 8 - 1;
|
||||
(void)a; /* UNUSED */
|
||||
|
||||
- /* If request is too big for a long or an off_t, reduce it. */
|
||||
- if (sizeof(request) > sizeof(skip)) {
|
||||
- int64_t max_skip =
|
||||
- (((int64_t)1 << (skip_bits - 1)) - 1) * 2 + 1;
|
||||
- if (request > max_skip)
|
||||
- skip = max_skip;
|
||||
+ /* Reduce a request that would overflow the 'seek' variable. */
|
||||
+ if (sizeof(request) > sizeof(seek)) {
|
||||
+ const int64_t max_seek =
|
||||
+ (((int64_t)1 << (seek_bits - 1)) - 1) * 2 + 1;
|
||||
+ const int64_t min_seek = ~max_seek;
|
||||
+ if (request > max_seek)
|
||||
+ seek = max_seek;
|
||||
+ else if (request < min_seek)
|
||||
+ seek = min_seek;
|
||||
}
|
||||
|
||||
#ifdef __ANDROID__
|
||||
/* Newer Android versions have fseeko...to meditate. */
|
||||
- int64_t ret = lseek(fileno(mine->f), skip, whence);
|
||||
+ int64_t ret = lseek(fileno(mine->f), seek, whence);
|
||||
if (ret >= 0) {
|
||||
return ret;
|
||||
}
|
||||
#elif HAVE__FSEEKI64
|
||||
- if (_fseeki64(mine->f, skip, whence) == 0) {
|
||||
+ if (_fseeki64(mine->f, seek, whence) == 0) {
|
||||
return _ftelli64(mine->f);
|
||||
}
|
||||
#elif HAVE_FSEEKO
|
||||
- if (fseeko(mine->f, skip, whence) == 0) {
|
||||
+ if (fseeko(mine->f, seek, whence) == 0) {
|
||||
return ftello(mine->f);
|
||||
}
|
||||
#else
|
||||
- if (fseek(mine->f, skip, whence) == 0) {
|
||||
+ if (fseek(mine->f, seek, whence) == 0) {
|
||||
return ftell(mine->f);
|
||||
}
|
||||
#endif
|
||||
@@ -226,4 +229,4 @@ FILE_close(struct archive *a, void *client_data)
|
||||
free(mine->buffer);
|
||||
free(mine);
|
||||
return (ARCHIVE_OK);
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/libarchive/archive_read_open_filename.c b/libarchive/archive_read_open_filename.c
|
||||
index 05f0ffbd..3894b15c 100644
|
||||
--- a/libarchive/archive_read_open_filename.c
|
||||
+++ b/libarchive/archive_read_open_filename.c
|
||||
@@ -479,20 +479,24 @@ file_skip_lseek(struct archive *a, void *client_data, int64_t request)
|
||||
struct read_file_data *mine = (struct read_file_data *)client_data;
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
/* We use _lseeki64() on Windows. */
|
||||
- int64_t old_offset, new_offset;
|
||||
+ int64_t old_offset, new_offset, skip = request;
|
||||
#else
|
||||
- off_t old_offset, new_offset;
|
||||
+ off_t old_offset, new_offset, skip = (off_t)request;
|
||||
#endif
|
||||
+ int skip_bits = sizeof(skip) * 8 - 1;
|
||||
|
||||
/* We use off_t here because lseek() is declared that way. */
|
||||
|
||||
- /* TODO: Deal with case where off_t isn't 64 bits.
|
||||
- * This shouldn't be a problem on Linux or other POSIX
|
||||
- * systems, since the configuration logic for libarchive
|
||||
- * tries to obtain a 64-bit off_t.
|
||||
- */
|
||||
+ /* Reduce a request that would overflow the 'skip' variable. */
|
||||
+ if (sizeof(request) > sizeof(skip)) {
|
||||
+ const int64_t max_skip =
|
||||
+ (((int64_t)1 << (skip_bits - 1)) - 1) * 2 + 1;
|
||||
+ if (request > max_skip)
|
||||
+ skip = max_skip;
|
||||
+ }
|
||||
+
|
||||
if ((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0 &&
|
||||
- (new_offset = lseek(mine->fd, request, SEEK_CUR)) >= 0)
|
||||
+ (new_offset = lseek(mine->fd, skip, SEEK_CUR)) >= 0)
|
||||
return (new_offset - old_offset);
|
||||
|
||||
/* If lseek() fails, don't bother trying again. */
|
||||
@@ -540,11 +544,24 @@ static int64_t
|
||||
file_seek(struct archive *a, void *client_data, int64_t request, int whence)
|
||||
{
|
||||
struct read_file_data *mine = (struct read_file_data *)client_data;
|
||||
+ off_t seek = (off_t)request;
|
||||
int64_t r;
|
||||
+ int seek_bits = sizeof(seek) * 8 - 1;
|
||||
|
||||
/* We use off_t here because lseek() is declared that way. */
|
||||
- /* See above for notes about when off_t is less than 64 bits. */
|
||||
- r = lseek(mine->fd, request, whence);
|
||||
+
|
||||
+ /* Reduce a request that would overflow the 'seek' variable. */
|
||||
+ if (sizeof(request) > sizeof(seek)) {
|
||||
+ const int64_t max_seek =
|
||||
+ (((int64_t)1 << (seek_bits - 1)) - 1) * 2 + 1;
|
||||
+ const int64_t min_seek = ~max_seek;
|
||||
+ if (request > max_seek)
|
||||
+ seek = (off_t)max_seek;
|
||||
+ else if (request < min_seek)
|
||||
+ seek = (off_t)min_seek;
|
||||
+ }
|
||||
+
|
||||
+ r = lseek(mine->fd, seek, whence);
|
||||
if (r >= 0)
|
||||
return r;
|
||||
|
||||
diff --git a/libarchive/test/read_open_memory.c b/libarchive/test/read_open_memory.c
|
||||
index 6d2468cd..9262ab9d 100644
|
||||
--- a/libarchive/test/read_open_memory.c
|
||||
+++ b/libarchive/test/read_open_memory.c
|
||||
@@ -167,7 +167,7 @@ memory_read_skip(struct archive *a, void *client_data, int64_t skip)
|
||||
|
||||
(void)a; /* UNUSED */
|
||||
/* We can't skip by more than is available. */
|
||||
- if ((off_t)skip > (off_t)(mine->end - mine->p))
|
||||
+ if (skip > mine->end - mine->p)
|
||||
skip = mine->end - mine->p;
|
||||
/* Always do small skips by prime amounts. */
|
||||
if (skip > 71)
|
||||
diff --git a/libarchive/test/test_sparse_basic.c b/libarchive/test/test_sparse_basic.c
|
||||
index 23cde567..93710cb6 100644
|
||||
--- a/libarchive/test/test_sparse_basic.c
|
||||
+++ b/libarchive/test/test_sparse_basic.c
|
||||
@@ -608,7 +608,8 @@ DEFINE_TEST(test_sparse_basic)
|
||||
verify_sparse_file(a, "file2", sparse_file2, 20);
|
||||
/* Encoded non sparse; expect a data block but no sparse entries. */
|
||||
verify_sparse_file(a, "file3", sparse_file3, 0);
|
||||
- verify_sparse_file(a, "file4", sparse_file4, 2);
|
||||
+ if (sizeof(off_t) > 4)
|
||||
+ verify_sparse_file(a, "file4", sparse_file4, 2);
|
||||
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
|
||||
@@ -635,7 +636,8 @@ DEFINE_TEST(test_sparse_basic)
|
||||
verify_sparse_file(a, "file1", sparse_file1, 0);
|
||||
verify_sparse_file(a, "file2", sparse_file2, 0);
|
||||
verify_sparse_file(a, "file3", sparse_file3, 0);
|
||||
- verify_sparse_file(a, "file4", sparse_file4, 0);
|
||||
+ if (sizeof(off_t) > 4)
|
||||
+ verify_sparse_file(a, "file4", sparse_file4, 0);
|
||||
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
|
||||
diff --git a/libarchive/test/test_tar_large.c b/libarchive/test/test_tar_large.c
|
||||
index c1f37916..1cde3218 100644
|
||||
--- a/libarchive/test/test_tar_large.c
|
||||
+++ b/libarchive/test/test_tar_large.c
|
||||
@@ -175,7 +175,7 @@ memory_read_skip(struct archive *a, void *_private, int64_t skip)
|
||||
}
|
||||
if (private->filebytes > 0) {
|
||||
if (private->filebytes < skip)
|
||||
- skip = (off_t)private->filebytes;
|
||||
+ skip = private->filebytes;
|
||||
private->filebytes -= skip;
|
||||
} else {
|
||||
skip = 0;
|
||||
111
meta/recipes-extended/libarchive/libarchive/CVE-2025-5916.patch
Normal file
111
meta/recipes-extended/libarchive/libarchive/CVE-2025-5916.patch
Normal file
@@ -0,0 +1,111 @@
|
||||
From ef093729521fcf73fa4007d5ae77adfe4df42403 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Stoeckmann <stoeckmann@users.noreply.github.com>
|
||||
Date: Mon, 7 Apr 2025 00:24:13 +0200
|
||||
Subject: [PATCH] warc: Prevent signed integer overflow (#2568)
|
||||
|
||||
If a warc archive claims to have more than INT64_MAX - 4 content bytes,
|
||||
the inevitable failure to skip all these bytes could lead to parsing
|
||||
data which should be ignored instead.
|
||||
|
||||
The test case contains a conversation entry with that many bytes and if
|
||||
the entry is not properly skipped, the warc implementation would read
|
||||
the conversation data as a new file entry.
|
||||
|
||||
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||
|
||||
CVE: CVE-2025-5916
|
||||
Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/ef093729521fcf73fa4007d5ae77adfe4df42403]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
Makefile.am | 1 +
|
||||
libarchive/archive_read_support_format_warc.c | 7 ++++--
|
||||
libarchive/test/test_read_format_warc.c | 24 +++++++++++++++++++
|
||||
.../test_read_format_warc_incomplete.warc.uu | 10 ++++++++
|
||||
4 files changed, 40 insertions(+), 2 deletions(-)
|
||||
create mode 100644 libarchive/test/test_read_format_warc_incomplete.warc.uu
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index efc49180..f372cbcb 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -964,6 +964,7 @@ libarchive_test_EXTRA_DIST=\
|
||||
libarchive/test/test_read_format_ustar_filename_eucjp.tar.Z.uu \
|
||||
libarchive/test/test_read_format_ustar_filename_koi8r.tar.Z.uu \
|
||||
libarchive/test/test_read_format_warc.warc.uu \
|
||||
+ libarchive/test/test_read_format_warc_incomplete.warc.uu \
|
||||
libarchive/test/test_read_format_xar_doublelink.xar.uu \
|
||||
libarchive/test/test_read_format_xar_duplicate_filename_node.xar.uu \
|
||||
libarchive/test/test_read_format_zip.zip.uu \
|
||||
diff --git a/libarchive/archive_read_support_format_warc.c b/libarchive/archive_read_support_format_warc.c
|
||||
index fcec5bc4..696f959c 100644
|
||||
--- a/libarchive/archive_read_support_format_warc.c
|
||||
+++ b/libarchive/archive_read_support_format_warc.c
|
||||
@@ -386,7 +386,8 @@ start_over:
|
||||
case LAST_WT:
|
||||
default:
|
||||
/* consume the content and start over */
|
||||
- _warc_skip(a);
|
||||
+ if (_warc_skip(a) < 0)
|
||||
+ return (ARCHIVE_FATAL);
|
||||
goto start_over;
|
||||
}
|
||||
return (ARCHIVE_OK);
|
||||
@@ -439,7 +440,9 @@ _warc_skip(struct archive_read *a)
|
||||
{
|
||||
struct warc_s *w = a->format->data;
|
||||
|
||||
- __archive_read_consume(a, w->cntlen + 4U/*\r\n\r\n separator*/);
|
||||
+ if (__archive_read_consume(a, w->cntlen) < 0 ||
|
||||
+ __archive_read_consume(a, 4U/*\r\n\r\n separator*/) < 0)
|
||||
+ return (ARCHIVE_FATAL);
|
||||
w->cntlen = 0U;
|
||||
w->cntoff = 0U;
|
||||
return (ARCHIVE_OK);
|
||||
diff --git a/libarchive/test/test_read_format_warc.c b/libarchive/test/test_read_format_warc.c
|
||||
index 91e6dc67..745aabff 100644
|
||||
--- a/libarchive/test/test_read_format_warc.c
|
||||
+++ b/libarchive/test/test_read_format_warc.c
|
||||
@@ -78,3 +78,27 @@ DEFINE_TEST(test_read_format_warc)
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
}
|
||||
+
|
||||
+DEFINE_TEST(test_read_format_warc_incomplete)
|
||||
+{
|
||||
+ const char reffile[] = "test_read_format_warc_incomplete.warc";
|
||||
+ struct archive_entry *ae;
|
||||
+ struct archive *a;
|
||||
+
|
||||
+ extract_reference_file(reffile);
|
||||
+ assert((a = archive_read_new()) != NULL);
|
||||
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
|
||||
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
|
||||
+ assertEqualIntA(a, ARCHIVE_OK,
|
||||
+ archive_read_open_filename(a, reffile, 10240));
|
||||
+
|
||||
+ /* Entry cannot be parsed */
|
||||
+ assertEqualIntA(a, ARCHIVE_FATAL, archive_read_next_header(a, &ae));
|
||||
+
|
||||
+ /* Verify archive format. */
|
||||
+ assertEqualIntA(a, ARCHIVE_FILTER_NONE, archive_filter_code(a, 0));
|
||||
+
|
||||
+ /* Verify closing and resource freeing */
|
||||
+ assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
+ assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
+}
|
||||
diff --git a/libarchive/test/test_read_format_warc_incomplete.warc.uu b/libarchive/test/test_read_format_warc_incomplete.warc.uu
|
||||
new file mode 100644
|
||||
index 00000000..b91b97ef
|
||||
--- /dev/null
|
||||
+++ b/libarchive/test/test_read_format_warc_incomplete.warc.uu
|
||||
@@ -0,0 +1,10 @@
|
||||
+begin 644 test_read_format_warc_incomplete.warc
|
||||
+M5T%20R\Q+C`-"E=!4D,M5'EP93H@8V]N=F5R<VEO;@T*5T%20RU$871E.B`R
|
||||
+M,#(U+3`S+3,P5#$U.C`P.C0P6@T*0V]N=&5N="U,96YG=&@Z(#DR,C,S-S(P
|
||||
+M,S8X-30W-S4X,#<-"@T*5T%20R\Q+C`-"E=!4D,M5'EP93H@<F5S;W5R8V4-
|
||||
+M"E=!4D,M5&%R9V5T+55223H@9FEL93HO+W)E861M92YT>'0-"E=!4D,M1&%T
|
||||
+M93H@,C`R-2TP,RTS,%0Q-3HP,#HT,%H-"D-O;G1E;G0M5'EP93H@=&5X="]P
|
||||
+M;&%I;@T*0V]N=&5N="U,96YG=&@Z(#,X#0H-"E1H92!R96%D;64N='AT('-H
|
||||
+4;W5L9"!N;W0@8F4@=FES:6)L90H`
|
||||
+`
|
||||
+end
|
||||
@@ -0,0 +1,49 @@
|
||||
From 7c02cde37a63580cd1859183fbbd2cf04a89be85 Mon Sep 17 00:00:00 2001
|
||||
From: Brian Campbell <Brian.Campbell@ed.ac.uk>
|
||||
Date: Sat, 26 Apr 2025 05:11:19 +0100
|
||||
Subject: [PATCH] Fix overflow in build_ustar_entry (#2588)
|
||||
|
||||
The calculations for the suffix and prefix can increment the endpoint
|
||||
for a trailing slash. Hence the limits used should be one lower than the
|
||||
maximum number of bytes.
|
||||
|
||||
Without this patch, when this happens for both the prefix and the
|
||||
suffix, we end up with 156 + 100 bytes, and the write of the null at the
|
||||
end will overflow the 256 byte buffer. This can be reproduced by running
|
||||
```
|
||||
mkdir -p foo/bar
|
||||
bsdtar cvf test.tar foo////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////bar
|
||||
```
|
||||
when bsdtar is compiled with Address Sanitiser, although I originally
|
||||
noticed this by accident with a genuine filename on a CHERI capability
|
||||
system, which faults immediately on the buffer overflow.
|
||||
|
||||
CVE: CVE-2025-5917
|
||||
Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/7c02cde37a63580cd1859183fbbd2cf04a89be85]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
libarchive/archive_write_set_format_pax.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libarchive/archive_write_set_format_pax.c b/libarchive/archive_write_set_format_pax.c
|
||||
index 0db45344..66e6d751 100644
|
||||
--- a/libarchive/archive_write_set_format_pax.c
|
||||
+++ b/libarchive/archive_write_set_format_pax.c
|
||||
@@ -1571,7 +1571,7 @@ build_ustar_entry_name(char *dest, const char *src, size_t src_length,
|
||||
const char *filename, *filename_end;
|
||||
char *p;
|
||||
int need_slash = 0; /* Was there a trailing slash? */
|
||||
- size_t suffix_length = 99;
|
||||
+ size_t suffix_length = 98; /* 99 - 1 for trailing slash */
|
||||
size_t insert_length;
|
||||
|
||||
/* Length of additional dir element to be added. */
|
||||
@@ -1623,7 +1623,7 @@ build_ustar_entry_name(char *dest, const char *src, size_t src_length,
|
||||
/* Step 2: Locate the "prefix" section of the dirname, including
|
||||
* trailing '/'. */
|
||||
prefix = src;
|
||||
- prefix_end = prefix + 155;
|
||||
+ prefix_end = prefix + 154 /* 155 - 1 for trailing / */;
|
||||
if (prefix_end > filename)
|
||||
prefix_end = filename;
|
||||
while (prefix_end > prefix && *prefix_end != '/')
|
||||
@@ -0,0 +1,217 @@
|
||||
From dcbf1e0ededa95849f098d154a25876ed5754bcf Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Stoeckmann <stoeckmann@users.noreply.github.com>
|
||||
Date: Tue, 15 Apr 2025 06:02:17 +0200
|
||||
Subject: [PATCH] Do not skip past EOF while reading (#2584)
|
||||
|
||||
Make sure to not skip past end of file for better error messages. One
|
||||
such example is now visible with rar testsuite. You can see the
|
||||
difference already by an actually not useless use of cat:
|
||||
|
||||
```
|
||||
$ cat .../test_read_format_rar_ppmd_use_after_free.rar | bsdtar -t
|
||||
bsdtar: Archive entry has empty or unreadable filename ... skipping.
|
||||
bsdtar: Archive entry has empty or unreadable filename ... skipping.
|
||||
bsdtar: Truncated input file (needed 119 bytes, only 0 available)
|
||||
bsdtar: Error exit delayed from previous errors.
|
||||
```
|
||||
|
||||
compared to
|
||||
|
||||
```
|
||||
$ bsdtar -tf .../test_read_format_rar_ppmd_use_after_free.rar
|
||||
bsdtar: Archive entry has empty or unreadable filename ... skipping.
|
||||
bsdtar: Archive entry has empty or unreadable filename ... skipping.
|
||||
bsdtar: Error exit delayed from previous errors.
|
||||
```
|
||||
|
||||
Since the former cannot lseek, the error is a different one
|
||||
(ARCHIVE_FATAL vs ARCHIVE_EOF). The piped version states explicitly that
|
||||
truncation occurred, while the latter states EOF because the skip past
|
||||
the end of file was successful.
|
||||
|
||||
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||
|
||||
CVE: CVE-2025-5918
|
||||
Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/dcbf1e0ededa95849f098d154a25876ed5754bcf]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
libarchive/archive_read_open_fd.c | 13 +++++++---
|
||||
libarchive/archive_read_open_file.c | 33 +++++++++++++++++++------
|
||||
libarchive/archive_read_open_filename.c | 16 +++++++++---
|
||||
libarchive/test/test_read_format_rar.c | 6 ++---
|
||||
4 files changed, 50 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/libarchive/archive_read_open_fd.c b/libarchive/archive_read_open_fd.c
|
||||
index 3fd536d5..dc7c9e52 100644
|
||||
--- a/libarchive/archive_read_open_fd.c
|
||||
+++ b/libarchive/archive_read_open_fd.c
|
||||
@@ -52,6 +52,7 @@
|
||||
struct read_fd_data {
|
||||
int fd;
|
||||
size_t block_size;
|
||||
+ int64_t size;
|
||||
char use_lseek;
|
||||
void *buffer;
|
||||
};
|
||||
@@ -95,6 +96,7 @@ archive_read_open_fd(struct archive *a, int fd, size_t block_size)
|
||||
if (S_ISREG(st.st_mode)) {
|
||||
archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino);
|
||||
mine->use_lseek = 1;
|
||||
+ mine->size = st.st_size;
|
||||
}
|
||||
#if defined(__CYGWIN__) || defined(_WIN32)
|
||||
setmode(mine->fd, O_BINARY);
|
||||
@@ -151,9 +153,14 @@ file_skip(struct archive *a, void *client_data, int64_t request)
|
||||
if (skip == 0)
|
||||
return (0);
|
||||
|
||||
- if (((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0) &&
|
||||
- ((new_offset = lseek(mine->fd, skip, SEEK_CUR)) >= 0))
|
||||
- return (new_offset - old_offset);
|
||||
+ if ((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0) {
|
||||
+ if (old_offset >= mine->size ||
|
||||
+ skip > mine->size - old_offset) {
|
||||
+ /* Do not seek past end of file. */
|
||||
+ errno = ESPIPE;
|
||||
+ } else if ((new_offset = lseek(mine->fd, skip, SEEK_CUR)) >= 0)
|
||||
+ return (new_offset - old_offset);
|
||||
+ }
|
||||
|
||||
/* If seek failed once, it will probably fail again. */
|
||||
mine->use_lseek = 0;
|
||||
diff --git a/libarchive/archive_read_open_file.c b/libarchive/archive_read_open_file.c
|
||||
index 2829b9a5..6ed18a0c 100644
|
||||
--- a/libarchive/archive_read_open_file.c
|
||||
+++ b/libarchive/archive_read_open_file.c
|
||||
@@ -52,6 +52,7 @@
|
||||
struct read_FILE_data {
|
||||
FILE *f;
|
||||
size_t block_size;
|
||||
+ int64_t size;
|
||||
void *buffer;
|
||||
char can_skip;
|
||||
};
|
||||
@@ -91,6 +92,7 @@ archive_read_open_FILE(struct archive *a, FILE *f)
|
||||
archive_read_extract_set_skip_file(a, st.st_dev, st.st_ino);
|
||||
/* Enable the seek optimization only for regular files. */
|
||||
mine->can_skip = 1;
|
||||
+ mine->size = st.st_size;
|
||||
}
|
||||
|
||||
#if defined(__CYGWIN__) || defined(_WIN32)
|
||||
@@ -130,6 +132,7 @@ FILE_skip(struct archive *a, void *client_data, int64_t request)
|
||||
#else
|
||||
long skip = (long)request;
|
||||
#endif
|
||||
+ int64_t old_offset, new_offset;
|
||||
int skip_bits = sizeof(skip) * 8 - 1;
|
||||
|
||||
(void)a; /* UNUSED */
|
||||
@@ -153,19 +156,33 @@ FILE_skip(struct archive *a, void *client_data, int64_t request)
|
||||
|
||||
#ifdef __ANDROID__
|
||||
/* fileno() isn't safe on all platforms ... see above. */
|
||||
- if (lseek(fileno(mine->f), skip, SEEK_CUR) < 0)
|
||||
+ old_offset = lseek(fileno(mine->f), 0, SEEK_CUR);
|
||||
#elif HAVE__FSEEKI64
|
||||
- if (_fseeki64(mine->f, skip, SEEK_CUR) != 0)
|
||||
+ old_offset = _ftelli64(mine->f);
|
||||
#elif HAVE_FSEEKO
|
||||
- if (fseeko(mine->f, skip, SEEK_CUR) != 0)
|
||||
+ old_offset = ftello(mine->f);
|
||||
#else
|
||||
- if (fseek(mine->f, skip, SEEK_CUR) != 0)
|
||||
+ old_offset = ftell(mine->f);
|
||||
#endif
|
||||
- {
|
||||
- mine->can_skip = 0;
|
||||
- return (0);
|
||||
+ if (old_offset >= 0) {
|
||||
+ if (old_offset < mine->size &&
|
||||
+ skip <= mine->size - old_offset) {
|
||||
+#ifdef __ANDROID__
|
||||
+ new_offset = lseek(fileno(mine->f), skip, SEEK_CUR);
|
||||
+#elif HAVE__FSEEKI64
|
||||
+ new_offset = _fseeki64(mine->f, skip, SEEK_CUR);
|
||||
+#elif HAVE_FSEEKO
|
||||
+ new_offset = fseeko(mine->f, skip, SEEK_CUR);
|
||||
+#else
|
||||
+ new_offset = fseek(mine->f, skip, SEEK_CUR);
|
||||
+#endif
|
||||
+ if (new_offset >= 0)
|
||||
+ return (new_offset - old_offset);
|
||||
+ }
|
||||
}
|
||||
- return (request);
|
||||
+
|
||||
+ mine->can_skip = 0;
|
||||
+ return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
diff --git a/libarchive/archive_read_open_filename.c b/libarchive/archive_read_open_filename.c
|
||||
index 3894b15c..5f5b3f1f 100644
|
||||
--- a/libarchive/archive_read_open_filename.c
|
||||
+++ b/libarchive/archive_read_open_filename.c
|
||||
@@ -74,6 +74,7 @@ struct read_file_data {
|
||||
size_t block_size;
|
||||
void *buffer;
|
||||
mode_t st_mode; /* Mode bits for opened file. */
|
||||
+ int64_t size;
|
||||
char use_lseek;
|
||||
enum fnt_e { FNT_STDIN, FNT_MBS, FNT_WCS } filename_type;
|
||||
union {
|
||||
@@ -400,8 +401,10 @@ file_open(struct archive *a, void *client_data)
|
||||
mine->st_mode = st.st_mode;
|
||||
|
||||
/* Disk-like inputs can use lseek(). */
|
||||
- if (is_disk_like)
|
||||
+ if (is_disk_like) {
|
||||
mine->use_lseek = 1;
|
||||
+ mine->size = st.st_size;
|
||||
+ }
|
||||
|
||||
return (ARCHIVE_OK);
|
||||
fail:
|
||||
@@ -495,9 +498,14 @@ file_skip_lseek(struct archive *a, void *client_data, int64_t request)
|
||||
skip = max_skip;
|
||||
}
|
||||
|
||||
- if ((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0 &&
|
||||
- (new_offset = lseek(mine->fd, skip, SEEK_CUR)) >= 0)
|
||||
- return (new_offset - old_offset);
|
||||
+ if ((old_offset = lseek(mine->fd, 0, SEEK_CUR)) >= 0) {
|
||||
+ if (old_offset >= mine->size ||
|
||||
+ skip > mine->size - old_offset) {
|
||||
+ /* Do not seek past end of file. */
|
||||
+ errno = ESPIPE;
|
||||
+ } else if ((new_offset = lseek(mine->fd, skip, SEEK_CUR)) >= 0)
|
||||
+ return (new_offset - old_offset);
|
||||
+ }
|
||||
|
||||
/* If lseek() fails, don't bother trying again. */
|
||||
mine->use_lseek = 0;
|
||||
diff --git a/libarchive/test/test_read_format_rar.c b/libarchive/test/test_read_format_rar.c
|
||||
index dce567af..fce44a9d 100644
|
||||
--- a/libarchive/test/test_read_format_rar.c
|
||||
+++ b/libarchive/test/test_read_format_rar.c
|
||||
@@ -3829,8 +3829,8 @@ DEFINE_TEST(test_read_format_rar_ppmd_use_after_free)
|
||||
assertA(ARCHIVE_OK == archive_read_next_header(a, &ae));
|
||||
assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
|
||||
|
||||
- /* Test EOF */
|
||||
- assertA(1 == archive_read_next_header(a, &ae));
|
||||
+ /* Test for truncation */
|
||||
+ assertA(ARCHIVE_FATAL == archive_read_next_header(a, &ae));
|
||||
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
@@ -3856,7 +3856,7 @@ DEFINE_TEST(test_read_format_rar_ppmd_use_after_free2)
|
||||
assertA(archive_read_data(a, buf, sizeof(buf)) <= 0);
|
||||
|
||||
/* Test EOF */
|
||||
- assertA(1 == archive_read_next_header(a, &ae));
|
||||
+ assertA(ARCHIVE_FATAL == archive_read_next_header(a, &ae));
|
||||
|
||||
assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
|
||||
assertEqualInt(ARCHIVE_OK, archive_read_free(a));
|
||||
@@ -0,0 +1,51 @@
|
||||
From 51b4c35bb38b7df4af24de7f103863dd79129b01 Mon Sep 17 00:00:00 2001
|
||||
From: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||
Date: Tue, 27 May 2025 17:09:12 +0200
|
||||
Subject: [PATCH] Fix FILE_skip regression
|
||||
|
||||
The fseek* family of functions return 0 on success, not the new offset.
|
||||
This is only true for lseek.
|
||||
|
||||
Fixes https://github.com/libarchive/libarchive/issues/2641
|
||||
Fixes dcbf1e0ededa95849f098d154a25876ed5754bcf
|
||||
|
||||
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||
|
||||
CVE: CVE-2025-5918
|
||||
Upstream-Status: Backport [https://github.com/libarchive/libarchive/commit/51b4c35bb38b7df4af24de7f103863dd79129b01]
|
||||
Signed-off-by: Peter Marko <peter.marko@siemens.com>
|
||||
---
|
||||
libarchive/archive_read_open_file.c | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/libarchive/archive_read_open_file.c b/libarchive/archive_read_open_file.c
|
||||
index 6ed18a0c..742923ab 100644
|
||||
--- a/libarchive/archive_read_open_file.c
|
||||
+++ b/libarchive/archive_read_open_file.c
|
||||
@@ -132,7 +132,7 @@ FILE_skip(struct archive *a, void *client_data, int64_t request)
|
||||
#else
|
||||
long skip = (long)request;
|
||||
#endif
|
||||
- int64_t old_offset, new_offset;
|
||||
+ int64_t old_offset, new_offset = -1;
|
||||
int skip_bits = sizeof(skip) * 8 - 1;
|
||||
|
||||
(void)a; /* UNUSED */
|
||||
@@ -170,11 +170,14 @@ FILE_skip(struct archive *a, void *client_data, int64_t request)
|
||||
#ifdef __ANDROID__
|
||||
new_offset = lseek(fileno(mine->f), skip, SEEK_CUR);
|
||||
#elif HAVE__FSEEKI64
|
||||
- new_offset = _fseeki64(mine->f, skip, SEEK_CUR);
|
||||
+ if (_fseeki64(mine->f, skip, SEEK_CUR) == 0)
|
||||
+ new_offset = _ftelli64(mine->f);
|
||||
#elif HAVE_FSEEKO
|
||||
- new_offset = fseeko(mine->f, skip, SEEK_CUR);
|
||||
+ if (fseeko(mine->f, skip, SEEK_CUR) == 0)
|
||||
+ new_offset = ftello(mine->f);
|
||||
#else
|
||||
- new_offset = fseek(mine->f, skip, SEEK_CUR);
|
||||
+ if (fseek(mine->f, skip, SEEK_CUR) == 0)
|
||||
+ new_offset = ftell(mine->f);
|
||||
#endif
|
||||
if (new_offset >= 0)
|
||||
return (new_offset - old_offset);
|
||||
@@ -32,6 +32,11 @@ EXTRA_OECONF += "--enable-largefile --without-iconv"
|
||||
SRC_URI = "https://libarchive.org/downloads/libarchive-${PV}.tar.gz \
|
||||
file://CVE-2025-5914.patch \
|
||||
file://CVE-2025-5915.patch \
|
||||
file://CVE-2025-5916.patch \
|
||||
file://CVE-2025-5917.patch \
|
||||
file://0001-Improve-lseek-handling-2564.patch \
|
||||
file://CVE-2025-5918-01.patch \
|
||||
file://CVE-2025-5918-02.patch \
|
||||
"
|
||||
|
||||
UPSTREAM_CHECK_URI = "http://libarchive.org/"
|
||||
|
||||
@@ -1253,6 +1253,7 @@ FILES:${PN}-rtl8723 = " \
|
||||
FILES:${PN}-rtl8821 = " \
|
||||
${nonarch_base_libdir}/firmware/rtlwifi/rtl8821*.bin* \
|
||||
${nonarch_base_libdir}/firmware/rtw88/rtw8821*.bin* \
|
||||
${nonarch_base_libdir}/firmware/rtl_bt/rtl8821*.bin \
|
||||
"
|
||||
FILES:${PN}-rtl8761 = " \
|
||||
${nonarch_base_libdir}/firmware/rtl_bt/rtl8761*.bin* \
|
||||
@@ -1756,7 +1757,10 @@ RDEPENDS:${PN}-ice = "${PN}-ice-license"
|
||||
FILES:${PN}-adsp-sst-license = "${nonarch_base_libdir}/firmware/LICENCE.adsp_sst"
|
||||
LICENSE:${PN}-adsp-sst = "Firmware-adsp_sst"
|
||||
LICENSE:${PN}-adsp-sst-license = "Firmware-adsp_sst"
|
||||
FILES:${PN}-adsp-sst = "${nonarch_base_libdir}/firmware/intel/dsp_fw*"
|
||||
FILES:${PN}-adsp-sst = "\
|
||||
${nonarch_base_libdir}/firmware/intel/dsp_fw* \
|
||||
${nonarch_base_libdir}/firmware/intel/avs/*/dsp_basefw.bin \
|
||||
"
|
||||
RDEPENDS:${PN}-adsp-sst = "${PN}-adsp-sst-license"
|
||||
|
||||
# For QAT
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,13 +14,13 @@ python () {
|
||||
raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
|
||||
}
|
||||
|
||||
SRCREV_machine ?= "2aa940a9e5701e5b4107d0250da79a52e01da34a"
|
||||
SRCREV_meta ?= "5db57044962c6155c4e82f06d87e90dfe49a59e6"
|
||||
SRCREV_machine ?= "b463156a724cd3f095e1dadd87bf3c1c8115c9ff"
|
||||
SRCREV_meta ?= "fb30a9a1d027d938de70890be92c22b33e0194b1"
|
||||
|
||||
SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
|
||||
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.12;destsuffix=${KMETA};protocol=https"
|
||||
|
||||
LINUX_VERSION ?= "6.12.38"
|
||||
LINUX_VERSION ?= "6.12.47"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ require recipes-kernel/linux/linux-yocto.inc
|
||||
# CVE exclusions
|
||||
include recipes-kernel/linux/cve-exclusion_6.12.inc
|
||||
|
||||
LINUX_VERSION ?= "6.12.38"
|
||||
LINUX_VERSION ?= "6.12.47"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
|
||||
DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
|
||||
@@ -17,8 +17,8 @@ DEPENDS += "openssl-native util-linux-native"
|
||||
KMETA = "kernel-meta"
|
||||
KCONF_BSP_AUDIT_LEVEL = "2"
|
||||
|
||||
SRCREV_machine ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_meta ?= "5db57044962c6155c4e82f06d87e90dfe49a59e6"
|
||||
SRCREV_machine ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_meta ?= "fb30a9a1d027d938de70890be92c22b33e0194b1"
|
||||
|
||||
PV = "${LINUX_VERSION}+git"
|
||||
|
||||
|
||||
@@ -37,22 +37,6 @@ KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'cfg/
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'numa', 'features/numa/numa.scc', '', d)}"
|
||||
KERNEL_FEATURES:append = " ${@bb.utils.contains('MACHINE_FEATURES', 'vfat', 'cfg/fs/vfat.scc', '', d)}"
|
||||
|
||||
KERNEL_FEATURES_RISCV = "\
|
||||
arch/riscv/tunes/riscv-isa-clear.scc \
|
||||
${@bb.utils.contains( 'TUNE_FEATURES', 'rv 32 i m a', 'arch/riscv/tunes/riscv-isa-rv32i.scc', '', d)} \
|
||||
${@bb.utils.contains( 'TUNE_FEATURES', 'rv 64 i m a', 'arch/riscv/tunes/riscv-isa-rv64i.scc', '', d)} \
|
||||
${@bb.utils.contains( 'TUNE_FEATURES', 'f d', 'arch/riscv/tunes/riscv-isa-fpu.scc', '', d)} \
|
||||
${@bb.utils.contains( 'TUNE_FEATURES', 'c', 'arch/riscv/tunes/riscv-isa-c.scc', '', d)} \
|
||||
${@bb.utils.contains( 'TUNE_FEATURES', 'v', 'arch/riscv/tunes/riscv-isa-v.scc', '', d)} \
|
||||
${@bb.utils.contains_any('TUNE_FEATURES', 'b zba', 'arch/riscv/tunes/riscv-isa-zba.scc', '', d)} \
|
||||
${@bb.utils.contains_any('TUNE_FEATURES', 'b zbb', 'arch/riscv/tunes/riscv-isa-zbb.scc', '', d)} \
|
||||
${@bb.utils.contains( 'TUNE_FEATURES', 'zbc', 'arch/riscv/tunes/riscv-isa-zbc.scc', '', d)} \
|
||||
${@bb.utils.contains( 'TUNE_FEATURES', 'zicbom', 'arch/riscv/tunes/riscv-isa-zicbom.scc', '', d)} \
|
||||
"
|
||||
|
||||
KERNEL_FEATURES:append:riscv32 = " ${KERNEL_FEATURES_RISCV}"
|
||||
KERNEL_FEATURES:append:riscv64 = " ${KERNEL_FEATURES_RISCV}"
|
||||
|
||||
# A KMACHINE is the mapping of a yocto $MACHINE to what is built
|
||||
# by the kernel. This is typically the branch that should be built,
|
||||
# and it can be specific to the machine or shared
|
||||
|
||||
@@ -18,25 +18,25 @@ KBRANCH:qemux86.104 ?= "v6.12/standard/base"
|
||||
KBRANCH:qemuloongarch64 ?= "v6.12/standard/base"
|
||||
KBRANCH:qemumips64 ?= "v6.12/standard/mti-malta64"
|
||||
|
||||
SRCREV_machine:qemuarm ?= "c2755158bc029faf978e980235471b0f0e864814"
|
||||
SRCREV_machine:qemuarm64 ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_machine:qemuloongarch64 ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_machine:qemumips ?= "facf6694c9bdcaa9efb2d46a2c6e8e30fc72cdd3"
|
||||
SRCREV_machine:qemuppc ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_machine:qemuriscv64 ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_machine:qemuriscv32 ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_machine:qemux86 ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_machine:qemux86-64 ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_machine:qemumips64 ?= "4ef2a68a188df7f561f5e297c4a3bab7e79e426f"
|
||||
SRCREV_machine ?= "fa4b881d24f752a559d8e1f75ed08895ef20b14d"
|
||||
SRCREV_meta ?= "5db57044962c6155c4e82f06d87e90dfe49a59e6"
|
||||
SRCREV_machine:qemuarm ?= "ace248eb90be5ddc94caea17db41d7190fc87817"
|
||||
SRCREV_machine:qemuarm64 ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_machine:qemuloongarch64 ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_machine:qemumips ?= "a766160558c9434368462f9fada2ac0871017cbd"
|
||||
SRCREV_machine:qemuppc ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_machine:qemuriscv64 ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_machine:qemuriscv32 ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_machine:qemux86 ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_machine:qemux86-64 ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_machine:qemumips64 ?= "ea35e13b7cd3d7cea1c2e8c17f8144209496a8b7"
|
||||
SRCREV_machine ?= "8161e9a0fe4611484f3f055a7c633759a513bd84"
|
||||
SRCREV_meta ?= "fb30a9a1d027d938de70890be92c22b33e0194b1"
|
||||
|
||||
# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
|
||||
# get the <version>/base branch, which is pure upstream -stable, and the same
|
||||
# meta SRCREV as the linux-yocto-standard builds. Select your version using the
|
||||
# normal PREFERRED_VERSION settings.
|
||||
BBCLASSEXTEND = "devupstream:target"
|
||||
SRCREV_machine:class-devupstream ?= "259f4977409c87a980fa2227b7c76a2fe3fb8c2f"
|
||||
SRCREV_machine:class-devupstream ?= "f6cf124428f51e3ef07a8e54c743873face9d2b2"
|
||||
PN:class-devupstream = "linux-yocto-upstream"
|
||||
KBRANCH:class-devupstream = "v6.12/base"
|
||||
|
||||
@@ -44,7 +44,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRA
|
||||
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.12;destsuffix=${KMETA};protocol=https"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
|
||||
LINUX_VERSION ?= "6.12.38"
|
||||
LINUX_VERSION ?= "6.12.47"
|
||||
|
||||
PV = "${LINUX_VERSION}+git"
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
|
||||
file://CVE-2025-22921.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "733984395e0dbbe5c046abda2dc49a5544e7e0e1e2366bba849222ae9e3a03b1"
|
||||
SRC_URI[sha256sum] = "089bc60fb59d6aecc5d994ff530fd0dcb3ee39aa55867849a2bbc4e555f9c304"
|
||||
|
||||
# https://nvd.nist.gov/vuln/detail/CVE-2023-39018
|
||||
# https://github.com/bramp/ffmpeg-cli-wrapper/issues/291
|
||||
@@ -12,7 +12,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${PV}
|
||||
file://0001-connect-has-a-different-signature-on-musl.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "4ef3dd12e5827068d6db7ad01876d1216a80717116c24a0d5b3b57fd7e3c3478"
|
||||
SRC_URI[sha256sum] = "2485b30dfb94b65e2e4befb0b9367fbecbfcf2102b24fa9138df4403497e7b73"
|
||||
|
||||
DEPENDS = "json-glib glib-2.0 glib-2.0-native gstreamer1.0 gstreamer1.0-plugins-base"
|
||||
RRECOMMENDS:${PN} = "git"
|
||||
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
|
||||
"
|
||||
|
||||
SRC_URI = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz"
|
||||
SRC_URI[sha256sum] = "ef72c1c70a17b3c0bb283d16d09aba496d3401c927dcf5392a8a7866d9336379"
|
||||
SRC_URI[sha256sum] = "150e2b70588fa32a1294f42665756f2175417ce4b5988e2c2081b683719aa6c1"
|
||||
|
||||
S = "${WORKDIR}/gst-libav-${PV}"
|
||||
|
||||
@@ -10,7 +10,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad
|
||||
file://0002-avoid-including-sys-poll.h-directly.patch \
|
||||
file://0004-opencv-resolve-missing-opencv-data-dir-in-yocto-buil.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "3d386af3d1dbd1a06c74a6251250c269b481e703f0e3255ba89ef6c1e063afea"
|
||||
SRC_URI[sha256sum] = "3cbe7d7cec5db958781f7ab66caa5afd67b133c223fde71f0403277731f0cc4d"
|
||||
|
||||
S = "${WORKDIR}/gst-plugins-bad-${PV}"
|
||||
|
||||
@@ -11,7 +11,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-ba
|
||||
file://0003-viv-fb-Make-sure-config.h-is-included.patch \
|
||||
file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "f6efbaa8fea8d00bc380bccca76a530527b1f083e8523eafb3e9b1e18bc653d3"
|
||||
SRC_URI[sha256sum] = "31a4a34e02df0471274fd0e8016495475b670320d20a3349faf0634340166c42"
|
||||
|
||||
S = "${WORKDIR}/gst-plugins-base-${PV}"
|
||||
|
||||
@@ -6,7 +6,7 @@ BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues
|
||||
|
||||
SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz"
|
||||
|
||||
SRC_URI[sha256sum] = "d0e66e2f935d1575f6adbef7d0a2b3faba7360344383c51bf0233b39e0489a64"
|
||||
SRC_URI[sha256sum] = "574ac6f9fd84b32eb04e80572391d6762df6f9802a47bc0386cd6cc48c14d08b"
|
||||
|
||||
S = "${WORKDIR}/gst-plugins-good-${PV}"
|
||||
|
||||
@@ -15,7 +15,7 @@ SRC_URI = " \
|
||||
https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "19ed6eef4ea1a742234fb35e2cdb107168595a4dd409a9fac0b7a16543eee78b"
|
||||
SRC_URI[sha256sum] = "dc08bb11dce0a43453466fb9034e4fe06709fb5af68475bcf6d288693b661a5d"
|
||||
|
||||
S = "${WORKDIR}/gst-plugins-ugly-${PV}"
|
||||
|
||||
@@ -8,7 +8,7 @@ LICENSE = "LGPL-2.1-or-later"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
|
||||
|
||||
SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
|
||||
SRC_URI[sha256sum] = "d679e2ca3e655a7328627c4670c324fc22f588d2cb8ecd2fa7a6a42df51132cc"
|
||||
SRC_URI[sha256sum] = "abb9a1edc11d67a463b6cef7b74a8b10ea6c342760c012d597102a7bfb7e09da"
|
||||
|
||||
DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
|
||||
RDEPENDS:${PN} += "gstreamer1.0 gstreamer1.0-plugins-base python3-pygobject"
|
||||
@@ -10,7 +10,7 @@ PNREAL = "gst-rtsp-server"
|
||||
|
||||
SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
|
||||
|
||||
SRC_URI[sha256sum] = "a335f73687d2efe22db94348c6893c73b53a2c6bc55ee7a590028ba196ddc623"
|
||||
SRC_URI[sha256sum] = "e8dd102a3d1026414f0048daed91078e7958012b56efea7e45fe2b3448b42d6f"
|
||||
|
||||
S = "${WORKDIR}/${PNREAL}-${PV}"
|
||||
|
||||
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
|
||||
|
||||
SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz"
|
||||
|
||||
SRC_URI[sha256sum] = "39ab3d2a381c99a9e10f46182ed57c6baaeaa8be810bd2f84f162c8be299753c"
|
||||
SRC_URI[sha256sum] = "b92c008841387043aec83b08b1fa8cf41e7866a106311a7d99e274e7d24ddc47"
|
||||
|
||||
S = "${WORKDIR}/${REALPN}-${PV}"
|
||||
DEPENDS = "libva gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad"
|
||||
@@ -22,7 +22,7 @@ SRC_URI = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.x
|
||||
file://0003-tests-use-a-dictionaries-for-environment.patch \
|
||||
file://0004-tests-add-helper-script-to-run-the-installed_tests.patch \
|
||||
"
|
||||
SRC_URI[sha256sum] = "b3522d1b4fe174fff3b3c7f0603493e2367bd1c43f5804df15b634bd22b1036f"
|
||||
SRC_URI[sha256sum] = "ed4678e1d0708db01a469ae5dd31c10cac73c0fb3f7c2c471b0d3cab0affc7d1"
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
|
||||
check \
|
||||
@@ -71,4 +71,14 @@ RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-5"
|
||||
|
||||
CVE_PRODUCT = "gstreamer"
|
||||
|
||||
CVE_STATUS_GROUPS += "CVE_STATUS_STABLE_BACKPORT"
|
||||
CVE_STATUS_STABLE_BACKPORT = "CVE-2025-47183 CVE-2025-47219 CVE-2025-47806 CVE-2025-47807 CVE-2025-47808"
|
||||
CVE_STATUS_STABLE_BACKPORT[status] = "cpe-stable-backport: these CVEs are patched in current version"
|
||||
|
||||
CVE_STATUS[CVE-2025-2759] = "not-applicable-platform: affects installation packages for non Linux OSes"
|
||||
|
||||
CVE_STATUS_GROUPS += "CVE_STATUS_PLUGINS_BAD"
|
||||
CVE_STATUS_PLUGINS_BAD = "CVE-2025-3887"
|
||||
CVE_STATUS_PLUGINS_BAD[status] = "cpe-incorrect: these CVEs is patched in current version of gstreamer1.0-plugins-bad"
|
||||
|
||||
PTEST_BUILD_HOST_FILES = ""
|
||||
77
meta/recipes-multimedia/libtiff/tiff/CVE-2024-13978_1.patch
Normal file
77
meta/recipes-multimedia/libtiff/tiff/CVE-2024-13978_1.patch
Normal file
@@ -0,0 +1,77 @@
|
||||
From 6dd7006103f9612fbd22e9c7c1b93d16691370a4 Mon Sep 17 00:00:00 2001
|
||||
From: Lee Howard <faxguy@howardsilvan.com>
|
||||
Date: Fri, 27 Sep 2024 11:21:57 -0700
|
||||
Subject: [PATCH 1/7] Fix issue #649 in fax2ps caused by regression in commit
|
||||
https://gitlab.com/libtiff/libtiff/-/commit/28c38d648b64a66c3218778c4745225fe3e3a06d
|
||||
where TIFFTAG_FAXFILLFUNC is being used rather than an output buffer.
|
||||
|
||||
CVE: CVE-2024-13978
|
||||
Upstream-Status: Backport from [https://gitlab.com/libtiff/libtiff/-/commit/7be20ccaab97455f192de0ac561ceda7cd9e12d1]
|
||||
Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
|
||||
---
|
||||
libtiff/tif_read.c | 21 ++++++++++++++++-----
|
||||
1 file changed, 16 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libtiff/tif_read.c b/libtiff/tif_read.c
|
||||
index 7efab59..964f119 100644
|
||||
--- a/libtiff/tif_read.c
|
||||
+++ b/libtiff/tif_read.c
|
||||
@@ -466,7 +466,9 @@ int TIFFReadScanline(TIFF *tif, void *buf, uint32_t row, uint16_t sample)
|
||||
}
|
||||
else
|
||||
{
|
||||
- memset(buf, 0, (size_t)tif->tif_scanlinesize);
|
||||
+ /* See TIFFReadEncodedStrip comment regarding TIFFTAG_FAXFILLFUNC. */
|
||||
+ if (buf)
|
||||
+ memset(buf, 0, (size_t)tif->tif_scanlinesize);
|
||||
}
|
||||
return (e > 0 ? 1 : -1);
|
||||
}
|
||||
@@ -554,7 +556,10 @@ tmsize_t TIFFReadEncodedStrip(TIFF *tif, uint32_t strip, void *buf,
|
||||
stripsize = size;
|
||||
if (!TIFFFillStrip(tif, strip))
|
||||
{
|
||||
- memset(buf, 0, (size_t)stripsize);
|
||||
+ /* The output buf may be NULL, in particular if TIFFTAG_FAXFILLFUNC
|
||||
+ is being used. Thus, memset must be conditional on buf not NULL. */
|
||||
+ if (buf)
|
||||
+ memset(buf, 0, (size_t)stripsize);
|
||||
return ((tmsize_t)(-1));
|
||||
}
|
||||
if ((*tif->tif_decodestrip)(tif, buf, stripsize, plane) <= 0)
|
||||
@@ -976,7 +981,9 @@ tmsize_t TIFFReadEncodedTile(TIFF *tif, uint32_t tile, void *buf, tmsize_t size)
|
||||
size = tilesize;
|
||||
if (!TIFFFillTile(tif, tile))
|
||||
{
|
||||
- memset(buf, 0, (size_t)size);
|
||||
+ /* See TIFFReadEncodedStrip comment regarding TIFFTAG_FAXFILLFUNC. */
|
||||
+ if (buf)
|
||||
+ memset(buf, 0, (size_t)size);
|
||||
return ((tmsize_t)(-1));
|
||||
}
|
||||
else if ((*tif->tif_decodetile)(tif, (uint8_t *)buf, size,
|
||||
@@ -1569,7 +1576,9 @@ int TIFFReadFromUserBuffer(TIFF *tif, uint32_t strile, void *inbuf,
|
||||
if (!TIFFStartTile(tif, strile))
|
||||
{
|
||||
ret = 0;
|
||||
- memset(outbuf, 0, (size_t)outsize);
|
||||
+ /* See related TIFFReadEncodedStrip comment. */
|
||||
+ if (outbuf)
|
||||
+ memset(outbuf, 0, (size_t)outsize);
|
||||
}
|
||||
else if (!(*tif->tif_decodetile)(
|
||||
tif, (uint8_t *)outbuf, outsize,
|
||||
@@ -1596,7 +1605,9 @@ int TIFFReadFromUserBuffer(TIFF *tif, uint32_t strile, void *inbuf,
|
||||
if (!TIFFStartStrip(tif, strile))
|
||||
{
|
||||
ret = 0;
|
||||
- memset(outbuf, 0, (size_t)outsize);
|
||||
+ /* See related TIFFReadEncodedStrip comment. */
|
||||
+ if (outbuf)
|
||||
+ memset(outbuf, 0, (size_t)outsize);
|
||||
}
|
||||
else if (!(*tif->tif_decodestrip)(
|
||||
tif, (uint8_t *)outbuf, outsize,
|
||||
--
|
||||
2.47.3
|
||||
|
||||
45
meta/recipes-multimedia/libtiff/tiff/CVE-2024-13978_2.patch
Normal file
45
meta/recipes-multimedia/libtiff/tiff/CVE-2024-13978_2.patch
Normal file
@@ -0,0 +1,45 @@
|
||||
From a80b9eb70a8137e2571b2f32bd05d1a22a5603c4 Mon Sep 17 00:00:00 2001
|
||||
From: Lee Howard <faxguy@howardsilvan.com>
|
||||
Date: Sat, 5 Oct 2024 09:45:30 -0700
|
||||
Subject: [PATCH 2/7] Check TIFFTAG_TILELENGTH and TIFFTAGTILEWIDTH for valid
|
||||
input, addresses issue #650
|
||||
|
||||
CVE: CVE-2024-13978
|
||||
Upstream-Status: Backport from [https://gitlab.com/libtiff/libtiff/-/commit/2ebfffb0e8836bfb1cd7d85c059cd285c59761a4]
|
||||
Signed-off-by: Siddharth Doshi <sdoshi@mvista.com>
|
||||
---
|
||||
tools/tiff2pdf.c | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c
|
||||
index 6dfc239..2010fee 100644
|
||||
--- a/tools/tiff2pdf.c
|
||||
+++ b/tools/tiff2pdf.c
|
||||
@@ -1371,8 +1371,24 @@ void t2p_read_tiff_init(T2P *t2p, TIFF *input)
|
||||
t2p->pdf_xrefcount += (t2p->tiff_tiles[i].tiles_tilecount - 1) * 2;
|
||||
TIFFGetField(input, TIFFTAG_TILEWIDTH,
|
||||
&(t2p->tiff_tiles[i].tiles_tilewidth));
|
||||
+ if (t2p->tiff_tiles[i].tiles_tilewidth < 1)
|
||||
+ {
|
||||
+ TIFFError(TIFF2PDF_MODULE, "Invalid tile width (%d), %s",
|
||||
+ t2p->tiff_tiles[i].tiles_tilewidth,
|
||||
+ TIFFFileName(input));
|
||||
+ t2p->t2p_error = T2P_ERR_ERROR;
|
||||
+ return;
|
||||
+ }
|
||||
TIFFGetField(input, TIFFTAG_TILELENGTH,
|
||||
&(t2p->tiff_tiles[i].tiles_tilelength));
|
||||
+ if (t2p->tiff_tiles[i].tiles_tilelength < 1)
|
||||
+ {
|
||||
+ TIFFError(TIFF2PDF_MODULE, "Invalid tile length (%d), %s",
|
||||
+ t2p->tiff_tiles[i].tiles_tilelength,
|
||||
+ TIFFFileName(input));
|
||||
+ t2p->t2p_error = T2P_ERR_ERROR;
|
||||
+ return;
|
||||
+ }
|
||||
t2p->tiff_tiles[i].tiles_tiles = (T2P_TILE *)_TIFFmalloc(
|
||||
TIFFSafeMultiply(tmsize_t, t2p->tiff_tiles[i].tiles_tilecount,
|
||||
sizeof(T2P_TILE)));
|
||||
--
|
||||
2.47.3
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user