pointer comparsion undefined behavior in cJSON_SetValuestring
I maintainer di solito rispondono entro 12 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 68/100
Direzione di ricerca
Inizia in cJSON.c, in corrispondenza di cJSON_SetValuestring, e rivedi il confronto dell’intervallo di puntatori mostrato nell’issue. Controlla i test del progetto per questa funzione e aggiungi una copertura per puntatori valuestring a indirizzi diversi; l’issue non specifica il nome di un file di test. Il lavoro è terminato quando il confronto indefinito tra puntatori è corretto e i test pertinenti passano.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
A pointer comparsion undefined behavior was identified in cJSON.c , function cJSON_SetValuestring(cJSON *object, const char *valuestring)
UB Analysis:
v1_len = strlen(valuestring);
v2_len = strlen(object->valuestring);
if (v1_len <= v2_len)
{
if (!( valuestring + v1_len < object->valuestring || object->valuestring + v2_len < valuestring )) // here
{
return NULL;
}
strcpy(object->valuestring, valuestring);
return object->valuestring;
}
...
when object->valuestring and valuestring pointer to different address , this two pointer comparsion is undefined behavior
- Lingua principale
- C
- Stelle
- 13k
- Fork
- 3.5k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
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 DaveGamble/cJSON
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
DaveGamble/cJSON#1100 · 1 reazione ·
I maintainer di solito rispondono entro 12 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
DaveGamble/cJSON#1094 · 9 commenti · 1 reazione ·
I maintainer di solito rispondono entro 12 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
DaveGamble/cJSON#1093 ·
I maintainer di solito rispondono entro 12 giorni
-
Use-after-free in cJSONUtils_ApplyPatches when a patch removes the patch arrayForse già presa @iliasabk l’ha presa 28 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
DaveGamble/cJSON#1082 ·
I maintainer di solito rispondono entro 12 giorni
-
Use-after-free in cJSON_ReplaceItemInObject when the key is the item's own nameForse già presa @iliasabk l’ha presa 29 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
DaveGamble/cJSON#1081 ·
I maintainer di solito rispondono entro 12 giorni
Tutte le issue di DaveGamble/cJSON
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
dosemu2/dosemu2#3178 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
backlog bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
EchoTools/nevr-runtime#653 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
InfiniTimeOrg/InfiniTime#2492 ·
-
Build fails when `memset_s` is unavailable: `Undefined symbols for architecture ppc: "_memset_s"`Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
XML_GetCurrentByteIndex64() returns -1 instead of a meaningful offset when m_eventPtr is NULLAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno