# fuzz-verificado.tsv — los FUZZ de `scripts/vigia-parches.py` que YA se miraron, con su veredicto. # # Un FUZZ no se puede resolver automáticamente: `patch` metió el cambio ADIVINANDO dónde, y si cayó # en el sitio correcto sólo lo dice el diff. Pero una vez mirado, el veredicto no caduca solo: # depende del TEXTO del parche y de la FUENTE, y las dos están pineadas. # # Por eso la clave no es (receta, parche) sino (receta, parche, HUELLA), donde la huella resume el # parche + el pin de la fuente. Tocá el parche o subí la versión y la huella cambia, la entrada deja # de casar y el vigía VUELVE A PREGUNTAR. No es una lista de excepciones: no hay forma de silenciar # algo y que siga silenciado cuando cambió. # # La línea lista para pegar la imprime el propio vigía debajo de cada FUZZ sin verificar. # # recetaparchehuellaveredicto (qué se comprobó, no «ok») # # ⚠ Los dos FUZZ de waterfox NO están acá a propósito: no los verifiqué en esta ronda y waterfox está # fuera de alcance. Van a seguir saliendo como FUZZ, que es lo honesto. cairo cairo-ctime-r.patch 053bd7e1c4b4051f 2026-09-05: los 3 hunks exactos — conf.set('HAVE_CTIME_R',1) queda DESPUÉS del bucle check_funcs; el `if false` envuelve subdir('cairo-trace') y NO subdir('cairo-script'); el tercero va tras meson.override_dependency ⇒ la .pc sobrevive sin los exe csi-* cairo-shared cairo-ctime-r.patch 053bd7e1c4b4051f 2026-09-05: misma huella que `cairo` (mismo parche, misma fuente pineada) ⇒ mismo veredicto doas rowhammer.patch 22d6f35cf2e6fa57 2026-09-05: el hunk cae dentro de checkconfig() y queda rv=permit(...); if(rv==0)→permit, coherente con main() que hace if(rv!=0)→EPERM. El fuzz lo causa un parche ANTERIOR de la cadena (el #ifdef DOAS_CONFDIR de configuration-directory.patch), no un cambio de upstream firefox time64.patch 66bc1630adc67e1b 2026-09-05: now_including_suspend() y now_awake() quedan con libc::timespec::default(); no sobrevive ningún literal `tv_sec: 0` en zeitstempel/src/unix.rs firefox fix-rust-target.patch cd6f96abf42122e4 2026-09-05: la asignación cae justo tras el `return None` de find_candidate y el return usa ensure_unicode; no queda ninguna LLAMADA a find_candidate(candidates), sólo su def gnupg 0001-include-unistd.patch d688ed86408ec74d 2026-09-05: entra en el bloque de includes de scd/app.c — pero upstream YA trae dos líneas más abajo ⇒ el parche está OBSOLETO y sólo lo duplica (inocuo: el header tiene guardas). Quitarlo re-hashea gnupg, así que se paga cuando se re-selle por otro motivo libxml2 CVE-2026-6732.patch d67f9694dcad492f 2026-09-05: los 2 hunks dentro de xmlParseReference(); las 4 llamadas pasan ctxt->userData y NO queda ninguna sax->characters(ctxt, ni sax->cdataBlock(ctxt, en todo el fichero. El fuzz es por el offset de 226 líneas, no por el sitio libxml2-shared CVE-2026-6732.patch d67f9694dcad492f 2026-09-05: misma huella que `libxml2` ⇒ mismo veredicto mesa mesa-version-script-comma.patch 6054348f4a56ac2c 2026-09-05: version-script y dynamic-list quedan en forma COMA ('-Wl,--version-script,'+ruta), que es exactamente lo que el parche declara querer mesa-llvmpipe mesa-version-script-comma.patch 6054348f4a56ac2c 2026-09-05: misma huella que `mesa` ⇒ mismo veredicto mesa-swrast mesa-version-script-comma.patch 6054348f4a56ac2c 2026-09-05: misma huella que `mesa` ⇒ mismo veredicto wayland wayland-scanner-dup2-output.patch b56341a45c5e7b1d 2026-09-05: el dup2(outfd, STDOUT_FILENO) cae dentro de main() de src/scanner.c y no queda NINGÚN freopen en el fichero