From b8ceec5d950d400b7161652595ce75bae3adf1f8 Mon Sep 17 00:00:00 2001 From: mdev9 Date: Thu, 25 Apr 2024 18:21:28 +0200 Subject: [PATCH] fixed export with multiple variable definitions and exit long long exit code overflows --- minishell_bonus | Bin 0 -> 136400 bytes srcs/exit.c | 13 +++++++++++-- srcs/export.c | 46 ++++++++++++++++++++++++++++++---------------- todo_list | 21 +++++++++++++++++++++ 4 files changed, 62 insertions(+), 18 deletions(-) create mode 100755 minishell_bonus diff --git a/minishell_bonus b/minishell_bonus new file mode 100755 index 0000000000000000000000000000000000000000..94a81b0776a27625d1265790b6750efc3559764d GIT binary patch literal 136400 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 literal 0 HcmV?d00001 diff --git a/srcs/exit.c b/srcs/exit.c index c6f5ae0..e32fd81 100755 --- a/srcs/exit.c +++ b/srcs/exit.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/07 16:04:11 by tomoron #+# #+# */ -/* Updated: 2024/04/25 13:51:19 by tomoron ### ########.fr */ +/* Updated: 2024/04/25 18:08:21 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,12 +20,21 @@ void numeric_arg_err(char *arg, int *exit_code) *exit_code = 2; } +int is_too_big(char *num_str) +{ + if ((strlen(num_str) == 19 && strcmp(num_str, "9223372036854775807") > 0) + || (strlen(num_str) == 20 && num_str[0] == '-' + && strcmp(num_str, "-9223372036854775808") > 0) || strlen(num_str) > 20) + return 1; + return (0); +} + void get_exit_bt_return_code(t_msh *msh, int *exit_code) { t_token *cur_cmd; cur_cmd = msh->tokens->next; - if (cur_cmd && (!ft_strisnbr(cur_cmd->value) || ft_strlen(cur_cmd->value) > 18)) + if (cur_cmd && (!ft_strisnbr(cur_cmd->value) || is_too_big(cur_cmd->value))) numeric_arg_err(cur_cmd->value, exit_code); else if (cur_cmd) *exit_code = (unsigned char)ft_atoi(cur_cmd->value); diff --git a/srcs/export.c b/srcs/export.c index f882a6d..2678239 100755 --- a/srcs/export.c +++ b/srcs/export.c @@ -6,7 +6,7 @@ /* By: marde-vr +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/02/18 18:29:20 by marde-vr #+# #+# */ -/* Updated: 2024/04/24 14:41:01 by tomoron ### ########.fr */ +/* Updated: 2024/04/25 18:19:39 by marde-vr ### ########.fr */ /* */ /* ************************************************************************** */ @@ -61,32 +61,46 @@ t_env *export_set_env(t_env *env, char *name, char *value, int append) return (set_env(env, name, value, append)); } -int ft_export(t_msh *msh, t_token *cmd, t_env *env) +int export_var(t_token *cmd, t_env *env) { char *arg; char *name; char *value; int len; int append; + len = 0; + + arg = cmd->value; + while (arg[len] && arg[len] != '=' && arg[len] != '+') + len++; + name = ft_substr(arg, 0, len); + append = arg[len] == '+'; + if (arg[len] == '=' || (arg[len] == '+' && arg[len + 1] == '=')) + len += 1 + (arg[len] == '+'); + if (!name || !check_var_name(name) || arg[len] == '+') + return (export_invalid_identifier(arg, name)); + value = ft_strdup(arg + len); + env = export_set_env(env, name, value, append); + return (0); +} + +int ft_export(t_msh *msh, t_token *cmd, t_env *env) +{ + int error; if (cmd && !cmd->next) print_env_declare(msh, env); - if (cmd && cmd->next && !cmd->next->next) + cmd = cmd->next; + while (cmd->next) + //if (cmd && cmd->next && !cmd->next->next) { - arg = cmd->next->value; - len = 0; - while (arg[len] && arg[len] != '=' && arg[len] != '+') - len++; - name = ft_substr(arg, 0, len); - append = arg[len] == '+'; - if (arg[len] == '=' || (arg[len] == '+' && arg[len + 1] == '=')) - len += 1 + (arg[len] == '+'); - if (!name || !check_var_name(name) || arg[len] == '+') - return (export_invalid_identifier(arg, name)); - value = ft_strdup(arg + len); - env = export_set_env(env, name, value, append); + if (export_var(cmd, env)) + error = 1; + cmd = cmd->next; } - return (0); + if (export_var(cmd, env)) + error = 1; + return (error); } int ft_unset(t_msh *msh) diff --git a/todo_list b/todo_list index 9d6f4ef..51e8309 100644 --- a/todo_list +++ b/todo_list @@ -1,5 +1,26 @@ +exit with positive and negative 18/19 digits +check error codes +Export multiple variables +./tester os_specific + + + +Open file descriptor with cat << eof | ls open fd and infinte loop +Cat makefile | (echo yes && rev) leaks +echo yes && echo yes && car dhdgdgjsk || echo no leaks +echo abc && echo def | cat | rev && echo yes +(), ((())), (()) +export leaks + +fix broken tests from tester + + To test: + +ctrl backslash in middle of line +ctrl c on character we are ln with cursor, not end of line + test signals test and verify all malocs verify forbidden functions