fix(network): a text message on a UDP data channel throws inside the native callback
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 78/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- node.js, typescript
- Domínio
- networking
Direção de pesquisa
Leia modules/network/src/server/udp.server.network.ts por volta das linhas 421-424 e modules/network/src/server/utils.ts por volta da linha 37 para rastrear como as mensagens do canal são convertidas. Comece verificando o tratamento existente de PeerHost em peer-host.ts:312, depois encontre os testes do canal do pacote de rede e adicione cobertura para uma mensagem do tipo string. O trabalho estará concluído quando os dados do tipo string forem tratados sem uma exceção não capturada e o teste passar.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Which package is this bug report for?
network
Issue description
message.data is cast to ArrayBuffer, but a peer can send a string. rawDataToUint8Array matches none of its branches and throws Unsupported WebSocket RawData type inside a node-datachannel event callback, with no try/catch, which can surface as an uncaught exception on the server. PeerHost handles this correctly (peer-host.ts:312, instanceof ArrayBuffer).
Where:
Evidence:
channel.onmessage = (message) => {
const packet = rawDataToUint8Array(message.data as ArrayBuffer);
Suggested fix: Return early unless message.data is an ArrayBuffer or a view. Add a test that sends a string over the channel.
Found during a code audit of main at be72076.
Code sample
No response
Versions
- Engine
mainat be72076 - pnpm 12.0.0, Node.js 26, Bun 1.3.14
Issue priority
High (immediate attention needed)
I have tested this issue on a development release
be72076
- Linguagem predominante
- TypeScript
- Estrelas
- 7
- Forks
- 2
- Merge médio
- 1d 17h
- PRs com merge (30d)
- 17
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de NanoForge-dev/Engine
-
dependencies enhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
NanoForge-dev/Engine#513 ·
Mantenedores costumam responder em até 1 dia
-
bug chore tests
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
NanoForge-dev/Engine#511 ·
Mantenedores costumam responder em até 1 dia
-
docs(network): TSDoc says ICE_SERVERS defaults to an empty list, the code uses public STUN serversAbertadocumentation good first issue modules:network
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
NanoForge-dev/Engine#509 ·
Mantenedores costumam responder em até 1 dia
-
documentation modules:ecs packages:asset packages:core
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
NanoForge-dev/Engine#508 ·
Mantenedores costumam responder em até 1 dia
-
bug good first issue modules:music modules:sound
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
NanoForge-dev/Engine#505 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de NanoForge-dev/Engine
Issues semelhantes
-
Mend: dependency security vulnerability
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 65/100
fdm-monster/fdm-monster#5563 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
be-BOP-io-SA/be-BOP#2849 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
Mantenedores costumam responder em até 1 dia
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
growilabs/growi#12246 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
🐛 The Rulekeeper - An index run that gives up on the lock ends SucceededTalvez já em andamento @github-actions assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
SSWConsulting/SSW.Rules#2809 · 1 comentário ·
Mantenedores costumam responder em até 1 dia