2.6 KiB
2.6 KiB
Errores detectados: parser, expansión y ejecutor
Críticos
- Segmentation fault al mezclar palabras y redirecciones en un mismo comando.
- Síntoma:
echo a > /tmp/x bpuede crashear. - Referencias:
src/parser/parser.c:365,src/parser/parser.c:371,src/parser/parser.c:187.
- Bucle infinito al recibir EOF en modo no interactivo.
- Síntoma: con
printf 'echo ok\n' | ./minishellentra en loop imprimiendo prompt. - Referencias:
src/minishell.c:40,src/minishell.c:42.
- Parseo de pipes inválidos permite ejecución parcial o comandos inválidos.
- Síntoma: casos como
| echo xoecho hi |no se bloquean correctamente. - Referencias:
src/parser/parser.c:83,src/parser/parser.c:101,src/parser/parser.c:221.
Altos
- Expansión de variables incompleta e incorrecta en casos especiales.
- Síntoma:
$FOO_BARy$_Xfallan;$?y$$no se expanden correctamente. - Referencias:
src/parser/parser.c:122,src/parser/parser.c:156.
- 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.
- No hay expansión en targets de redirección.
- Síntoma:
echo hi > $HOME_testcrea archivo literal$HOME_test. - Referencias:
src/parser/parser.c:187,src/parser/parser.c:263.
- Heredoc parseado pero no ejecutado en runtime.
- Síntoma: se almacena en
heredocspero no se aplica en ejecución. - Referencias:
src/parser/parser.c:397,src/executor/redirections.c:68,src/executor/process_helpers.c:110.
- 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.
- Errores de sintaxis no siempre fijan
exit_statuscorrecto (debería ser2).
- Síntoma: algunos casos acaban con salida
0. - Referencias:
src/executor/executor.c:20,src/parser/parser.c:101.
Medios
- 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.
- Check de puntero nulo defectuoso en el loop principal.
- Síntoma:
if (minishell == NULL)desreferencia igualmente el puntero. - Referencia:
src/minishell.c:35.
- 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.