API misuse in fuzz_ppd_gen_conflicts.c: cupsGetConflicts return value ignored
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Aptitud para principiantes
- 75/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Stack tecnológico
- c
- Área
- testing-qa
Línea de trabajo
Comience en fuzz_ppd_gen_conflicts.c en la línea 38 y compare el uso de la API con el ejemplo de cups/testppd.c. Verifique que el recuento de conflictos y el puntero options se mantengan coherentes cuando se llame a cupsResolveConflicts y, a continuación, ejecute el objetivo de fuzzing para confirmar que la resolución de conflictos se prueba sin la discrepancia indicada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
The fuzzer fuzz_ppd_gen_conflicts.c incorrectly uses the cupsGetConflicts API by ignoring its return value, causing mismatched option count and pointer state when calling cupsResolveConflicts.
Problem
Line 38 ignores the return value:
cupsGetConflicts(ppd, "SampleOption", "SampleChoice", &options); // ❌ Return value ignored
cupsGetConflicts modifies *options and returns the new count, but the fuzzer continues using the old num_options value from line 31.
Consequence
- Passes mismatched
num_optionsand*optionstocupsResolveConflicts - Before upstream fix (5b5f5c0d6): NULL pointer dereference crash
- After fix: Logic errors, cannot properly test conflict resolution
Correct Usage
From cups/testppd.c:
num_options = cupsGetConflicts(ppd, "InputSlot", "Envelope", &options);
Should capture and use the return value.
Reference
As noted by @michaelrsweet in GHSA-r4j5-9gvw-5h7q:
"your PoC code uses the cupsGetConflicts API incorrectly - it returns the number of conflicting options, but you are ignoring the return value."
This prevents proper fuzzing of CUPS conflict resolution logic.
- Lenguaje dominante
- C
- Estrellas
- 8
- Forks
- 18
- Merge medio
- 7 h 37 min
- PR fusionados (30 d)
- 1
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de OpenPrinting/fuzzing
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
OpenPrinting/fuzzing#47 · 4 comentarios · 1 reacción ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 52/100
OpenPrinting/fuzzing#46 ·
-
Memory allocation/deallocation mismatch in fuzz_array.c causes immediate crash with AddressSanitizer Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
OpenPrinting/fuzzing#43 ·
-
bug good first issue
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
OpenPrinting/fuzzing#7 ·
-
good first issue
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
OpenPrinting/fuzzing#5 · 1 comentario ·
Todos los issues de OpenPrinting/fuzzing
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
BasedHardware/omi#15662 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
level/task module/gcp type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Build failure with newer clang Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
hapostgres/pg_auto_failover#1190 ·