<feed xmlns='http://www.w3.org/2005/Atom'>
<title>staging/stintel/package/utils, branch master</title>
<subtitle>Staging tree of Stijn Tintel</subtitle>
<id>https://git-03.infra.openwrt.org/openwrt/staging/stintel/atom?h=master</id>
<link rel='self' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/'/>
<updated>2026-10-09T18:46:24Z</updated>
<entry>
<title>ucode: rtnl: return true on acknowledged requests without data</title>
<updated>2026-10-09T18:46:24Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-10-09T18:46:02Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=ae9276426c2e51ebba1732f952b0592ca8af24b6'/>
<id>urn:sha1:ae9276426c2e51ebba1732f952b0592ca8af24b6</id>
<content type='text'>
Fixes error handling issues on requests

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>provision: add a backend for a GPT partition named provisioning</title>
<updated>2026-10-08T07:50:37Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-09-27T15:39:32Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=04d0bbcdc224927710991f4452f7746c9eb1a6ac'/>
<id>urn:sha1:04d0bbcdc224927710991f4452f7746c9eb1a6ac</id>
<content type='text'>
A device without UBI, such as an x86 VM or a device on eMMC, can keep its
provisioning data on a block partition named `provisioning`. The data
uses the same header as the UBI volume.

open() and create() prefer the UBI volume and then look for the partition
through the PARTNAME of each block device in sysfs. A commit checks the
flush, because close() reports no error. A partition cannot be removed
from here, so destroy erases the header and the data.

The provision command now exits with an error when a commit or a
destroy fails, for both backends.

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>nvram: bound the variable parser to the nvram partition</title>
<updated>2026-10-07T00:34:33Z</updated>
<author>
<name>Hauke Mehrtens</name>
</author>
<published>2026-09-17T19:25:02Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=d09134f6edeff8d445cb96ed3689f4d072a9666f'/>
<id>urn:sha1:d09134f6edeff8d445cb96ed3689f4d072a9666f</id>
<content type='text'>
The "name=value\0 ... \0\0" walk over the mmap()ed nvram used strchr()
and strlen() without a bound, so an nvram without the terminating
double NUL made it run past the end of the mapping.

Search with memchr() up to the length from the nvram header, or up to
the end of the mapping when that length does not fit, so a broken
header is still readable. A variable that is not terminated in this
area ends the parsing.

Map a regular file, like the /tmp staging file, only as far as it is
backed, rounded down to 4 bytes for the padding in nvram_commit(),
instead of the partition size which raised SIGBUS. Only search the
start of a mapping smaller than NVRAM_MIN_SPACE for the magic instead
of underflowing the loop boundary; bcm47xxpart creates such nvram
partitions on flashes with 4 KiB erase blocks.

"nvram info" clamps the header length before the CRC8, it read beyond
the mapping or underflowed into a 4 GB read before.

This is reachable with a crafted nvram partition or staging file, on
bcm47xx the nvram partition is also parsed while booting.

Reported by @tonoyx91 and @0xROI.

Link: https://github.com/openwrt/openwrt/security/advisories/GHSA-5m25-qmhm-crr4
Fixes: 400c1a7fbfad ("Add unvram, a nvram manipulation tool suitable for brcm-2.4 and bcm47xx platforms")
Assisted-by: Claude:claude-opus-5
Link: https://github.com/openwrt/openwrt/pull/25240
Signed-off-by: Hauke Mehrtens &lt;hauke@hauke-m.de&gt;
</content>
</entry>
<entry>
<title>fbtest: remove the fbdev test tool</title>
<updated>2026-10-06T17:35:40Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-26T20:17:02Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=51ee3fa19a5d83178e1bf55d89848bdb17ada564'/>
<id>urn:sha1:51ee3fa19a5d83178e1bf55d89848bdb17ada564</id>
<content type='text'>
The tool opens /dev/fb0 and mmaps it. Legacy fbdev and DRM fbdev
emulation are gone from every target except the exempt ones, so the
device node it needs is absent there. Nothing depends on the package.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
<entry>
<title>px5g-mbedtls: default to 2048 bit RSA keys</title>
<updated>2026-10-06T11:34:56Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-10-05T05:31:57Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=a31b1b75cb6661661249174ecbc93ae4b1118f3a'/>
<id>urn:sha1:a31b1b75cb6661661249174ecbc93ae4b1118f3a</id>
<content type='text'>
px5g uses a 512 bit RSA key by default, for rsakey without a size and
for selfsigned without -newkey. mbedtls 3.6 refuses to generate RSA
keys smaller than MBEDTLS_RSA_GEN_KEY_MIN_BITS, which is 1024 bits, so
both commands fail with "error: key generation failed". OpenWrt uses
mbedtls 3.6 since 24.10.

Use 2048 bits as the default RSA key size, like px5g-wolfssl and
OpenSSL do.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25629
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>utils: add configurable Bluetooth UART attachment</title>
<updated>2026-10-05T11:55:37Z</updated>
<author>
<name>Satoshi Ikeuchi</name>
</author>
<published>2026-09-30T02:29:18Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=2f7f5b0c4911cd185da5c71e31512cdb2249b9bc'/>
<id>urn:sha1:2f7f5b0c4911cd185da5c71e31512cdb2249b9bc</id>
<content type='text'>
Use a generic procd service around the foreground BlueZ btattach utility.
Configure the UART, protocol and speed through UCI, without router
identity checks or GPIO operations in the attachment service.

Leave attachment disabled and the device unset by default. Keep board
wiring in the device tree and use the existing HCI UART and BlueZ packages.

Tested controller startup after cold power-on, LE discovery, connection
and service discovery on LN6001.

Signed-off-by: Satoshi Ikeuchi &lt;satosan.ikm@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25594
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>px5g-mbedtls: reject unsupported -addext values</title>
<updated>2026-10-05T11:42:42Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-10-04T19:48:29Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=9cad8741a730e3e15927528c5acdca8c64f63f45'/>
<id>urn:sha1:9cad8741a730e3e15927528c5acdca8c64f63f45</id>
<content type='text'>
An -addext value is only consumed if it starts with "extendedKeyUsage="
or with "subjectAltName=" and contains a colon. Any other value, for
example "subjectAltName=localhost" or the OpenSSL spelling
"subjectAltName = DNS:x", stops the option parser, so px5g ignores all
options after it, for example -keyout and -out. A comma separated list
like "DNS:a,DNS:b", as OpenSSL takes it, ends up as a single bogus
name. An empty name like "subjectAltName=DNS:" is written into the
certificate, although OpenSSL refuses it. Email addresses are only
accepted with the type EMAIL, while OpenSSL calls it email.

extendedKeyUsage has similar problems. A value other than serverAuth or
any leaves an empty OID in the extension, values are matched by prefix,
and only the last of several extendedKeyUsage options is used.

Fail with an error on unsupported values, on empty names and on any
comma in a subjectAltName, which OpenSSL takes as a separator even in a
URI. Accept the type email as well. Compare the usage exactly, also
accepting the OpenSSL name anyExtendedKeyUsage, and keep all given
usages. Check the result of adding them and fail if mbedtls refuses
them, for example 26 serverAuth values, which do not fit its buffer.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25604
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>px5g-mbedtls: fix the subjectAltName extension</title>
<updated>2026-10-05T11:42:42Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-10-04T12:51:36Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=54d2eb96a11edf9db7cd005db63382ecebdeeba5'/>
<id>urn:sha1:54d2eb96a11edf9db7cd005db63382ecebdeeba5</id>
<content type='text'>
The subjectAltName support added in commit efca89daef ("px5g-mbedtls:
add subjectAltName and extendedKeyUsage to SSL certs") has these bugs:

- Every IP entry is written with a length of 16 bytes. An IPv4 address
  ends up as a zero padded IPv6 address, so 192.168.1.1 becomes
  C0A8:101:: and clients reject the certificate for that address.
- All IP entries share one buffer, so each of them carries the address
  given last.
- An invalid IP address is not rejected but written as :: or as the
  address of an earlier IP entry.
- The list is linked after every option instead of only after a new
  entry. If any other option follows the last subjectAltName, that
  entry points to itself. Adding the extension then loops until the
  size counter overflows, which never ends on 64-bit targets and drops
  the whole extension on 32-bit targets.
- An unknown entry type only prints a warning. It stays in the list
  with type 0, which mbedtls cannot write, so the whole extension is
  dropped while px5g still exits with 0.
- Without any subjectAltName, the extension is written with an empty
  list, which RFC 5280 does not allow. Chrome rejects such a
  certificate with ERR_CERT_INVALID and, unlike for other self-signed
  certificates, does not offer to proceed.

Use the length returned by mbedtls_x509_crt_parse_cn_inet_pton(),
allocate a buffer for each IP entry and link only new entries. Reject
invalid IP addresses and unknown entry types with an error. Add the
extension only if there are entries and fail with an error if mbedtls
refuses it.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/25604
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>provision: name the create command in the not-found message</title>
<updated>2026-09-29T15:29:25Z</updated>
<author>
<name>Felix Fietkau</name>
</author>
<published>2026-09-13T06:50:14Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=83e7914958999bb7be898056175b89e69875693d'/>
<id>urn:sha1:83e7914958999bb7be898056175b89e69875693d</id>
<content type='text'>
The message told the user to run "provision enable", but no such command
exists. The command that makes the partition is "provision create".

Signed-off-by: Felix Fietkau &lt;nbd@nbd.name&gt;
</content>
</entry>
<entry>
<title>kernel: drop the audio and display feature gates</title>
<updated>2026-09-29T14:29:43Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-09-27T11:33:05Z</published>
<link rel='alternate' type='text/html' href='https://git-03.infra.openwrt.org/openwrt/staging/stintel/commit/?id=c375123b3b6e2b5c2f85480b45e43215fb414893'/>
<id>urn:sha1:c375123b3b6e2b5c2f85480b45e43215fb414893</id>
<content type='text'>
The sound and DRM modules carry a dependency on audio-support and
video-support, which is what decides whether an image handles those
devices. The AUDIO_SUPPORT and DISPLAY_SUPPORT tokens beside them add a
second, per-SoC-family condition that a board cannot influence, and that
DISPLAY_SUPPORT is half derived from whatever kernel configuration was
copied into a target's fragment.

Drop the tokens from the module dependencies and from fbtest.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
</feed>
