[BUG] --out=report: heap-use-after-free in process608(), and a crash with more than one input file
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start with params_dump.c:802, ccx_decoders_608.c:1230, and file_functions.c:146, then trace report allocation in init_libraries() and cleanup in dinit_libraries(). Reproduce both reported crashes using the supplied --out=report commands and sample files; done means both single-file and multiple-file runs finish without memory errors. The issue says the reporter has a fix ready, so check whether that work is already underway before taking it on.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
CCExtractor version: master (d7eb132e)
Necessary information
- Is this a regression? Unknown. The code that causes it dates from 2015 (c4e91f8c).
- Platform: Mac
- Arguments:
--out=report
Video links
Public samples from https://streams.videolan.org/streams/ts/:
CC/wabc-4pm-ota.clip1.tsClosed Caption EIA.tsandCC/hevc_cc.ts(any two files work for the second problem)
Additional information
Two crashes with --out=report, from the same cause:
ccextractor --out=report wabc-4pm-ota.clip1.ts, built with AddressSanitizer:
ERROR: AddressSanitizer: heap-use-after-free WRITE of size 1
#0 process608 ccx_decoders_608.c:1230
#2 do_cb ccx_decoders_common.c
freed by: print_file_report params_dump.c:802 <- switch_to_next_file
allocated by: init_libraries lib_ccx.c:135
ccextractor --out=report "Closed Caption EIA.ts" hevc_cc.tscrashes after the first file's report (segfault in a normal build; AddressSanitizer: SEGV atfile_functions.c:146).
Cause: at the end of each file, print_file_report() frees ctx->freport.data_from_608 and then clears ctx->freport. But the 608 decoders keep a pointer to that report (settings_608->report) and write to it for frames that are still buffered, and for every later file. Clearing freport also sets data_from_708 to NULL, which switch_to_next_file() reads for the next file. Both reports are owned by init_libraries() / dinit_libraries(), so print_file_report() shouldn't free them.
I have a fix ready.
- Lingua principale
- C
- Stelle
- 908
- Fork
- 595
- Merge medio
- 3g 23h
- PR unite (30g)
- 32
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 CCExtractor/ccextractor
-
[BUG] Filename sequence expansion (`+`) panics on numeric values exceeding `i32::MAX`Forse già presa @muntasir-396 l’ha presa 3 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
CCExtractor/ccextractor#2402 ·
I maintainer di solito rispondono entro 1 giorno
-
CCExtractor: stack out-of-bounds write and quadratic out-of-bounds read in the DVB subtitle descriptor parser (parse_dvb_description)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
CCExtractor/ccextractor#2417 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
CCExtractor/ccextractor#2408 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
CCExtractor/ccextractor#2398 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
CCExtractor/ccextractor#2379 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di CCExtractor/ccextractor
Issue simili
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 82/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
bigtreetech/BIGTREETECH-TouchScreenFirmware#3056 ·
I maintainer di solito rispondono entro 1 giorno
-
[pico][astrocade] emu/apply.sh edits src/mame/midway/astrohome.cpp, which current MAME has in bally/Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
FujiNetWIFI/fujinet-firmware#2120 ·
I maintainer di solito rispondono entro 1 giorno
-
Merge pass 2 "ours dropped, theirs changed" path returns a bare SQLITE_ERROR ("merge failed")Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Bug Status: Needs Triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
php/php-src#24552 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno