From 1352a826b11148a23633504c9d3c246aeaacb1f7 Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Sun, 11 Oct 2020 21:11:57 +0200 Subject: Fixing empty cd segfault --- src/builtin/cd.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/builtin/cd.c') diff --git a/src/builtin/cd.c b/src/builtin/cd.c index a350cf4..b566272 100644 --- a/src/builtin/cd.c +++ b/src/builtin/cd.c @@ -6,7 +6,7 @@ /* By: charles +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:10:20 by charles #+# #+# */ -/* Updated: 2020/10/09 12:44:55 by cacharle ### ########.fr */ +/* Updated: 2020/10/11 21:11:40 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,13 +37,12 @@ int builtin_cd(char **argv, t_env env) if (argv[1] != NULL && argv[1][0] == '\0') return (env_export(env, "OLDPWD", oldwd) == NULL ? EVAL_FATAL : 0); if (argv[1] == NULL) - { if ((home = env_search(env, "HOME", NULL)) == NULL) return (errorf_ret(1, "cd: HOME not set\n")); - argv[1] = home; - } - if (chdir(argv[1]) == -1) - return (errorf_ret(1, "cd: %s: %s\n", argv[1], strerror(errno))); + else + home = argv[1]; + if (chdir(home) == -1) + return (errorf_ret(1, "cd: %s: %s\n", home, strerror(errno))); if (env_export(env, "OLDPWD", oldwd) == NULL) return (EVAL_FATAL); if (getcwd(cwd, PATH_MAX) == NULL) -- cgit