fix(xmpp): batch XMPP-bugfixes 1411-1434 #1438
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!1438
Loading…
Reference in a new issue
No description provided.
Delete branch "xmpp-bugs"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Deze PR lost 24 XMPP-gerelateerde bugs op (issues 1411-1434), elk met een
regressietest. De fixes dekken vier thema's:
chunk-data lengte-gevalideerd (#1419), stanza.from null-fallback fail-closed
(#1429), input-validatie in XmppSettings (#1432), MUC-presence zonder nick
geweigerd (#1426).
(#1412-1414), stroomregeling op inbound stanzas (#1420), per-sender
rate-limit (#1433), O(N²) deferred-backlog sweep geëlimineerd (#1424),
syncNow short-circuit (#1423).
stanzas gebufferd tijdens reconnect (#1417), ping/keepalive (#1418),
re-baseline listener ook na reconnect (#1428), MUC herbruikbaar na
reconnect (#1421), nick-conflict bij rejoin (#1416), leave() tijdens
join (#1427).
(#1431), frame-transport exception handling (#1430), _perAddressCount
verlaagd (#1422), MUC-chat-geschiedenis via MAM (#1425), testgaten voor
unhappy flows (#1434).
Test plan
make checkgroen (6961 tests, 0 failures)dart formatschoonflutter analyze --fatal-infosschoonstatic-gategroenGenerated with Devin
handleSnapshot aanvaardde chunks op basis van een plaintext id-veld zonder te controleren dat stanza.from overeenkomt met de afzender's deviceId in dat id. Een vijandige occupant kon zo chunk 0 van de autoriteit's baseline overschrijven met garbage, de reassemblage laten falen, en de newcomer permanent blokkeren — zonder de epoch-sleutel te bezitten. De chunk-id bevat de afzender's deviceId (snap-{deviceId}-{counter}); de directory kent deviceId → peerAddress (room@conf/nick). Een chunk wiens id een bekend device claimt wiens adres niet met from overeenkomt, wordt nu fail-closed gedropt. Regressietest voert de spoofing-scenario uit. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>