Crash: avformat segfaults when reopening a file fails
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 75/100
Direzione di ricerca
Inizia in producer_avformat.c, in get_basic_info(), intorno alle righe 928–929, e in producer_open(), intorno alle righe 1642–1649, dove vengono descritte le seconde aperture. Verifica come viene gestita ciascuna apertura non riuscita prima del successivo utilizzo del relativo AVFormatContext. Il lavoro è completato quando entrambi i percorsi di errore evitano di dereferenziare un contesto NULL.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
producer_avformat.c opens each seekable file a second time in two places and doesn't check whether that second open worked.
If the first open succeeds and the second fails, a NULL AVFormatContext is dereferenced.
This has been observed in the wild if the process is running out of file descriptors (but can happen for a variety of reasons, eg the source media disappearing in-between).
The two affected places:
- get_basic_info(), lines 928–929, the reopen after the seekability test:
self->video_format = NULL;
avformat_open_input(&self->video_format, filename, NULL, NULL);
avformat_find_stream_info(self->video_format, NULL); // NULL → SIGSEGV inside libavformat
- producer_open(), lines 1642–1649, the separate audio context for seekable A/V files:
avformat_open_input(&self->audio_format, filename, NULL, NULL);
apply_properties(self->audio_format, properties, AV_OPT_FLAG_DECODING_PARAM);
if (self->audio_format->iformat && ...) // NULL deref
- Lingua principale
- C
- Stelle
- 1.9k
- Fork
- 397
- Merge medio
- 2g 11h
- PR unite (30g)
- 16
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna 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 mltframework/mlt
-
macOS: melt occasionally never exits after the avformat consumer thread is goneForse già presa @eseifert l’ha presa 13 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
mltframework/mlt#1333 ·
I maintainer di solito rispondono entro 1 giorno
-
confirmed crash workaround
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
mltframework/mlt#1200 · 6 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
mltframework/mlt#1168 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
There may be an error when disconnecting a filter service from the fieldForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
mltframework/mlt#1058 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
mltframework/mlt#1056 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di mltframework/mlt
Issue simili
-
[yugabyted] xcluster set_up and add_to_replication fail for database names containing - . or (Apertakind/bug priority/medium qa_automation
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
yugabyte/yugabyte-db#37324 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
meshcore-dev/MeshCore#3781 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
ly05010419/MacNativeGames#1897 ·
I maintainer di solito rispondono entro 1 giorno
-
area: metrics area: tracing contribfest enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
open-telemetry/opentelemetry-ebpf-instrumentation#4188 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno