Added errors file after merge
This commit is contained in:
56
docs/errores_parser_executor_expansion.md
Normal file
56
docs/errores_parser_executor_expansion.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# Errores detectados: parser, expansión y ejecutor
|
||||||
|
|
||||||
|
## Críticos
|
||||||
|
|
||||||
|
1. Segmentation fault al mezclar palabras y redirecciones en un mismo comando.
|
||||||
|
- Síntoma: `echo a > /tmp/x b` puede crashear.
|
||||||
|
- Referencias: `src/parser/parser.c:365`, `src/parser/parser.c:371`, `src/parser/parser.c:187`.
|
||||||
|
|
||||||
|
2. Bucle infinito al recibir EOF en modo no interactivo.
|
||||||
|
- Síntoma: con `printf 'echo ok\n' | ./minishell` entra en loop imprimiendo prompt.
|
||||||
|
- Referencias: `src/minishell.c:40`, `src/minishell.c:42`.
|
||||||
|
|
||||||
|
3. Parseo de pipes inválidos permite ejecución parcial o comandos inválidos.
|
||||||
|
- Síntoma: casos como `| echo x` o `echo hi |` no se bloquean correctamente.
|
||||||
|
- Referencias: `src/parser/parser.c:83`, `src/parser/parser.c:101`, `src/parser/parser.c:221`.
|
||||||
|
|
||||||
|
## Altos
|
||||||
|
|
||||||
|
4. Expansión de variables incompleta e incorrecta en casos especiales.
|
||||||
|
- Síntoma: `$FOO_BAR` y `$_X` fallan; `$?` y `$$` no se expanden correctamente.
|
||||||
|
- Referencias: `src/parser/parser.c:122`, `src/parser/parser.c:156`.
|
||||||
|
|
||||||
|
5. No se eliminan comillas tras parseo/expansión.
|
||||||
|
- Síntoma: `echo "$HOME"` imprime comillas literales.
|
||||||
|
- Referencias: `src/parser/lexer.c:161`, `src/parser/parser.c:142`.
|
||||||
|
|
||||||
|
6. No hay expansión en targets de redirección.
|
||||||
|
- Síntoma: `echo hi > $HOME_test` crea archivo literal `$HOME_test`.
|
||||||
|
- Referencias: `src/parser/parser.c:187`, `src/parser/parser.c:263`.
|
||||||
|
|
||||||
|
7. Heredoc parseado pero no ejecutado en runtime.
|
||||||
|
- Síntoma: se almacena en `heredocs` pero no se aplica en ejecución.
|
||||||
|
- Referencias: `src/parser/parser.c:397`, `src/executor/redirections.c:68`, `src/executor/process_helpers.c:110`.
|
||||||
|
|
||||||
|
8. Lexer acepta operadores inválidos (`||`, `>>>`, `><`) sin validación formal.
|
||||||
|
- Síntoma: tokenización por “runs” de metacaracteres produce entradas inválidas no rechazadas de forma robusta.
|
||||||
|
- Referencias: `src/parser/lexer.c:140`, `src/parser/lexer.c:77`.
|
||||||
|
|
||||||
|
9. Errores de sintaxis no siempre fijan `exit_status` correcto (debería ser `2`).
|
||||||
|
- Síntoma: algunos casos acaban con salida `0`.
|
||||||
|
- Referencias: `src/executor/executor.c:20`, `src/parser/parser.c:101`.
|
||||||
|
|
||||||
|
## Medios
|
||||||
|
|
||||||
|
10. Resolución de rutas explícitas reporta mal algunos errores de permisos/ejecución.
|
||||||
|
- Síntoma: ruta existente no ejecutable puede terminar como `command not found`.
|
||||||
|
- Referencias: `src/executor/path_resolver.c:57`, `src/executor/path_resolver.c:59`, `src/executor/command_exec.c:81`.
|
||||||
|
|
||||||
|
11. Check de puntero nulo defectuoso en el loop principal.
|
||||||
|
- Síntoma: `if (minishell == NULL)` desreferencia igualmente el puntero.
|
||||||
|
- Referencia: `src/minishell.c:35`.
|
||||||
|
|
||||||
|
12. Falta manejo explícito de comillas no cerradas.
|
||||||
|
- Síntoma: entrada con comillas abiertas no genera error sintáctico dedicado.
|
||||||
|
- Referencia: `src/parser/lexer.c:159`.
|
||||||
|
|
||||||
Reference in New Issue
Block a user