Heads up: max_program_size deprecation will require re2j changes to allow validation
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
Línea de trabajo
El issue apunta a Pattern y Prog.inst de re2j, aunque señala que este repositorio quizá no gestione explícitamente GoogleRE2. Comprueba primero si java-control-plane tiene un punto de entrada de validación para el tamaño de los programas regex; para darlo por terminado habría que confirmar si se necesita una implementación y delimitar cualquier cambio relevante en re2j.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
This is just documenting the information that may be necessary if java-control-plane wants to start validating regular expression max_program_sizes. This is unnecessary if the regular expressions are considered "trusted" (known to be non-malicious).
I had this information and wanted to dump it somewhere that it may be useful if the need arises. It seems there is no explicit management of GoogleRE2 in this repo. Feel free to close.
In https://github.com/envoyproxy/envoy/pull/10971, Envoy deprecated the max_program_size configuration field in favor of the control plane being responsible. This is great, and works for C++ and Go languages, but leaves some TODOs for Java.
The C++ re2 exposes RE2::ProgramSize() which reports the number of instructions of the compiled regular expression. This is the "program size" that Envoy was referring to.
Go's regexp/syntax package allows getting something similar:
regex, err := syntax.Parse("INPUT HERE", 0)
prog, err := syntax.Compile(regex)
len(prog.Inst) // this is the program size
But it does not appear re2j supports such a feature. Basically, you will need a new Pattern method that returns the length of Prog.inst (via re2.prog).
- Lenguaje dominante
- Java
- Estrellas
- 313
- Forks
- 150
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
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 envoyproxy/java-control-plane
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
envoyproxy/java-control-plane#481 ·
-
Support stream scoped routesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
envoyproxy/java-control-plane#471 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
envoyproxy/java-control-plane#463 ·
-
helpAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
envoyproxy/java-control-plane#432 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
envoyproxy/java-control-plane#411 ·
Todos los issues de envoyproxy/java-control-plane
Issues similares
-
bug status: needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
LawnchairLauncher/lawnchair#7360 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Temporal transforms put pre-epoch timestamps at `.999999` into the previous unitPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
apache/iceberg#18371 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
objectionary/hone-maven-plugin#1297 ·
Los mantenedores suelen responder en 1 día
-
bug documentation iam
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
objectionary/lints#1541 ·
Los mantenedores suelen responder en 1 día