Skip to content

[24.10] batman-adv: merge bugfixes from 2026.3 - #1201

Merged
simonwunderlich merged 8 commits into
openwrt:openwrt-24.10from
ecsv:batadv-for-24.10
Sep 3, 2026
Merged

[24.10] batman-adv: merge bugfixes from 2026.3#1201
simonwunderlich merged 8 commits into
openwrt:openwrt-24.10from
ecsv:batadv-for-24.10

Conversation

@ecsv

@ecsv ecsv commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Maintainer: @simonwunderlich
Compile tested: x86-64
Run tested: x86-64

Description:

Similar to usual releases, the bugfixes were backported. But this time, also the fixes/cleanups from BKpepe were cherry-picked.

batman-adv

  • ensure minimal ethernet header on TX
  • fix VLAN priority offset
  • tt: avoid request storms during pending request
  • frag: fix primary_if leak on failed linearization
  • frag: free unfragmentable packet
  • mcast: avoid OOB read of num_dests header
  • tt: prevent TVLV OOB check overflow
  • clean untagged VLAN on netdev registration failure
  • dat: fix tie-break for candidate selection
  • bla: avoid CRC corruption due to parallel claim add
  • bla: prevent CRC corruptions after claim flush
  • dat: avoid unaligned fault in IP extraction
  • dat: atomically update mac addresses
  • fix TX priority extraction for BATADV_FORW_MCAST
  • mcast: ensure unshared skb for multicast packets
  • mcast: linearize skbuff for packet generation
  • fix stale receive device on merged fragments
  • tvlv: handle negative tvlv processing return codes
  • bla: fix freeing of claims on meshif deletion
  • reject unrepresentable multicast TVLV offsets

batctl

  • fix parsing of parameters with arguments
  • originators: fix throughput lines with bat_hosts
  • free header lines after error
  • traceroute: handle fast replies
  • return only initialized icmp destination unreached bytes
  • tcpdump: fix coded packet mac dest mac addresses
  • tcpdump: fix endianness of fragmentation sequence number
  • tcpdump: correct output of VLAN IDs
  • tcpdump: drop hardcoded IPv6 buffer sizes
  • tcpdump: fix reported length for ICMP6_TIME_EXCEEDED
  • tcpdump: handle TCP packet with bogus data offset
  • tpmeter: fix Gbps output
  • tpmeter: label sub-kByte/s rate in bits per second
  • netlink: check for BATADV_ATTR_MESH_ADDRESS before accessing it
  • netlink: always 0-terminate hardif name
  • bat-hosts: compare full path for deduplication
  • improve number parsing error handling
  • bat-hosts: free bat_host when hash_add fails
  • dat_cache: fix multicast/unicast filter for MAC address
  • isolation_mark: fix error message for invalid mark/mask values
  • event: don't print timestamp prefix for skipped events
  • debug: avoid endless getopt loop for attached '-w' argument
  • debug: use strict interval/timeout parsing
  • debug: reject trailing garbage for intervals
  • debug: reject non-finite/negative interval/timeout values
  • debug: don't return negative error codes from handle_debug_table
  • only mark file read successful on read line
  • version: avoid use of uninitialized read buffer
  • version: don't strip newline for empty buffer
  • interface: report rtnl query failures
  • interface: return fail for non-existing interface
  • translate: don't overwrite the search key
  • genl_json: avoid negative chars in sanitize_string
  • genl_json: reject unknown options in handle_json_query
  • genl_json: don't return negative error codes to main
  • genl_json: escape non-printable characters as valid JSON
  • genl_json: drop leftover network coding log level
  • tcpdump: fix "subtybe" typo in 4ADDR output
  • tcpdump: return EXIT_SUCCESS on normal termination
  • tcpdump: check frame length before reading the ethernet header
  • tcpdump: resolve bat-host name for ROAMv1 client
  • tcpdump: print the unreachable host for ICMP port unreachable
  • tcpdump: skip partial line for oversized ICMPv6 errors
  • tcpdump: don't label unknown ICMPv6 types as unreachable
  • tcpdump: reject invalid packet type arguments
  • tcpdump: fix source address selection for 802.11 data frames
  • traceroute: return EXIT_NOSUCCESS when destination not reached
  • icmp_helper: return proper errno on syscall failures
  • ping: count sent and not received pings
  • ping/traceroute: don't restart RTT timer on stray replies
  • traceroute: probe the advertised maximum number of hops
  • ping: keep huge '-i' intervals from turning into a flood ping
  • ping: reject invalid packet count argument
  • ping: reject invalid timeout argument
  • ping: fix rtt minimum tracking when a sample is 0.0
  • icmp_helper: fail send when the primary mac is unknown
  • icmp_helper: attach socket filter before packets can arrive
  • tpmeter: don't use negative errno as exit status
  • tpmeter: abort result wait on receive errors
  • tpmeter: reject invalid test duration argument
  • tpmeter: report kernel errors via strerror
  • tpmeter: don't cancel test from the signal handler
  • handle netlink callback object on error
  • netlink: abort netlink_print_common when message allocation fails
  • netlink: don't format NULL extra_info in info_callback
  • netlink: report dump errors signalled in the NLMSG_DONE message
  • netlink: detect receive errors in netlink_print_common
  • netlink: report kernel errors when writing settings
  • netlink: report send errors in netlink_simple_request
  • netlink: detect receive errors in query_rtnl_link
  • netlink: detect receive errors in netlink_simple_request
  • netlink: detect receive errors in query_rtnl_link_single
  • netlink: report error on query_rtnl_link send failure
  • netlink: use kernel-style error codes for nl_recvmsgs
  • debug: drop stray debug printf line

alfred

  • seed the random() generator for transaction IDs

BKPepe and others added 7 commits September 2, 2026 19:46
…script

/etc/config/batman-adv is registered as a conffile although the
package never installs it: files/ only ships the uci-defaults
migration script and the netifd proto handlers. The migration script
itself removes /etc/config/batman-adv as its last step once the
settings have been moved into /etc/config/network, so the entry is
left over from the layout that predates batadv_hardif.

The same script uses continue to skip a section, but there is no
loop in the function itself. POSIX leaves continue without an
enclosing loop in the current function unspecified; ash walks the
dynamic call stack and lands on the loop inside config_foreach,
which happens to produce the intended behaviour. Use return, which
expresses the intent directly.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
(cherry picked from commit 8113f464747d6f405ebe411f1c385bed4e6c3dae)
(cherry picked from commit fe1e65bed7e3fd7e9b892724a1f039ade9ce4eb8)
- PKG_BUILD_DIR was set to exactly the value package.mk derives by
  default for a package with build variants, so the override had no
  effect.
- The CONFIG_* switches were assembled into a newline separated
  string and passed to the build through a shell variable via
  shexport. They can simply be listed on the make command line; the
  result is identical, since later assignments override earlier
  ones, exactly as the "n first, then y" order of the old string
  relied on.
- "managment" is user visible in the description of all three
  variants.
- The MAKE_VARS and MAKE_FLAGS continuation lines were indented with
  spaces while every other multi-line list in the file uses a tab.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
(cherry picked from commit 4215a8932fb2b74e3511764ecfc769280862cbf2)
(cherry picked from commit dae3f09cfc94787f07d7f24936a9c451fad53557)
(cherry picked from commit fd018fe12f700b45f531272b2ec88b2a1c349082)
The openwrt-bot incorrectly complains about non-conforming patches because
it cannot find the string "From Mon Sep 17 00:00:00 2001". But this string
has nothing to do with gi-am compatibility (as claimed by openwrt-bot).

Just reformat the patches again to add more noise to the patches and make
the openwrt-bot happy.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
The openwrt-bot incorrectly complains about non-conforming patches because
it cannot find the string "From Mon Sep 17 00:00:00 2001". But this string
has nothing to do with gi-am compatibility (as claimed by openwrt-bot).

Just reformat the patches again to add more noise to the patches and make
the openwrt-bot happy.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
The openwrt-bot incorrectly complains about non-conforming patches because
it cannot find the string "From Mon Sep 17 00:00:00 2001". But this string
has nothing to do with gi-am compatibility (as claimed by openwrt-bot).

Just reformat the patches again to add more noise to the patches and make
the openwrt-bot happy.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
* seed the random() generator for transaction IDs

Signed-off-by: Sven Eckelmann <sven@narfation.org>
* fix parsing of parameters with arguments
* originators: fix throughput lines with bat_hosts
* free header lines after error
* traceroute: handle fast replies
* return only initialized icmp destination unreached bytes
* tcpdump: fix coded packet mac dest mac addresses
* tcpdump: fix endianness of fragmentation sequence number
* tcpdump: correct output of VLAN IDs
* tcpdump: drop hardcoded IPv6 buffer sizes
* tcpdump: fix reported length for ICMP6_TIME_EXCEEDED
* tcpdump: handle TCP packet with bogus data offset
* tpmeter: fix Gbps output
* tpmeter: label sub-kByte/s rate in bits per second
* netlink: check for BATADV_ATTR_MESH_ADDRESS before accessing it
* netlink: always 0-terminate hardif name
* bat-hosts: compare full path for deduplication
* improve number parsing error handling
* bat-hosts: free bat_host when hash_add fails
* dat_cache: fix multicast/unicast filter for MAC address
* isolation_mark: fix error message for invalid mark/mask values
* event: don't print timestamp prefix for skipped events
* debug: avoid endless getopt loop for attached '-w' argument
* debug: use strict interval/timeout parsing
* debug: reject trailing garbage for intervals
* debug: reject non-finite/negative interval/timeout values
* debug: don't return negative error codes from handle_debug_table
* only mark file read successful on read line
* version: avoid use of uninitialized read buffer
* version: don't strip newline for empty buffer
* interface: report rtnl query failures
* interface: return fail for non-existing interface
* translate: don't overwrite the search key
* genl_json: avoid negative chars in sanitize_string
* genl_json: reject unknown options in handle_json_query
* genl_json: don't return negative error codes to main
* genl_json: escape non-printable characters as valid JSON
* genl_json: drop leftover network coding log level
* tcpdump: fix "subtybe" typo in 4ADDR output
* tcpdump: return EXIT_SUCCESS on normal termination
* tcpdump: check frame length before reading the ethernet header
* tcpdump: resolve bat-host name for ROAMv1 client
* tcpdump: print the unreachable host for ICMP port unreachable
* tcpdump: skip partial line for oversized ICMPv6 errors
* tcpdump: don't label unknown ICMPv6 types as unreachable
* tcpdump: reject invalid packet type arguments
* tcpdump: fix source address selection for 802.11 data frames
* traceroute: return EXIT_NOSUCCESS when destination not reached
* icmp_helper: return proper errno on syscall failures
* ping: count sent and not received pings
* ping/traceroute: don't restart RTT timer on stray replies
* traceroute: probe the advertised maximum number of hops
* ping: keep huge '-i' intervals from turning into a flood ping
* ping: reject invalid packet count argument
* ping: reject invalid timeout argument
* ping: fix rtt minimum tracking when a sample is 0.0
* icmp_helper: fail send when the primary mac is unknown
* icmp_helper: attach socket filter before packets can arrive
* tpmeter: don't use negative errno as exit status
* tpmeter: abort result wait on receive errors
* tpmeter: reject invalid test duration argument
* tpmeter: report kernel errors via strerror
* tpmeter: don't cancel test from the signal handler
* handle netlink callback object on error
* netlink: abort netlink_print_common when message allocation fails
* netlink: don't format NULL extra_info in info_callback
* netlink: report dump errors signalled in the NLMSG_DONE message
* netlink: detect receive errors in netlink_print_common
* netlink: report kernel errors when writing settings
* netlink: report send errors in netlink_simple_request
* netlink: detect receive errors in query_rtnl_link
* netlink: detect receive errors in netlink_simple_request
* netlink: detect receive errors in query_rtnl_link_single
* netlink: report error on query_rtnl_link send failure
* netlink: use kernel-style error codes for nl_recvmsgs
* debug: drop stray debug printf line

Signed-off-by: Sven Eckelmann <sven@narfation.org>
@openwrt openwrt Bot added not following guidelines Pull request does not follow formatting guidelines release/24.10 Pull request targets the stable release branch release/24.10 labels Sep 2, 2026
@openwrt

openwrt Bot commented Sep 2, 2026

Copy link
Copy Markdown

Formality Check: Suggestions Available

We checked this pull request against the contribution guidelines. Here is what needs your attention:

⚠️ STYLISTIC WARNINGS & SUGGESTIONS

Commit f8b4b9f:

  • ⚠️ Could not fetch upstream commit 8113f46 from GitHub API (HTTP 422)

Commit e1973b1:

  • ⚠️ Could not fetch upstream commit 4215a89 from GitHub API (HTTP 422)

Something broken? Consider reporting an issue.
Running version 496663e deployed on 2026-09-02 21:35:03 CEST

* ensure minimal ethernet header on TX
* fix VLAN priority offset
* tt: avoid request storms during pending request
* frag: fix primary_if leak on failed linearization
* frag: free unfragmentable packet
* mcast: avoid OOB read of num_dests header
* tt: prevent TVLV OOB check overflow
* clean untagged VLAN on netdev registration failure
* dat: fix tie-break for candidate selection
* bla: avoid CRC corruption due to parallel claim add
* bla: prevent CRC corruptions after claim flush
* dat: avoid unaligned fault in IP extraction
* dat: atomically update mac addresses
* fix TX priority extraction for BATADV_FORW_MCAST
* mcast: ensure unshared skb for multicast packets
* mcast: linearize skbuff for packet generation
* fix stale receive device on merged fragments
* tvlv: handle negative tvlv processing return codes
* bla: fix freeing of claims on meshif deletion
* reject unrepresentable multicast TVLV offsets

Signed-off-by: Sven Eckelmann <sven@narfation.org>
@ecsv ecsv changed the title [24.10] batman-adv: merge bugfixes from 2026.3 WIP: [24.10] batman-adv: merge bugfixes from 2026.3 Sep 2, 2026
@ecsv
ecsv marked this pull request as draft September 2, 2026 19:14
@ecsv ecsv changed the title WIP: [24.10] batman-adv: merge bugfixes from 2026.3 [24.10] batman-adv: merge bugfixes from 2026.3 Sep 2, 2026
@ecsv
ecsv marked this pull request as ready for review September 2, 2026 19:26
@simonwunderlich

Copy link
Copy Markdown
Contributor

[allow cherry-pick]

@openwrt openwrt Bot removed the not following guidelines Pull request does not follow formatting guidelines label Sep 3, 2026
@ecsv

ecsv commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

@simonwunderlich all failed tests had problems with the CI infrastructure (downloading packages) and not with the updates

@simonwunderlich

Copy link
Copy Markdown
Contributor

@ecsv yeah ... had this with the other PR too. will merge.

@simonwunderlich
simonwunderlich merged commit 00619bc into openwrt:openwrt-24.10 Sep 3, 2026
10 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release/24.10 Pull request targets the stable release branch release/24.10

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants