Bug in String::copy, out of bounds crash
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- cpp
- Ambito
- embedded-iot
Direzione di ricerca
Iniziare da cores/esp8266/WString.cpp intorno alle righe 280-291 ed esaminare String::copy insieme a setLen e reserve. Riprodurre il crash con lunghezze delle stringhe che attivano il limite di allocazione, quindi verificare che il carattere null di terminazione si trovi sempre all’interno dell’array allocato e che non si verifichi alcun accesso oltre i limiti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Basic Infos
- This issue complies with the issue POLICY doc.
- I have read the documentation at readthedocs and the issue is not addressed there.
- I have tested that the issue is present in current master branch (aka latest git).
- I have searched the issue tracker for a similar issue.
- If there is a stack dump, I have decoded it.
- I have filled out all fields below.
Problem Description
See line 291 (and line 280):
When allocating an array of N elements, accessing element [N] is out of bounds.
This only happens sometimes at very specific string lengths, as setLen only allocates in multiples of N bytes.
N.B. similar issue for ESP32, so I will also add an issue there.
Suggested fix:
reserve(length + 1);
N.B. This function is likely to be called with strlen() or strlen_P() as argument, which does not include the ending null character.
- Lingua principale
- C++
- Stelle
- 16.7k
- Fork
- 13.1k
- 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 esp8266/Arduino
-
Typo in Scan Class DocumentationForse già presa @MukundaKatta l’ha presa 179 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
lwip2 time-wait.patch: TCP_TW_LIMIT can abort the pcb that tcp_process() is still handling -> double free, heap corruptionForse già presa @scardus l’ha presa 13 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
Tutte le issue di esp8266/Arduino
Issue simili
-
c++ good first issue M2: audio plumbing no hardware needed tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
GageLawton/noise-cancellation#23 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
objectionary/eo-graphs#85 ·
-
bug derived types format I/O medium priority semantics
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Kindly pin CUDA 12.X as required toolkit for stable release v0.3.3 compilation in CUDA systemsAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
facebookresearch/habitat-sim#2645 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno