The decoding/fromBuffer fails and crashes with this "complex" structure
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- javascript
- Ambito
- backend
Direzione di ricerca
Riproduci il problema con il r.Struct annidato e gli array mostrati nel report, quindi esamina la lettura che fallisce in node_modules/restructure/dist/src/DecodeStream.js. Confronta il buffer codificato con la posizione del decoder quando entra nella struttura annidata. Il lavoro è completato quando fromBuffer termina senza un DataView RangeError e restituisce i valori attesi per i, a, subI e subArray.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Given this structure:
const PacketFromRestructure = new r.Struct({
i: r.uint32,
a: new r.Array(r.uint32),
sub: new r.Struct({
subI: r.uint32,
subArray: new r.Array(r.uint32)
})
})
The encoding/toBuffer part works fine:
const encoded = PacketFromRestructure.toBuffer({
i: 0,
a: [1, 2],
sub: { subArray: [1, 2, 3], subI: 2 }
})
But its decoding/fromBuffer fails and crashes:
const decoded = PacketFromRestructure.fromBuffer(encoded)
The crash:
node_modules\restructure\dist\src\DecodeStream.js:72
const ret = this.view[key](this.pos, false);
^
RangeError: Offset is outside the bounds of the DataView
at DataView.prototype.getUint32 (<anonymous>)
at $8ae20583b93e4933$export$c18b354bac7948e9.<computed> [as readUInt32BE]
...
- Lingua principale
- JavaScript
- Stelle
- 146
- Fork
- 37
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di foliojs/restructure
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
foliojs/restructure#58 · 1 reazione ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
foliojs/restructure#55 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
foliojs/restructure#53 · 1 commento · 1 reazione ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
foliojs/restructure#46 ·
-
Int of 4 bytes not exists?Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
foliojs/restructure#42 · 1 commento ·
Tutte le issue di foliojs/restructure
Issue simili
-
Site Suggestion: bullseyeAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Add toro4n to the data modeling toolsForse già presa @henriklantzhedstrom-prog l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
neo4j/docs-getting-started#546 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 25 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
libnativeapi/nativeapi#21 ·
-
area: core complexity: easy impact: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
ueberdosis/tiptap#8668 ·
I maintainer di solito rispondono entro 1 giorno