<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/test/py, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/test/py?h=main</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/test/py?h=main'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2026-08-27T21:05:06Z</updated>
<entry>
<title>Merge patch series "fs/squashfs: fix directory table integer overflow"</title>
<updated>2026-08-27T21:05:06Z</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2026-08-27T21:05:06Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=658fc6aee95784139f070f9945cb3bc5da8d7d22'/>
<id>urn:sha1:658fc6aee95784139f070f9945cb3bc5da8d7d22</id>
<content type='text'>
Shahriyar Jalayeri &lt;shahriyar@byteray.co.uk&gt; says:

This fixes an integer overflow in the SquashFS directory-table reader
that leads to a heap out-of-bounds write, and adds a regression test.

sqfs_read_directory_table() sizes the directory table with an int
multiply (metablks_count * SQFS_METADATA_BLOCK_SIZE) that wraps for a
crafted image, under-allocating the buffer that the fill loop then
overruns. It is reached by listing or reading the image (sqfsls /
sqfsload). Patch 1 guards the allocation with __builtin_mul_overflow();
patch 2 adds a test that a crafted image is rejected.

Based on v2026.07 (fdfe2ec48d5c). A reproducer is available on request.

[trini: As part of the merge, this touches on what commit
 9a9d46cb5e1a ("fs/squashfs: fix heap exhaustion during symlink resolution")
 also handles, but they appear to be separate issues]
Link: https://lore.kernel.org/r/20260728-sqfs-oob-fix-v2-0-077d9f0e01c4@byteray.co.uk
</content>
</entry>
<entry>
<title>test: squashfs: add directory table overflow regression test</title>
<updated>2026-08-27T21:01:02Z</updated>
<author>
<name>Shahriyar Jalayeri</name>
<email>shahriyar@byteray.co.uk</email>
</author>
<published>2026-07-28T06:55:40Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=4750bcfe857c5a0feda86b54f260a11a4e3222cd'/>
<id>urn:sha1:4750bcfe857c5a0feda86b54f260a11a4e3222cd</id>
<content type='text'>
Add a Python test that lists a crafted SquashFS image whose directory
table declares an oversized metadata-block count. Such an image must be
rejected without corrupting the heap, which the test checks by confirming
U-Boot is still responsive afterwards.

Signed-off-by: Shahriyar Jalayeri &lt;shahriyar@byteray.co.uk&gt;
Reviewed-by: Richard Genoud &lt;richard.genoud@bootlin.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'net-20260813' of https://git.u-boot-project.org/u-boot/custodians/u-boot-net</title>
<updated>2026-08-13T14:58:29Z</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2026-08-13T14:58:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=c2ac5fc4e3bc91f59f059f115939d28fe35a7841'/>
<id>urn:sha1:c2ac5fc4e3bc91f59f059f115939d28fe35a7841</id>
<content type='text'>
Pull request net-20260813.

net:
- phy: dp83867: enable extended read / write for driver
- phy: fix duplicate eth_phy binding
- Drop unnecessary device_set_name
- dwc_eth_xgmac: Return -ENODEV when phy_connect() fails
- nfs: clean up bounds checks in nfs_readlink_reply()
- rtl8169: add support for RTL8126A and RTL8127A
- srand_mac(): fix -ENODEV crash with CONFIG_DM_RNG

net-legacy:
- Fix out-of-bounds write in IP fragment reassembly
- test: net: add regression test for IP reassembly overflow

net-lwip:
- Add tftpsrv command
- Handle chained pbufs in transmit path
- sntp: fix netif leak when ntpserverip is unset
- wget: free mbedtls x509 cert context to avoid memory leak
- Fix DHCP fine timer interval
</content>
</entry>
<entry>
<title>board_f: Call initf_malloc() before fdtdec_setup()</title>
<updated>2026-08-10T20:48:11Z</updated>
<author>
<name>Marek Vasut</name>
<email>marek.vasut+renesas@mailbox.org</email>
</author>
<published>2026-07-21T19:48:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=8da656ae6a9778ffe111c4a3b6a7795b2e7ee6d1'/>
<id>urn:sha1:8da656ae6a9778ffe111c4a3b6a7795b2e7ee6d1</id>
<content type='text'>
In case MULTI_DTB_FIT_GZIP is enabled, fdtdec_setup() does uncompress
the compressed DTs in uncompress_blob() using gunzip(), which invokes
malloc() internally. The early simple malloc is initialized in board_f
initf_malloc() call, which sets up the early simple malloc limit and
offset pointer in global data. Currently, the initf_malloc() is called
after fdtdec_setup(), which leads to malloc failure in fdtdec_setup()
during the gzip decompression, because the early simple malloc is not
initialized yet.

Call initf_malloc() before fdtdec_setup() to assure fdtdec_setup() can
use malloc() during gzip decompression of the DTs.

The impact of this change on boot time is negligible, because the
initf_malloc() only assigns two fields in global data.

Signed-off-by: Marek Vasut &lt;marek.vasut+renesas@mailbox.org&gt;
Fixes: 95f4bbd581cf ("lib: fdt: Allow LZO and GZIP DT compression in U-Boot")
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
[trini: Update test/py/tests/test_trace.py]
Signed-off-by: Tom Rini &lt;trini@konsulko.com&gt;
</content>
</entry>
<entry>
<title>Merge patch series "boot: fit: authenticate the dm-verity roothash"</title>
<updated>2026-08-10T18:37:16Z</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2026-08-10T18:32:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=6ea67890d034c8f285dcea438dcee2e06af3921c'/>
<id>urn:sha1:6ea67890d034c8f285dcea438dcee2e06af3921c</id>
<content type='text'>
Daniel Golle &lt;daniel@makrotopia.org&gt; says:

A signed FIT configuration can delegate the integrity of a (potentially
large) root filesystem image to the kernel's dm-verity instead of having
U-Boot hash the whole payload at boot: the FIT carries a "dm-verity"
subnode with the roothash, salt and block parameters, U-Boot passes the
roothash to Linux through the dm-mod.create bootargs, and dm-verity then
validates the filesystem block by block against it.

For that to be safe the roothash has to be trusted, and in a signed
configuration the only thing that establishes trust is the configuration
signature. The roothash was not covered by it. fit_config_add_hash()
collected the image node, its hash subnodes and its cipher subnode into
the signed region, but not the dm-verity subnode, so the roothash, the
sole integrity anchor for the filesystem, was left unsigned.

The result is a verified-boot bypass for the root filesystem: an
attacker who can rewrite the boot medium can replace the filesystem,
recompute a matching dm-verity tree, write the new roothash into the
unsigned dm-verity subnode, and the configuration signature still
verifies. dm-verity then faithfully validates the malicious filesystem
against the attacker's roothash.

This series closes the gap.

Link: https://lore.kernel.org/r/cover.1785276461.git.daniel@makrotopia.org
</content>
</entry>
<entry>
<title>test: fit: verify dm-verity roothash is covered by the config signature</title>
<updated>2026-08-10T18:32:41Z</updated>
<author>
<name>Daniel Golle</name>
<email>daniel@makrotopia.org</email>
</author>
<published>2026-07-28T22:09:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=fe9877c7d9dea740985edd11f7ff583e311568be'/>
<id>urn:sha1:fe9877c7d9dea740985edd11f7ff583e311568be</id>
<content type='text'>
A dm-verity protected filesystem image is not hashed by U-Boot; its
integrity is delegated to the kernel, which trusts the roothash taken
from the FIT dm-verity subnode. For that chain of trust to hold, the
roothash (and salt) must be part of the region covered by the
configuration signature, otherwise an attacker can replace both the
filesystem and the roothash while keeping the signature valid.

Add two independent checks of this property:

 - test/py/tests/test_fit_verity_sign.py signs a configuration that
   references a filesystem image carrying a dm-verity subnode, then
   confirms that tampering the roothash or the salt is rejected by
   fit_check_sign. A control that tampers a byte known to be signed
   proves the check can fail. A matching page is added under
   doc/develop/pytest/ so the module documentation is rendered with
   the rest of the generated docs.

 - test/boot/fit_verity.c gains a runtime unit test that builds the
   exact node list the configuration signature is computed over,
   turns it into hashed regions and checks both that the roothash
   bytes fall inside a signed region and that tampering them changes
   the hash. It needs no private key, so it also runs on real devices
   and uses the same hash path a device would.

To let the unit test build the signed-region node list, rename the
config node-list helper to fit_config_get_signed_nodes(), make it
non-static and declare it in image.h.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'efi-2026-01-rc2' of https://git.u-boot-project.org/u-boot/custodians/u-boot-efi</title>
<updated>2026-07-28T13:52:13Z</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2026-07-28T13:51:19Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=e354b34a6ab4b1887fd451bea8ceb7be146070a8'/>
<id>urn:sha1:e354b34a6ab4b1887fd451bea8ceb7be146070a8</id>
<content type='text'>
Pull request efi-2026-01-rc2

CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-efi/-/pipelines/753

Documentation:

* sandbox: fix enum host_platform_flags description
* switch from setenv to env set and from printenv to env print
* document Renesas R-Car Gen5 RSIP Cortex-R52 start
* thead: lpi4a: detail how to enable fastboot

UEFI:

* unify and correct GUID selection for security database variables
* test: check default GUID selection of security database variables
* set correct frame buffer address
* check efi_deserialize_load_option() in get_dp_device()
</content>
</entry>
<entry>
<title>Merge patch series "fs: regression-safe load &lt;iface&gt; for null_dev_desc_ok fstypes"</title>
<updated>2026-07-27T16:52:25Z</updated>
<author>
<name>Tom Rini</name>
<email>trini@konsulko.com</email>
</author>
<published>2026-07-27T15:07:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=7ffa20af30dd0a39c2c15eb81b03ba42fab1ea09'/>
<id>urn:sha1:7ffa20af30dd0a39c2c15eb81b03ba42fab1ea09</id>
<content type='text'>
Vincent Jardin &lt;vjardin@free.fr&gt; says:

3 commits providing documentation of impacts and testing the dispatch
for null_dev_desc_ok fstypes (semihosting, ubifs, sandbox) in the
generic `load &lt;iface&gt; ...` command.

The test does not cover ubifs, I could not make it work with
qemu. Since the code logic is there and testing with semihost
is done, it should cover the needed cases.

Link: https://lore.kernel.org/r/20260715165735.3207801-1-vjardin@free.fr
</content>
</entry>
<entry>
<title>test: check default GUID selection of signature database variables</title>
<updated>2026-07-27T16:50:28Z</updated>
<author>
<name>Aristo Chen</name>
<email>aristo.chen@canonical.com</email>
</author>
<published>2026-07-20T08:29:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=af5234975669b64898ecde92b4b2d6236d24a495'/>
<id>urn:sha1:af5234975669b64898ecde92b4b2d6236d24a495</id>
<content type='text'>
The name to GUID mapping that "env set -e" applies when no -guid
option is given was not covered by any test, which is how the wrong
default GUID for "dbr" went unnoticed until the previous commit.

Add a test case that enrolls each of db, dbx, dbt and dbr in setup
mode without an explicit -guid option and checks that every variable
is created under the image security database GUID and not under the
global variable GUID. Then enroll PK and KEK, also without -guid, and
check that both are created under the global variable GUID and not
under the image security database GUID. This is also the first
coverage of dbt and dbr anywhere under test/.

The signature database enrollment happens in setup mode because once
secure boot is enabled, efi_variable_authenticate() only accepts
writes to PK, KEK, db and dbx; PK and KEK are enrolled last because
installing PK leaves setup mode.

Signed-off-by: Aristo Chen &lt;aristo.chen@canonical.com&gt;
</content>
</entry>
<entry>
<title>test: py: load: check null_dev_desc_ok dispatch</title>
<updated>2026-07-27T15:07:39Z</updated>
<author>
<name>Vincent Jardin</name>
<email>vjardin@free.fr</email>
</author>
<published>2026-07-15T16:57:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=0ccf0193a58120f7a898a4379434b481be41b9f6'/>
<id>urn:sha1:0ccf0193a58120f7a898a4379434b481be41b9f6</id>
<content type='text'>
Some pytest modules exercising the dispatch added by
  fs: dispatch null_dev_desc_ok filesystems before lookup

test_load_semihosting.py:
  "load semihosting - &lt;addr&gt; &lt;file&gt;" and the optional
  [bytes] [pos] variant. Runs on qemu_arm64 with
  CONFIG_SEMIHOSTING=y; reuses test_hostfs.py's host-staged
  fixture.

test_load_sandbox.py:
  "load sandbox - &lt;addr&gt; &lt;file&gt;" and the optional [bytes] [pos]
  variant. Runs on sandbox (boardspec('sandbox')); the sandbox
  fstype is registered with name="sandbox" and
    null_dev_desc_ok=true,
  so the same fs_lookup_null_dev_info() helper that
  routes semihosting also routes the "sandbox".

A "load ubifs - &lt;addr&gt; &lt;file&gt;" test is intentionally not provided.
UBIFS is built on UBI on MTD, which requires some additional works
that are not available with qemu/sandbox-ing.

Signed-off-by: Vincent Jardin &lt;vjardin@free.fr&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
</content>
</entry>
</feed>
